python - statsmodels arma(1,0) 与 AR(1) 不匹配

标签 python statsmodels

谁能解释一下为什么 ARMA(1,0) 模型与 maxlags=1 的 AR 拟合不匹配?这些模型有什么不同之处?

a = [ 6.12970357,  6.13318109,  6.12992128,  6.1273058 ,  6.12839643,
            6.12424563,  6.11080196,  6.10680013,  6.0860927 ,  6.07901746,
            6.0872292 ,  6.08381584,  6.08107671,  6.08881808,  6.06819407,
            6.06471499,  6.0537349 ,  6.05255967,  6.04334514,  6.03572065]


ar1model = ar_model.AR(a).fit(maxlag=1)
ar1model.params

数组([-0.09735684, 1.01516508])

model10=ARMA(a, (1,0)).fit()
model10.params

数组([ 6.08423432, 0.97711525])

最佳答案

我的猜测是 ARMA 通过重新参数化来强加平稳性,而 AR 则不然。

此外,ARMA 常数是长期平均值,而 AR 常数来自动态方程 y_t = const + b * y_{t-1} 。在固定 AR(1) 中 |b| < 1 ,长期常数为 const / (1 - b) .

ARMA模型的参数化是根据残差来进行的,即它是一个带有ARMA误差的回归模型:

A(L) (y_t - const) = B(L) u_t

或者在 ARMA(1,0) 情况下

y_t - 常量 - b (y_{t-1} - 常量) = u_t 或为 y_t 编写 y_t = b y_{t-1} - (1 - b) const + u_t

例如参见http://robjhyndman.com/hyndsight/arimax/http://robjhyndman.com/hyndsight/arimaconstants/对于两种可能的参数化。

结果差异的其他来源(尤其是在小样本中)可能是不同的默认初始化或不同的默认估计算法,并且在病态问题中,起始值也可能对最终结果产生影响。 一般来说,AR 和 ARMA 都假设过程是平稳的,而结果表明根在 1 附近并且可能不是平稳的。也许估计差分序列会产生更好的结果。

(我不太熟悉 statsmodels 中的 AR 实现。)

关于python - statsmodels arma(1,0) 与 AR(1) 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41915939/

相关文章:

Python - Win32Com - 如何从 Excel 电子表格单元格中提取超链接?

python - OpenCV Python保存jpg指定质量;给出系统错误

python - Statsmodels:使用 ARIMA 实现直接和递归的多步预测策略

python - 使用 statsmodels 创建残差图

python - PyMC3 大 MvNormal 先验

python - 尝试分配给我同时就地创建的字符串时出现错误 'can' t assign to operator'

python - 如何为 seaborn 热图中的蒙面单元分配自定义颜色?

python - Statsmodels 的 Logit.fit_regularized 永远运行

python - 当我使用 python statsmodels 在 OLS 中添加外生变量时,为什么 R-Squared 会减少

python - Pandas 交叉表中的加权结果