1. 程式人生 > 程式設計 >使用python實現時間序列白噪聲檢驗方式

使用python實現時間序列白噪聲檢驗方式

白噪聲檢驗也稱為純隨機性檢驗, 當資料是純隨機資料時,再對資料進行分析就沒有任何意義了, 所以拿到資料後最好對資料進行一個純隨機性檢驗

acorr_ljungbox(x,lags=None,boxpierce=False) # 資料的純隨機性檢驗函式

lags為延遲期數,如果為整數,則是包含在內的延遲期數,如果是一個列表或陣列,那麼所有時滯都包含在列表中最大的時滯中

boxpierce為True時表示除開返回LB統計量還會返回Box和Pierce的Q統計量

返回值:

lbvalue:測試的統計量

pvalue:基於卡方分佈的p統計量

bpvalue:((optionsal),float or array) – 基於 Box-Pierce 的檢驗的p統計量

bppvalue:((optional),float or array) – 基於卡方分佈下的Box-Pierce檢驗的p統計量

程式碼實現:

from statsmodels.stats.diagnostic import acorr_ljungbox
acorr_ljungbox(b.salesVolume,lags = [6,12],boxpierce=True)

使用python實現時間序列白噪聲檢驗方式

由輸出結果可以看到,不管是使用哪個統計量,p值都很大,所以該資料無法拒絕原假設,即認為該資料是純隨機資料

補充知識:用python實現時間序列單位根檢驗

在時間序列的建模中,需要先對資料進行平穩性檢驗,常用的有DF檢驗、ADF檢驗和PP檢驗,文章例項ADF檢驗

注:檢驗的P值是隻在一個假設檢驗問題中,利用樣本觀測值能夠作出拒絕原假設的最小顯著性水平。

如果a >= p,則在顯著性水平a 下拒絕H0

如果a < p,則在顯著性水平a下接受H0

實現方法一:

from arch.unitroot import ADF
ADF(data)

使用python實現時間序列白噪聲檢驗方式

ADF檢驗的原假設是不平穩,這裡P值近似為0 , 所以拒絕原假設,認為序列平穩。

from statsmodels.stats.diagnostic import unitroot_adf
unitroot_adf(b.salesVolume)

使用python實現時間序列白噪聲檢驗方式

這裡包含了檢驗值、p-value、滯後階數、自由度等資訊。我們看到了檢驗統計量為–5.954367776923936,小於1%的臨界值-4.01203360058309,,即p值遠小於0.01,因此我們拒絕原假設,認為該時間序列是平穩的。(這裡原假設是存在單位根,即時間序列為非平穩的。)

以上這篇使用python實現時間序列白噪聲檢驗方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。