Contenido del Curso
Análisis de Series Temporales
Análisis de Series Temporales
Modelo Autorregresivo Integrado de Media Móvil
El último modelo que examinaremos es la media móvil autorregresiva integrada. Este modelo combina la autorregresión, la media móvil y la técnica de diferenciación (no es el modelo del que hemos hablado antes). Se presenta de la siguiente manera:
Puede parecer bastante complicado, pero en realidad, mira, AR
- es un modelo autorregresivo con el que ya estás familiarizado, MA
- es una media móvil, lo que implica una combinación lineal de errores de la previsión pasada.
ARIMA utiliza 3 parámetros que debemos elegir nosotros mismos (p, d, q)
:
P
- se denomina orden de autoregresión. Es el número de valores inmediatamente anteriores de la serie que se utilizan para predecir el valor en el momento actual;
D
- orden de diferenciación;
Q
- el orden de la media móvil. Permite establecer el error del modelo como una combinación lineal de los valores de error observados anteriormente.
Nota
En los próximos capítulos estudiaremos con más detalle las técnicas de diferenciación.
¿Cuál es la ventaja de este modelo? Puede predecir procesos no estacionarios simples (más concretamente, procesos en los que la media y la covarianza cambian con el tiempo) y es más eficaz cuando se trabaja con predicciones a corto plazo.
Vamos a crear un modelo ARIMA utilizando statsmodels
, para ello utilizaremos la clase ARIMA()
:
``python from statsmodels.tsa.arima.model import ARIMA from sklearn.metrics import error_medio_cuadrado from math import sqrt
X = df.valores tamaño = int(len(X) * 0.6) tren, prueba = X[0:tamaño], X[tamaño:] historial = entrenar.tolist() predicciones = list()
Realización de predicciones con el modelo ARIMA
for t in range(len(test)): model = ARIMA(history, order=(5, 1, 0)) model_fit = model.fit() salida = model_fit.predicción() predicciones.append(salida[0]) history.append(prueba[t])
Calcular el error MSE
rmse = sqrt(error_medio_cuadrado(prueba, predicciones)) print("RMSE de la prueba: %.3f" % rmse)
Representar los resultados
plt.plot(prueba) plt.plot(predicciones, color="rojo") plt.show() ```
Los resultados:
Básicamente, utilizará 2 funciones: .forecast()
y .predict()
La primera función es para predicciones fuera del conjunto de datos (por eso usamos un bucle en el ejemplo anterior), mientras que la función .predict()
se usa para predicciones dentro del conjunto de datos.
Además, puede experimentar con los parámetros p
, q
y d
para obtener los mejores resultados. Pero incluso con estos parámetros, puede ver que el modelo sigue bien las tendencias principales.
**El código puede tardar hasta 1 minuto en procesarse.
Tarea
Cree un modelo ARIMA y entrénelo en el conjunto de datos pr_air_quality.csv
.
- Dentro del bucle
for
, cree un modelo ARIMA utilizando los datoshistory
y asígnelo a la variablemodel
. A continuación, ajuste elmodel
a los datos y guárdelo comomodel_fit
. A continuación, haga previsiones utilizando elmodel_fit
ajustado. - Calcule el RMSE: tome la raíz cuadrada (
sqrt
) del error cuadrático medio (calculado utilizando eltest
y laspredicciones
). - Visualice los resultados: muestre los valores de
test
en la primera llamada a la función.plot()
y los valores depredictions
en la segunda llamada.
*Tenga en cuenta que el código puede tardar mucho tiempo en completarse.
¡Gracias por tus comentarios!
Modelo Autorregresivo Integrado de Media Móvil
El último modelo que examinaremos es la media móvil autorregresiva integrada. Este modelo combina la autorregresión, la media móvil y la técnica de diferenciación (no es el modelo del que hemos hablado antes). Se presenta de la siguiente manera:
Puede parecer bastante complicado, pero en realidad, mira, AR
- es un modelo autorregresivo con el que ya estás familiarizado, MA
- es una media móvil, lo que implica una combinación lineal de errores de la previsión pasada.
ARIMA utiliza 3 parámetros que debemos elegir nosotros mismos (p, d, q)
:
P
- se denomina orden de autoregresión. Es el número de valores inmediatamente anteriores de la serie que se utilizan para predecir el valor en el momento actual;
D
- orden de diferenciación;
Q
- el orden de la media móvil. Permite establecer el error del modelo como una combinación lineal de los valores de error observados anteriormente.
Nota
En los próximos capítulos estudiaremos con más detalle las técnicas de diferenciación.
¿Cuál es la ventaja de este modelo? Puede predecir procesos no estacionarios simples (más concretamente, procesos en los que la media y la covarianza cambian con el tiempo) y es más eficaz cuando se trabaja con predicciones a corto plazo.
Vamos a crear un modelo ARIMA utilizando statsmodels
, para ello utilizaremos la clase ARIMA()
:
``python from statsmodels.tsa.arima.model import ARIMA from sklearn.metrics import error_medio_cuadrado from math import sqrt
X = df.valores tamaño = int(len(X) * 0.6) tren, prueba = X[0:tamaño], X[tamaño:] historial = entrenar.tolist() predicciones = list()
Realización de predicciones con el modelo ARIMA
for t in range(len(test)): model = ARIMA(history, order=(5, 1, 0)) model_fit = model.fit() salida = model_fit.predicción() predicciones.append(salida[0]) history.append(prueba[t])
Calcular el error MSE
rmse = sqrt(error_medio_cuadrado(prueba, predicciones)) print("RMSE de la prueba: %.3f" % rmse)
Representar los resultados
plt.plot(prueba) plt.plot(predicciones, color="rojo") plt.show() ```
Los resultados:
Básicamente, utilizará 2 funciones: .forecast()
y .predict()
La primera función es para predicciones fuera del conjunto de datos (por eso usamos un bucle en el ejemplo anterior), mientras que la función .predict()
se usa para predicciones dentro del conjunto de datos.
Además, puede experimentar con los parámetros p
, q
y d
para obtener los mejores resultados. Pero incluso con estos parámetros, puede ver que el modelo sigue bien las tendencias principales.
**El código puede tardar hasta 1 minuto en procesarse.
Tarea
Cree un modelo ARIMA y entrénelo en el conjunto de datos pr_air_quality.csv
.
- Dentro del bucle
for
, cree un modelo ARIMA utilizando los datoshistory
y asígnelo a la variablemodel
. A continuación, ajuste elmodel
a los datos y guárdelo comomodel_fit
. A continuación, haga previsiones utilizando elmodel_fit
ajustado. - Calcule el RMSE: tome la raíz cuadrada (
sqrt
) del error cuadrático medio (calculado utilizando eltest
y laspredicciones
). - Visualice los resultados: muestre los valores de
test
en la primera llamada a la función.plot()
y los valores depredictions
en la segunda llamada.
*Tenga en cuenta que el código puede tardar mucho tiempo en completarse.
¡Gracias por tus comentarios!
Modelo Autorregresivo Integrado de Media Móvil
El último modelo que examinaremos es la media móvil autorregresiva integrada. Este modelo combina la autorregresión, la media móvil y la técnica de diferenciación (no es el modelo del que hemos hablado antes). Se presenta de la siguiente manera:
Puede parecer bastante complicado, pero en realidad, mira, AR
- es un modelo autorregresivo con el que ya estás familiarizado, MA
- es una media móvil, lo que implica una combinación lineal de errores de la previsión pasada.
ARIMA utiliza 3 parámetros que debemos elegir nosotros mismos (p, d, q)
:
P
- se denomina orden de autoregresión. Es el número de valores inmediatamente anteriores de la serie que se utilizan para predecir el valor en el momento actual;
D
- orden de diferenciación;
Q
- el orden de la media móvil. Permite establecer el error del modelo como una combinación lineal de los valores de error observados anteriormente.
Nota
En los próximos capítulos estudiaremos con más detalle las técnicas de diferenciación.
¿Cuál es la ventaja de este modelo? Puede predecir procesos no estacionarios simples (más concretamente, procesos en los que la media y la covarianza cambian con el tiempo) y es más eficaz cuando se trabaja con predicciones a corto plazo.
Vamos a crear un modelo ARIMA utilizando statsmodels
, para ello utilizaremos la clase ARIMA()
:
``python from statsmodels.tsa.arima.model import ARIMA from sklearn.metrics import error_medio_cuadrado from math import sqrt
X = df.valores tamaño = int(len(X) * 0.6) tren, prueba = X[0:tamaño], X[tamaño:] historial = entrenar.tolist() predicciones = list()
Realización de predicciones con el modelo ARIMA
for t in range(len(test)): model = ARIMA(history, order=(5, 1, 0)) model_fit = model.fit() salida = model_fit.predicción() predicciones.append(salida[0]) history.append(prueba[t])
Calcular el error MSE
rmse = sqrt(error_medio_cuadrado(prueba, predicciones)) print("RMSE de la prueba: %.3f" % rmse)
Representar los resultados
plt.plot(prueba) plt.plot(predicciones, color="rojo") plt.show() ```
Los resultados:
Básicamente, utilizará 2 funciones: .forecast()
y .predict()
La primera función es para predicciones fuera del conjunto de datos (por eso usamos un bucle en el ejemplo anterior), mientras que la función .predict()
se usa para predicciones dentro del conjunto de datos.
Además, puede experimentar con los parámetros p
, q
y d
para obtener los mejores resultados. Pero incluso con estos parámetros, puede ver que el modelo sigue bien las tendencias principales.
**El código puede tardar hasta 1 minuto en procesarse.
Tarea
Cree un modelo ARIMA y entrénelo en el conjunto de datos pr_air_quality.csv
.
- Dentro del bucle
for
, cree un modelo ARIMA utilizando los datoshistory
y asígnelo a la variablemodel
. A continuación, ajuste elmodel
a los datos y guárdelo comomodel_fit
. A continuación, haga previsiones utilizando elmodel_fit
ajustado. - Calcule el RMSE: tome la raíz cuadrada (
sqrt
) del error cuadrático medio (calculado utilizando eltest
y laspredicciones
). - Visualice los resultados: muestre los valores de
test
en la primera llamada a la función.plot()
y los valores depredictions
en la segunda llamada.
*Tenga en cuenta que el código puede tardar mucho tiempo en completarse.
¡Gracias por tus comentarios!
El último modelo que examinaremos es la media móvil autorregresiva integrada. Este modelo combina la autorregresión, la media móvil y la técnica de diferenciación (no es el modelo del que hemos hablado antes). Se presenta de la siguiente manera:
Puede parecer bastante complicado, pero en realidad, mira, AR
- es un modelo autorregresivo con el que ya estás familiarizado, MA
- es una media móvil, lo que implica una combinación lineal de errores de la previsión pasada.
ARIMA utiliza 3 parámetros que debemos elegir nosotros mismos (p, d, q)
:
P
- se denomina orden de autoregresión. Es el número de valores inmediatamente anteriores de la serie que se utilizan para predecir el valor en el momento actual;
D
- orden de diferenciación;
Q
- el orden de la media móvil. Permite establecer el error del modelo como una combinación lineal de los valores de error observados anteriormente.
Nota
En los próximos capítulos estudiaremos con más detalle las técnicas de diferenciación.
¿Cuál es la ventaja de este modelo? Puede predecir procesos no estacionarios simples (más concretamente, procesos en los que la media y la covarianza cambian con el tiempo) y es más eficaz cuando se trabaja con predicciones a corto plazo.
Vamos a crear un modelo ARIMA utilizando statsmodels
, para ello utilizaremos la clase ARIMA()
:
``python from statsmodels.tsa.arima.model import ARIMA from sklearn.metrics import error_medio_cuadrado from math import sqrt
X = df.valores tamaño = int(len(X) * 0.6) tren, prueba = X[0:tamaño], X[tamaño:] historial = entrenar.tolist() predicciones = list()
Realización de predicciones con el modelo ARIMA
for t in range(len(test)): model = ARIMA(history, order=(5, 1, 0)) model_fit = model.fit() salida = model_fit.predicción() predicciones.append(salida[0]) history.append(prueba[t])
Calcular el error MSE
rmse = sqrt(error_medio_cuadrado(prueba, predicciones)) print("RMSE de la prueba: %.3f" % rmse)
Representar los resultados
plt.plot(prueba) plt.plot(predicciones, color="rojo") plt.show() ```
Los resultados:
Básicamente, utilizará 2 funciones: .forecast()
y .predict()
La primera función es para predicciones fuera del conjunto de datos (por eso usamos un bucle en el ejemplo anterior), mientras que la función .predict()
se usa para predicciones dentro del conjunto de datos.
Además, puede experimentar con los parámetros p
, q
y d
para obtener los mejores resultados. Pero incluso con estos parámetros, puede ver que el modelo sigue bien las tendencias principales.
**El código puede tardar hasta 1 minuto en procesarse.
Tarea
Cree un modelo ARIMA y entrénelo en el conjunto de datos pr_air_quality.csv
.
- Dentro del bucle
for
, cree un modelo ARIMA utilizando los datoshistory
y asígnelo a la variablemodel
. A continuación, ajuste elmodel
a los datos y guárdelo comomodel_fit
. A continuación, haga previsiones utilizando elmodel_fit
ajustado. - Calcule el RMSE: tome la raíz cuadrada (
sqrt
) del error cuadrático medio (calculado utilizando eltest
y laspredicciones
). - Visualice los resultados: muestre los valores de
test
en la primera llamada a la función.plot()
y los valores depredictions
en la segunda llamada.
*Tenga en cuenta que el código puede tardar mucho tiempo en completarse.