Sri*_*riK 1 machine-learning time-series
在statsmodels中,对于SARIMAX或ARIMA模型,我想使用多个外部变量(外生变量)。例如,我想使用滞后3的AR作为收益时间序列,滞后4的AR与天气温度时间序列,以及市场价格的另一个变量,滞后3的AR,预测时间t的收益。这似乎不可能吗?有什么例子或解释如何做到的?
小智 5
首先必须定义你的外源输入与尺寸的阵列型结构的NOBS X ķ其中NOBS是您的内源观察的数量(即假设你有一个时间序列,时间序列的长度)和ķ的您的其他外生变量的数量。假设您为此目的使用ndarray,则可能会从以下内容开始
exog = np.empty([nobs, k])
Run Code Online (Sandbox Code Playgroud)
然后用外生变量的值填充它。然后,按照下面的示例定义模型:
model = sm.tsa.SARIMAX(endog=series, exog=exog, order=order, seasonal_order=seasonal_order).fit(start_params=[0, 0, 0, 0, 0, 1])
Run Code Online (Sandbox Code Playgroud)
其中系列是原来的时间序列,exog外源输入,以便第(p,d,q)的元组和seasonal_order一个(P,d,Q,S)元组。您应该注意start_params列表,对于我而言,该列表对于成功构建sarimax模型至关重要。
当我不使用任何外部输入时,对于(p,d,q) =(1,0,0)和(P,D,Q,s),start_params列表为start_params = [0,0,0,1] =(1,0,0,37)。
当我添加3个新的外部输入时,我将start_params列表设置为start_params = [0,0,0,0,1,1],如果您注意到它还有2个其他元素。
我想(我不确定不确定是否也没有彻底检查过)如果您在模型中添加k个外部输入,则必须在start_params列表中添加k-1个其他元素才能成功构建sarimax模型。
希望能帮助到你。干杯。
| 归档时间: |
|
| 查看次数: |
3189 次 |
| 最近记录: |