亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Statsmodels PACF 圖置信區間與 PACF 函數不匹配

Statsmodels PACF 圖置信區間與 PACF 函數不匹配

繁花如伊 2022-11-24 15:18:21
我有一個時間序列,在觀察偏自相關 (PACF) 圖時似乎有明顯的滯后,即 PACF 值大于藍色置信區間。我想以編程方式驗證這一點,但它似乎不起作用。我用 statsmodels 時間序列 api 繪制了 PACF 圖,這表明第一個滯后是顯著的。因此,我使用PACF 估計來獲取 PACF 值以及每個點的置信區間,但兩者之間的置信區間不匹配。更奇怪的是源代碼中的繪圖函數使用了底層估計函數,因此它們應該匹配。例子:import numpy as npimport matplotlib.pyplot as pltimport statsmodels.api as smx = np.arange(1000) sm.graphics.tsa.plot_pacf(x)plt.show()這表明第一個滯后非常顯著,約為 0.98,整個圖中的置信區間(藍色矩形)約為 (-0.06, 0.06)。或者,在嘗試獲取這些精確的繪圖值時(為簡潔起見,僅獲取前 10 個滯后值):sm.tsa.stattools.pacf(x, nlags=10, alpha=0.05) 生成的 PACF 值為(與上圖匹配):array([ 1.        ,  0.997998  , -0.00200201, -0.00200402, -0.00200605,        -0.0020081 , -0.00201015, -0.00201222, -0.0020143 , -0.00201639,        -0.00201849])置信區間(在上圖中以藍色顯示)似乎在第一個滯后時關閉: array([[ 1.        ,  1.        ],        [ 0.93601849,  1.0599775 ],        [-0.06398151,  0.0599775 ],        [-0.06398353,  0.05997548],        [-0.06398556,  0.05997345],        [-0.0639876 ,  0.05997141],        [-0.06398965,  0.05996935],        [-0.06399172,  0.05996729],        [-0.0639938 ,  0.05996521],        [-0.06399589,  0.05996312],        [-0.06399799,  0.05996101]]))這是怎么回事?
查看完整描述

4 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

根據代碼:

  • stattools.pacf計算估計 pacf 周圍的置信區間,即它以實際值為中心

  • graphics.tsa.plot_pacf取該置信區間并減去估計的 pacf,因此置信區間以零為中心。

我不知道也不記得為什么要這樣做。

在該示例中,滯后大于或等于 2 的所有 pacf 都接近于零,因此繪圖與 stattools.pacf 的結果之間沒有明顯差異。


查看完整回答
反對 回復 2022-11-24
?
茅侃侃

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')

http://img1.sycdn.imooc.com//637f1af50001467f06020460.jpg

查看完整回答
反對 回復 2022-11-24
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

如果我正確理解了最初的問題——為什么 ACF/PACF 函數返回的 CI 編號與圖表上顯示的 CI 不匹配(由函數 plot_acf 生成)?答案很簡單——圖上的 CI 以 0 為中心,它使用的數字與您從 acf/pacf 函數中獲得的數字相同。



查看完整回答
反對 回復 2022-11-24
?
炎炎設計

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)。

http://img1.sycdn.imooc.com//637f1b07000196a509930378.jpg

查看完整回答
反對 回復 2022-11-24
  • 4 回答
  • 0 關注
  • 269 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號