我在Stackoverflow看到过类似的问题。但是,要么这些问题差异很大,要么如果相似,它们实际上没有得到回答。我想这是建模者经常遇到的问题,解决起来很困难
在我的例子中,我使用两个变量,一个Y和一个X,以及50个时间序列的连续观测。它们都是表示%更改的随机数(它们可以是任何您想要的,它们的真实值并不重要。这只是我的编码问题的一个示例)。下面是我构建这个ARIMAX(1,0,0)模型的基本代码
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as smf
df = pd.read_excel('/Users/gaetanlion/Google Drive/Python/Arima/df.xlsx', sheet_name = 'final')
from statsmodels.tsa.arima_model import ARIMA
endo = df['y']
exo = df['x']
接下来,我使用前41个观测值建立ARIMA模型
modelho = sm.tsa.arima.ARIMA(endo.loc[0:40], exo.loc[0:40], order =(1,0,0)).fit()
print(modelho.summary())
到目前为止一切正常
接下来,我尝试从样本中预测或预测接下来的9个观测值。这里我想用这9个观测值的X值来预测Y,但我做不到。我在下面只展示了一个代码,我认为它让我最接近我需要去的地方
modelho.predict(exo.loc[41:49], start = 41, end = 49, dynamic = False)
TypeError: predict() got multiple values for argument 'start'
这个例子应该有用。我正在使用你的代码,但它有点变化
生成一个示例数据帧
Arima模型的顺序保持在代码中,只是为了演示
让我们把最后12个观察结果从模型中去掉
还可以使用:
相关问题 更多 >
编程相关推荐