преобразование значений обратного прогнозирования в исходный масштаб (прогнозирование с использованием модели python arima) - PullRequest
1 голос
/ 16 февраля 2020

Я пытаюсь сделать прогноз с помощью модели ARIMA. У меня проблема с преобразованием моих прогнозов в исходный масштаб. вот мой код Может ли кто-нибудь помочь мне найти ошибку в моем сценарии? Я действительно ценю это, спасибо.

from statsmodels.tsa.arima_model import ARIMA

#arima model
model=ARIMA(ts_logscale,order=(2,1,2))
results_ARIMA=model.fit(disp=-1)
plt.plot(datasetlogdiffshifting)
plt.plot(results_ARIMA.fittedvalues,color='red')
plt.title('RSS: %.4f'% sum((results_ARIMA.fittedvalues-datasetlogdiffshifting["Chargé (T)"])**2))
print('plotting ARIMA model')

PLOTING THE PREDICTIONS

сейчас, когда я пытаюсь конвертировать обратно:

#converting back
#creating a time serie
predictions_ARIMA_diff=pd.Series(results_ARIMA.fittedvalues,copy=True)
#convert to cumulative sum
predictions_ARIMA_diff_cumsum=predictions_ARIMA_diff.cumsum()

predictions_ARIMA_log=pd.Series(ts_logscale['Chargé (T)'].ix[0],index=ts_logscale.index)
predictions_ARIMA_log=(predictions_ARIMA_log).add(predictions_ARIMA_diff_cumsum,fill_value=0)
#plotting
predictions_ARIMA=np.exp(predictions_ARIMA_log)
plt.plot(ts,color='blue')
plt.plot(predictions_ARIMA,color='red')

plotting predictions after converting back

Как вы можете видеть, это сильно отличается от первого сюжета ...

1 Ответ

0 голосов
/ 16 февраля 2020

ARIMA (2,1,2): модель с двумя (2) терминами авторегрессии, одним (1) оператором обратного сдвига и двумя (2) членами скользящего среднего. Теперь, когда вы применяете один (1) оператор обратного сдвига, вам не нужно беспокоиться, потому что модели statsmodels преобразуют ваши прогнозы, поэтому единственной проблемой здесь является преобразование журнала, которое вы делали ранее, для этого просто используйте np.exp Ваши прогнозы и проблемы решены!

...