Autoregressão
Vamos prosseguir para a revisão do modelo autoregressivo:
A fórmula é semelhante à fórmula de regressão linear, daí o nome. Ao invés do coeficiente, utiliza-se o valor passado de x
.
Com statsmodels
, podemos executar um modelo autoregressivo AutoReg()
:
from statsmodels.tsa.ar_model import AutoReg
# Treinar o modelo de autoregressão
model = AutoReg(df["value"], lags=3)
model_fit = model.fit()
# Fazer previsões
predictions = model_fit.predict(start=0, end=len(X)-1, dynamic=False)
# Plotar resultados
plt.plot(df["value"][:50])
plt.plot(predictions[:50], color='red')
plt.show()
Caso perceba, as previsões feitas pelo modelo autorregressivo são mais precisas do que aquelas do simples média móvel.
Vamos aprender como avaliar os resultados obtidos dos modelos treinados. O erro é calculado utilizando o erro médio quadrático. Isso é feito de maneira simples com a ajuda das funções sqrt()
e mean_squared_error()
:
from sklearn.metrics import mean_squared_error
from math import sqrt
test_score = sqrt(mean_squared_error(df["value"][3:], predictions[3:]))
print("Test MSE: %.3f" % test_score)
Da mesma forma, calculamos o valor do erro para o modelo anterior:
Quanto menor o valor do MSE, menor será o erro correspondente.
Swipe to start coding
Crie um modelo autoregressivo e treine-o com o conjunto de dados shampoo.csv
.
- Crie um modelo de autoregressão (
Autoreg
) com 6 defasagens para a coluna"Sales"
do DataFramedf
. - Ajuste o
model
aos dados. - Faça previsões usando o
model
. Comece a previsão na primeira linha (o parâmetrostart
) e configure o parâmetrodynamic
paraFalse
. - Visualize os resultados: mostre as primeiras 150 observações da coluna
"Sales"
do DataFramedf
na primeira chamada da função.plot()
e os primeiros 150 valores previstos na segunda chamada.
Solução
Obrigado pelo seu feedback!