我正在尝试开始在statsmodels中使用AR模型。但是,我似乎做错了。考虑以下示例,该示例失败:

from statsmodels.tsa.ar_model import AR
import numpy as np

signal = np.ones(20)
ar_mod = AR(signal)
ar_res = ar_mod.fit(4)

ar_res.predict(4, 60)

我认为这应该继续由一个组成的(琐碎的)时间序列。但是,在这种情况下,它似乎返回的参数不足。 len(ar_res.params)等于4,应为5。在以下示例中,它可以工作:
signal = np.ones(20)
signal[range(0, 20, 2)] = -1
ar_mod = AR(signal)
ar_res = ar_mod.fit(4)

ar_res.predict(4, 60)

我感觉这可能是一个错误,但是我不确定,因为我没有使用该软件包的经验。也许有更多经验的人可以帮助我...

编辑:我已经报告了here问题。

最佳答案

例如,在添加一点噪音后,它可以工作
signal = np.ones(20) + 1e-6 * np.random.randn(20)
我的猜测是,由于与信号完美的共线性,因此未正确添加常数。

您应该提出一个问题以更好地处理这种极端情况。 https://github.com/statsmodels/statsmodels/issues
我的猜测也是在这种情况下无法识别参数,因此可能没有任何好的解决方案。

(未识别出的参数意味着几个参数组合可以产生完全相同的拟合度,但我认为在这种情况下,它们都应产生相同的预测。)

关于python - 在Python中使用statsmodels的自回归模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28094538/

10-13 00:47