[英]Multiple inputs into Statsmodels ARIMA in Python
我正在嘗試使用多個輸入來擬合ARIMA模型。 只要輸入是單個數組,它就可以正常工作。
在這里 ,建議我將輸入數組放入類似多維數組的結構中。 所以我做了:
import numpy as np
from statsmodels.tsa.arima_model import ARIMA
a = [1, 2, 3]
b = [4, 5, 6]
data = np.dstack([a, b])
for p in range(6):
for d in range(2):
for q in range(4):
order = (p,d,q)
try:
model = ARIMA(data, order=(p,d,q))
print("this works:{}, {}, {} ".format(p,d,q))
except:
pass
但是,此腳本的輸出是這樣的:
this works:0, 0, 0
顯然,出了點問題(如果p,d,q全部為0,則根本不起作用)。 有人知道我在做什么錯嗎?
我們會向我指出正確的方向的任何建議。
使用ARIMA進行建模時,您需要具有足夠的“自由度”。
因此,代碼的問題在於np.dstack生成的數組形狀為(1,3,2),這意味着它只有一個數據元素。 您至少需要6個數據元素才能運行p值為5的ARIMA模型。
數組操作示例 。 我使用np.vstack產生盡可能多的行。
請運行下面的代碼片段,您將了解。
import numpy as np
from statsmodels.tsa.arima_model import ARIMA
a = [1, 2]
b = [3, 4]
c = [5, 6]
d = [7, 8]
data = np.vstack([a, b, c, d])
print(data.shape)
print(data)
for p in range(4):
for d in range(1):
for q in range(2):
order = (p,d,q)
try:
model = ARIMA(data, order=(p,d,q))
print("this works:{}, {}, {} ".format(p,d,q))
except:
print(order)
print('reached exception')
pass
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.