谁能解释一下为什么 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/