【问题标题】:Statsmodels and data formatStatsmodels和数据格式
【发布时间】:2021-02-20 12:11:30
【问题描述】:

我有 2 个 1D np.array 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 之一的数组,这让我认为 mdeolization 不能按我的意愿工作,因为我应该只得到一个值。

因此,我认为 X 和 Y 的格式不合适。我该如何解决这个问题?

【问题讨论】:

    标签: python statsmodels


    【解决方案1】:

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

    exog: array_like 一个 nobs 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

    可能相关的问题
    Why do I get only one parameter from a statsmodels OLS fit

    【讨论】:

    • 那么我应该如何修改我的 exog 数组,因为它的初始形状是 (530,) ?
    猜你喜欢
    • 2018-04-24
    • 2021-08-09
    • 2013-05-18
    • 2017-07-25
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    相关资源
    最近更新 更多