4 回答

TA貢獻1848條經驗 獲得超6個贊
根據代碼:
stattools.pacf
計算估計 pacf 周圍的置信區間,即它以實際值為中心graphics.tsa.plot_pacf
取該置信區間并減去估計的 pacf,因此置信區間以零為中心。
我不知道也不記得為什么要這樣做。
在該示例中,滯后大于或等于 2 的所有 pacf 都接近于零,因此繪圖與 stattools.pacf 的結果之間沒有明顯差異。

TA貢獻1842條經驗 獲得超22個贊
滯后 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)。
添加回答
舉報