4 回答
TA贡献1848条经验 获得超6个赞
根据代码:
stattools.pacf
计算估计 pacf 周围的置信区间,即它以实际值为中心graphics.tsa.plot_pacf
取该置信区间并减去估计的 pacf,因此置信区间以零为中心。
我不知道也不记得为什么要这样做。
在该示例中,滞后大于或等于 2 的所有 pacf 都接近于零,因此绘图与 stattools.pacf 的结果之间没有明显差异。
TA贡献1842条经验 获得超21个赞
滞后 0 的 PACF 始终为 1(参见此处的示例),因此其置信区间为 [1,1]。
这是由计算 CI的代码片段的最后一行确保的:
varacf = 1. / len(x) # for all lags >=1
interval = stats.norm.ppf(1. - alpha / 2.) * np.sqrt(varacf)
confint = np.array(lzip(ret - interval, ret + interval))
confint[0] = ret[0] # fix confidence interval for lag 0 to varpacf=0
(另请参阅问题 1969,其中已解决此问题)。
由于 0 滞后没有意义,您通常使 PACF 图从滞后 1 开始(如 R 的pacf 函数)。这可以通过以下方式实现zero=False:
sm.graphics.tsa.plot_pacf(x, ax=axes[0], zero=True, title='zero=True (default)')
sm.graphics.tsa.plot_pacf(x, ax=axes[1], zero=False, title='zero=False')
TA贡献1850条经验 获得超11个赞
如果我正确理解了最初的问题——为什么 ACF/PACF 函数返回的 CI 编号与图表上显示的 CI 不匹配(由函数 plot_acf 生成)?答案很简单——图上的 CI 以 0 为中心,它使用的数字与您从 acf/pacf 函数中获得的数字相同。
TA贡献1808条经验 获得超4个赞
我仍然不遵循答案。通过查看我自己的数据,我了解到图表以零为中心,但按原样描绘了值。这不就是把两个不同的天平合二为一吗?您不应该选择 1:原始值与原始 CI(块 1),或者将值视为 0,CI 以零为中心(块 2)?
下图说明了我的观点:
第一个块: statsmodels.tsa.stattools.acf(df,nlags=10,alpha=0.05,fft=True)。
第二块: LCL-value和UCL-value减去值,与0比较。
第三块:匹配图表 sm.graphics.tsa.plot_acf(df, zero=False, lags = 10, alpha=0.05) 将显示:调整后的 LCL 和 UCL,但原始值。
如您所见,“原始”方式没有显着结果(eval、eval_w_0),但我从图中得到了显着结果(eval_adj)。
添加回答
举报