我正在尝试在状态模型中使用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)我有这样的感觉,这可能是一个错误,但我不确定,因为我没有使用包的经验。也许更有经验的人能帮我..。
编辑:我已经报告了问题这里。
发布于 2015-01-22 20:31:59
例如,在添加一点噪声之后,它就可以工作了。
signal = np.ones(20) + 1e-6 * np.random.randn(20)
我的猜测是,由于与信号的完美共线性,常数没有被适当地加进去。
你应该打开一个问题来更好地处理这个角落的案子。https://github.com/statsmodels/statsmodels/issues --我的猜测是,在这种情况下,参数是没有标识的,所以可能没有任何好的解决方案。
(未识别的参数意味着几个参数组合可以产生完全相同的拟合,但我认为在这种情况下,它们都应该产生相同的预测。)
https://stackoverflow.com/questions/28094538
复制相似问题