统计模型和数据格式



我有2个1D np。数组X和Y,表示时间序列的值。我在尝试做时间序列预测。但是,当我应用以下代码时:

mod = RollingOLS(endog=Y, exog=X, window=75, min_nobs=None,expanding=True)
fit=mod.fit()
print("Akaike")
print(fit.aic)

我得到一个长度等于X和Y的数组,这使我认为建模不像我想的那样工作,因为我应该只得到一个值。

因此,我认为X和Y的格式是不充分的。如何解决这个问题?

根据文档,exog应该是二维数组,[nobs, k]。

exog: array_likenobs x k数组,nobs是观测值的个数,k是回归量的个数。默认情况下不包含拦截,应该由用户添加。看到statsmodels.tools.add_constant。

您可能需要添加一个全是1的列。

import statsmodels.api as sm
X = sm.add_constant(X)
# if your statsmodel version is new
# X = statsmodels.tools.tools.add_constant(X)

https://www.statsmodels.org/stable/generated/statsmodels.regression.rolling.RollingOLS.html
https://www.statsmodels.org/stable/examples/notebooks/generated/rolling_ls.html

可能相关的问题
为什么我只能从statmodels OLS fit中获得一个参数

最新更新