[英]Correctly interpreting statsmodels.tsa.ar_models.ar_select_order function array to determine optimal lag
使用 statsmodels 0.12.0 我試圖確定statsmodels.tsa.ar_models.AutoReg
模型的最佳滯后。 我正在使用每月時間步長的美國人口數據,並將最大延遲 12 傳遞給statsmodels.tsa.ar_models.ar_select_order
對象進行評估。
from statsmodels.tsa.ar_model import AutoReg, ar_select_order
df = pd.read_csv('Data\uspopulation.csv', index_col='DATE', parse_dates=True)
df.index.freq = 'MS'
train_data = df.iloc[:84]
test_data = df.iloc[84:]
modelp = ar_select_order(train_data['PopEst'], maxlag=12)
上面的代碼返回一個[ 1 2 3 4 5 6 7 8 9 10 11 12]
的 numpy 數組,根據 StackOverflow 問題: stackoverflow ,我將其解釋為“最佳滯后p為 12”。 但是,對某些指標 (RMSE) 進行評估后,我發現我的 AutoReg 擬合模型的maxlag=12
的性能比低階模型差。 通過反復試驗,我發現最佳滯后是 8。所以我很難解釋生成的 numpy 數組,我一直在閱讀statsmodels.com/ar_select_order和statsmodels.com/autoregressions上的資源,但他們沒有說得更清楚。
這里有人有任何意見嗎? 這個python庫的新手,感覺有點迷失。
上面的代碼返回一個 [1 2 3 4 5 6 7 8 9 10 11 12] 的 numpy 數組,根據 StackOverflow 問題:stackoverflow,我將其解釋為“最佳滯后 p 為 12”。
恩,那就對了。 它返回一個數組而不是12
個數組的原因是它也可以搜索不包含所有滯后的模型,如果您設置glob=True
。 例如, [ 1 2 3 12]
可能是具有某種年度季節性模式的月度模型的常見結果。
但是,對某些指標 (RMSE) 進行評估后,我發現我的 AutoReg 擬合模型的 maxlag=12 的性能比低階模型差。 通過反復試驗,我發現最佳滯后是 8。所以我很難解釋生成的 numpy 數組,我一直在閱讀 statsmodels.com/ar_select_order 和 statsmodels.com/autoregressions 上的資源,但他們沒有說得更清楚。
此函數返回使用信息標准判斷為最佳的模型。 特別是,默認值為BIC 或貝葉斯信息准則。 如果使用其他標准,例如最小化樣本外 RSME,那么絕對有可能發現不同的模型被判斷為最優。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.