![](/img/trans.png)
[英]Python auto_arima identifies model with intercept as best - how to fit?
[英]Get better fit on test data using Auto_Arima
我正在使用 AirPassengers 數據集來預測時間序列。 對於我正在使用的 model,我選擇使用 auto_arima 來預測預測值。 但是,auto_arima 選擇的順序似乎無法適合 model。 生成相應的圖表。
我能做些什么來獲得更好的身材?
我的代碼給那些想嘗試的人:
import pandas as pd
import numpy as np
import matplotlib.pylab as plt
%matplotlib inline
from pmdarima import auto_arima
df = pd.read_csv("https://raw.githubusercontent.com/AileenNielsen/TimeSeriesAnalysisWithPython/master/data/AirPassengers.csv")
df = df.rename(columns={"#Passengers":"Passengers"})
df.Month = pd.to_datetime(df.Month)
df.set_index('Month',inplace=True)
train,test=df[:-24],df[-24:]
model = auto_arima(train,trace=True,error_action='ignore', suppress_warnings=True)
model.fit(train)
forecast = model.predict(n_periods=24)
forecast = pd.DataFrame(forecast,index = test.index,columns=['Prediction'])
plt.plot(train, label='Train')
plt.plot(test, label='Valid')
plt.plot(forecast, label='Prediction')
plt.show()
from sklearn.metrics import mean_squared_error
print(mean_squared_error(test['Passengers'],forecast['Prediction']))
感謝您的閱讀。 任何建議表示贊賞。
問題是我沒有指定m,在這種情況下,我將m的值指定為12,表示它是一個月循環,每個數據行是一個月。 我就是這么理解的。資源
隨意評論,我不完全確定,因為我是使用 ARIMA 的新手。
代碼:
model = auto_arima(train,m=12,trace=True,error_action='ignore', suppress_warnings=True)
只需加上m=12,表示數據為月度數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.