Correlación con Python – Ejercicio Estación Meteorológica

Referencia: Ross 8.2 p334

De una estación meteorológica se obtiene un archivo.csv con los datos de los sensores disponibles.

2021_10_EstMeteorologica.csv

 

Nota: las instrucciones para la lectura del archivo se describen en:

Archivos.csv con Python – Ejercicio con gráfica de temperatura y Humedad

Para observar la correlación entre las medidas obtenidas de varios sensores, se considera usar las variables:

sensor_EM = ["TEMP","Humidity","Solar_rad","Bar_press."]

La correlación entre las variables se realiza seleccionando las columnas desde una lista, para luego realizar la operación desde una de las funciones de Pandas-Python

# Matriz de Correlación
mediciones = tablaEM[sensor_EM].copy()
correlacion_matriz = mediciones.corr()

obteniendo como resultados:

Matriz de correlación:
                TEMP  Humidity  Solar_rad  Bar_press.
TEMP        1.000000 -0.957730   0.743379   -0.387187
Humidity   -0.957730  1.000000  -0.765766    0.447845
Solar_rad   0.743379 -0.765766   1.000000   -0.093236
Bar_press. -0.387187  0.447845  -0.093236    1.000000

Del resultado se observa que el coeficiente de correlación entre las mediciones de «TEMP» y «Humidity» es alta. Para observar el caso se usa la gráfica entre las dos variables comparando los datos en el tiempo por fechas.
Cuando la temperatura aumenta la Humedad disminuye, lo opuesto tambien es observable.

Comparando solo entre las dos variables:

Para el caso de radiación solar y presión baromérica, el coeficiente de correlación es «bajo».

comparando entre las dos variables solamente:

Instrucciones en Python

# Archivos de estación meteorologica
# correlacion entre sensor_EM
import numpy as np
import pandas as pd
import datetime as dt
import os
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter, DayLocator

# INGRESO
archivoEM = "2021_10_EstMeteorologica.csv"
sensor_EM = ["TEMP","Humidity","Solar_rad","Bar_press."]
sensor_EM_u = ["(°C)","(%)","(kW)","(hPa)"]

# PROCEDIMIENTO
# tabla estacion meteorologica
tablaEM = pd.read_csv(archivoEM, sep=';',decimal=',')
tablaEM = pd.DataFrame(tablaEM)
tablaEM_n = len(tablaEM)

# Matriz de Correlación
mediciones = tablaEM[sensor_EM].copy()
correlacion_matriz = mediciones.corr()

# SALIDA
print('Matriz de correlación:')
print(correlacion_matriz)

Para añadir las gráficas, se añaden instrucciones para seleccionar las variables en intervalos de fechas.

# tabla estacion meteorologica
fechaformatoEM = "%d/%m/%Y %H:%M:%S"
# fechas concatenando columnas de texto
tablaEM['fecha'] = tablaEM['Date']+' '+tablaEM['Time']
tablaEM['fecha'] = pd.to_datetime(tablaEM['fecha'],
                                  format=fechaformatoEM)
# grafica
sensorA = "TEMP"
sensorB = "Humidity"
fechaA = "2021/10/01"
fechaB = "2021/10/07"

ti = tablaEM["fecha"].loc[tablaEM["fecha"].between(fechaA,fechaB)]
xi = tablaEM[sensorA].loc[tablaEM["fecha"].between(fechaA,fechaB)]
yi = tablaEM[sensorB].loc[tablaEM["fecha"].between(fechaA,fechaB)]

# grafica compara sensores en tiempo
fig_Pt, graf1 = plt.subplots()
graf1.scatter(ti,xi, marker = '.',
              label=sensorA)

eje12 = graf1.twinx()  # segundo eje del grafico
eje12.scatter(ti,yi, marker = '.',
              color='orange',label=sensorB)
graf1.set_ylabel(sensorA, color='blue')
eje12.set_ylabel(sensorB, color='orange')
plt.show()

# grafica compara sensores
plt.scatter(xi,yi)
plt.xlabel(sensorA, color='blue')
plt.ylabel(sensorB, color='orange')
plt.show()

 

2.1 Valor Esperado E[x] a partir de pmf – Ejercicio

Referencia: LoRaWan – Descriptor estadístico de un punto en Girni,

El indicador de fuerza de la señal recibida (RSSI) para un dispositivo a una distancia desde el gateway es un valor entero que se encuentra alrededor el valor esperado o media. Las condiciones del ambiente generan un componente aleatorio que se muestra en la figura.

Las mediciones se pueden obtener para el enlace de subida (dispositivo a gateway) o enlace de bajada (gateway a dispositivo). A partir de los valores se pueden obtener la pmf del enlace de subida o de bajada

Ejercicio

A partir de los datos de los datos obtenidos para un punto con ubicación  etiquetada LOS04, calcular el valor esperado para los enlaces de subida (UP) y de bajada (Down) a partir de los siguientes datos, presentados en forma de un diccionario de Python:

{"pmf":
 {"pmf_down":
  {"intervalo":[-70,-69,-68,-67,-66,-65,-64],
   "freq_relativa":[0.036101083,0.1371841155,0.1732851986,0.1624548736,0.2707581227,0.202166065,0.0180505415]
   },
  "pmf_up":
  {"intervalo":[-83,-82,-81,-80,-79,-78,-77,-76,-75,-74,-73,-72,-71,-70,-69,-68,-67,-66,-65,-64,-63,-62,-61,-60,-59,-58,-57],
   "freq_relativa":[0.036101083,0.0,0.0252707581,0.0,0.0072202166,0.0,0.1010830325,0.0036101083,0.1083032491,0.0,0.1227436823,0.0,0.0433212996,0.0324909747,0.0180505415,0.0252707581,0.0685920578,0.1335740072,0.0288808664,0.0,0.1046931408,0.1046931408,0.0180505415,0.0072202166,0.0072202166,0.0,0.0036101083]
   }
  },
 "dispositivo":{"pmf_down":"cc24","pmf_up":"cc24"}
 }

Aplicaciones

Soluciones

Ejercicios resueltos en forma simplificada con los algoritmos en Python. Contienen tareas por desarrollar, observaciones a otras formas de algoritmos.

Evaluaciones

Ejercicios de evaluaciones anteriores, clasificados por temas.

Unidades

s3Eva_IIT2017_T5 Sistema lineal

Z(t) = X(t) -Y(t) Y(t) = h(t)*X(t)

a) autocorrelación de Z(t)

E[Z(t_1)Z(t_2)] = E[(X(t_1) - Y(t_1))(X(t_2) -Y(t_2))] = E[X(t_1)(X(t_2) - X(t_1)Y(t_2) - Y(t_1)X(t_2) + Y(t_1)Y(t_2)] = E[X(t_1)(X(t_2)] - E[X(t_1)Y(t_2)] - E[Y(t_1)X(t_2)] + E[Y(t_1)Y(t_2)] = R_X(\tau) - R_{XY}(\tau) - R_{YX}(\tau) + R_Y(\tau)

b) Densidad espectral de potencia de Z(t)

Sz(f) = F[R_X(\tau)] - F[R_{XY}(\tau)] - F[R_{YX}(\tau)] + F[R_Y(\tau)] = S_X(f) - S_{XY}(f) - S_{YX}(f) + S_Y(f) = S_X(f) - S_{XY}(f) - S_{XY}^* (f) + S_Y(f) = S_X(f) - H(f) S_{X}(f) - H^* (f) S_{X}(f) + S_Y(f) = [1 - H(f) - H^* (f) + |H(f)|^2] S_X(f) = [1 - 2Re[H(f)] + |H(f)|^2 ] S_X(f) Sz(f) = |1 - H(f)|^2 S_X(f)

s3Eva_IIT2017_T3 Autocorrelacion AM/PM

X(t) = A_1 \cos (\omega _0 t + \theta _1) + A_2 \cos (\sqrt{2}\omega_0 t + \theta _2)
Las variables aleatorias Θ son uniformes en [0,2π], por lo que sus funciones de densidad de probabilidad son iguales a:
f_{\theta _1} (\theta _1) = f_{\theta _2}(\theta _2) = \frac{1}{2\pi}

a) valor esperado:

E[X(t)] = E[A_1 \cos (\omega _0 t + \theta _1) + A_2 \cos (\sqrt{2}\omega_0 t + \theta _2) ] =E[A_1 \cos (\omega _0 t + \theta _1)] + E[A_2 \cos (\sqrt{2}\omega_0 t + \theta _2) ]

las variables A1 y Θ1 son independientes, de la misma forma A2 y Θ2, lo que permite separar: E[XY] = E[X][Y]

=E[A_1]E[\cos (\omega _0 t + \theta _1)] +E[A_2]E[\cos (\sqrt{2}\omega_0 t + \theta _2)]

y evaluar:

E[\cos (\omega _0 t + \theta _1)] = \int_{0}^{2\pi} \cos (\omega _0 t + \theta _1) \frac{1}{2\pi} d\theta _1 E[g(x)] = \int_{0}^{2\pi} g(x) f(x) dx = \frac{1}{2\pi}\int_{0}^{2\pi} \cos (\omega _0 t + \theta _1) d\theta _1

que aplicando:

cos(x \pm y)= cos(x)cos(y) \mp sen(x)sen(y) = \frac{1}{2\pi}\int_{0}^{2\pi} \Big[\cos (\omega _0 t) \cos(\theta _1) - \sin(\omega _0 t)\sin(\theta _1)\Big] d\theta _1 = \frac{1}{2\pi}\cos (\omega _0 t) \int_{0}^{2\pi} \cos(\theta _1) d\theta _1 - \frac{1}{2\pi}\sin(\omega _0 t) \int_{0}^{2\pi} \sin(\theta _1) d\theta _1 = \frac{1}{2\pi}\cos (\omega _0 t) \sin(\theta _1)\Big|_{0}^{2\pi} - \frac{1}{2\pi}\sin(\omega _0 t) [-\cos(\theta _1)] \Big|_{0}^{2\pi} = \frac{1}{2\pi}\cos (\omega _0 t) [\sin(2\pi)-sin(0)] + \frac{1}{2\pi}\sin(\omega _0 t) [\cos(2\pi) - \cos(0)] E[\cos (\omega _0 t + \theta _1)] = 0

por lo que, aplicando lo mismo para el siguiente término del integral del valor esperado, se obtiene que:

E[X(t)] = 0

b) Para el caso de autocorrelación se tiene que:

E[X(t_1)X(t_2)] =
= E\Big[ [A_1 \cos (\omega _0 t_1 + \theta _1) + A_2 \cos (\sqrt{2}\omega_0 t_1 + \theta _2)] .

. [A_1 \cos (\omega _0 t_2 + \theta _1) + A_2 \cos (\sqrt{2}\omega_0 t_2 + \theta _2)] \Big]

multiplicando término a término

= E[A_1^2 \cos (\omega _0 t_1 + \theta _1) \cos (\omega _0 t_2 + \theta _1)] + E[A_1 A_2 \cos (\omega _0 t_1 + \theta _1) \cos (\sqrt{2}\omega_0 t_2 + \theta _2)] + E[A_2 A_1 \cos (\sqrt{2}\omega_0 t_1 + \theta _2) \cos (\omega _0 t_2 + \theta _1)] + E[A_2^2 \cos (\sqrt{2}\omega_0 t_1 + \theta _2) \cos (\sqrt{2}\omega_0 t_2 + \theta _2)] =

recordando que, las variables A1 y Θ1 son independientes, de la misma forma A2 y Θ2, lo que permite separar: E[XY] = E[X][Y]

= E[A_1^2] E[\cos (\omega _0 t_1 + \theta _1) \cos (\omega _0 t_2 + \theta _1)] + E[A_1 A_2] E[\cos (\omega _0 t_1 + \theta _1) \cos (\sqrt{2}\omega_0 t_2 + \theta _2)] + E[A_2 A_1] E[\cos (\sqrt{2}\omega_0 t_1 + \theta _2) \cos (\omega _0 t_2 + \theta _1)] + E[A_2^2] E[\cos (\sqrt{2}\omega_0 t_1 + \theta _2) \cos (\sqrt{2}\omega_0 t_2 + \theta _2)] =

Se desarrolla para una parte del segundo término de la suma:
E[\cos (\omega _0 t_1 + \theta _1) \cos (\sqrt{2}\omega_0 t_2 + \theta _2)] =

que siendo independiente Θ1 y Θ2 E[XY] = E[X][Y]

= E[\cos (\omega _0 t_1 + \theta _1)] E[\cos (\sqrt{2}\omega_0 t_2 + \theta _2)] = 0

cuyo primer término es cero, usando el resultado del literal a, y extendido el resultado para el segundo término, lo que reduce la expresión de la autocorrelación a:

E[X(t_1)X(t_2)] = = E[A_1^2] E[\cos (\omega _0 t_1 + \theta _1) \cos (\omega _0 t_2 + \theta _1)] + + E[A_2^2] E[\cos (\sqrt{2}\omega_0 t_1 + \theta _2) \cos (\sqrt{2}\omega_0 t_2 + \theta _2)]

para el primer término:

E[\cos (\omega _0 t_1 + \theta _1) \cos (\omega _0 t_2 + \theta _1)] = =\frac{1}{2}E\Big[\cos [(\omega _0 t_1 + \theta _1) - (\omega _0 t_2 + \theta _1)] + \cos [(\omega _0 t_1 + \theta _1) +(\omega _0 t_2 + \theta _1)\Big] =\frac{1}{2}E\Big[\cos (\omega _0 (t_1 - t_2)) + \cos (\omega _0 (t_1 + t_2) + 2 \theta _1)\Big] =\frac{1}{2}E\Big[\cos (\omega _0 (t_1 - t_2)) \Big] + E\Big[\cos (\omega _0 (t_1 + t_2) + 2 \theta _1)\Big]

del literal a, el segundo término se vuelve cero:

=\frac{1}{2}E[\cos (\omega _0 (t_1 - t_2)) ]

extendiendo el resultado para el segundo término de la autocorrelación:

E[X(t_1)X(t_2)] = \frac{1}{2} E\Big[A_1^2\Big] E\Big[\cos (\omega _0 (t_1 - t_2)) \Big] + + \frac{1}{2} E\Big[A_2^2\Big] E\Big[\cos (\sqrt{2}\omega _0 (t_1 - t_2)) \Big]

que se resume que la media es cero, constante, y que la autocorrelación depende solo de la diferencias de tiempo |t1-t2| = τ, por lo que el proceso se clasifica como estacionario en el sentido amplio WSS.

Recuerde que A1 y A2 son tipo Gaussianas, por lo que E[A12] es una constante.

s3Eva_IIT2017_T2 Servidores Rápido y Lento

Se establecen los casos posibles para los servidores, (rápido, lento):

0, 00, ambos servidores están libres
1, 10, el servidor lento está libre
2, 01, el servidor rápido esta libre
3, 11, ambos servidores están ocupados

b) … si los clientes al llegar y encontrar los servidores libres, se los envía al servidor más rápido.

las ecuaciones de balanceo son:

Sale del estado = Ingresa al estado
P00 λ = μ P01 + 2μ P10
P01 (λ + μ)  =  2μ P11
P10 (λ+ 2μ) = λ P00 + μ P11
P11 (μ + 2μ) = λ P01 + λ P10

P00 + P01 + P10 + P11 = 1

c) … si los clientes al llegar encuentran los servidores libres, se los envía a cualquiera con la misma probabilidad.


las ecuaciones de balanceo son:

Sale del estado = Ingresa al estado
P00 (λ/2 + λ/2) = μ P01 + 2μ P10
P01 (λ + μ)  =  (λ/2) P00 + 2μ P11
P10 (λ+ 2μ) = (λ/2) P00 + μ P11
P11 (μ + 2μ) = λ P01 + λ P10

P00 + P01 + P10 + P11 = 1

Tarea: Resolver los sistemas de ecuaciones.