Serie temporal: regresión automática

Para una serie de tiempo estacionaria, un modelo de autoregresión ve el valor de una variable en el tiempo 't' como una función lineal de los valores 'p' pasos de tiempo que la preceden. Matemáticamente se puede escribir como:

$$ y_ {t} = \: C + \: \ phi_ {1} y_ {t-1} \: + \: \ phi_ {2} Y_ {t-2} + ... + \ phi_ {p} y_ {tp} + \ epsilon_ {t} $$

 

Donde, 'p' es el parámetro de tendencia autoregresiva

$ \ epsilon_ {t} $ es ruido blanco y

$ y_ {t-1}, y_ {t-2} \: \: ... y_ {tp} $ denotan el valor de la variable en períodos de tiempo anteriores.

El valor de p se puede calibrar utilizando varios métodos. Una forma de encontrar el valor apto de 'p' es trazando la gráfica de autocorrelación.

Note- Debemos separar los datos en entrenar y probar en una proporción de 8: 2 del total de datos disponibles antes de hacer cualquier análisis de los datos porque los datos de prueba son solo para averiguar la precisión de nuestro modelo y se supone que no están disponibles para nosotros. hasta después de que se hayan hecho las predicciones. En el caso de series de tiempo, la secuencia de puntos de datos es muy esencial, por lo que se debe tener en cuenta que no se debe perder el orden durante la división de datos.

Un gráfico de autocorrelación o un correlograma muestra la relación de una variable consigo misma en pasos de tiempo anteriores. Utiliza la correlación de Pearson y muestra las correlaciones dentro del intervalo de confianza del 95%. Veamos cómo se ve la variable 'temperatura' de nuestros datos.

Mostrando ACP

En [141]:

split = len(df) - int(0.2*len(df))
train, test = df['T'][0:split], df['T'][split:]

En [142]:

from statsmodels.graphics.tsaplots import plot_acf

plot_acf(train, lags = 100)
plt.show()

Se supone que todos los valores de retardo que se encuentran fuera de la región sombreada en azul tienen una correlación.