用Python處理非平穩時間序列(附程式碼)
原文地址:https://blog.csdn.net/tmb8z9vdm66wh68vx1/article/details/84207895
由於排版和圖片原因,請儘量轉制原文觀看,在此只是作為個人的一個記錄。
作者:AISHWARYA SINGH
翻譯:陳之炎
校對:丁楠雅
本文約3600字,建議閱讀10分鐘。
本文將重點介紹時間序列資料的平穩性檢驗方法。
簡介
預測一個家庭未來三個月的用電量,估計特定時期道路上的交通流量,預測一隻股票在紐約證券交易所交易的價格……這些問題都有什麼共同點?
它們都屬於時間序列資料的範疇!如果沒有“時間”成分,就無法準確地預測出結果。隨著我們周圍世界產生的資料越來越多,時間序列預測已成為資料科學家必須掌握的一項越來越關鍵的技能。
然而,時間序列是一個複雜的話題,它具有多面性。
首先,要想使預測模型正常工作,就必須使時間序列保持平穩。為什麼?因為絕大部分原始資料都會有非平穩的趨勢。如果有很多不規則的尖峰,你怎麼能確保模型正常工作呢?
本文將重點介紹時間序列資料的平穩性檢驗方法。在此假設讀者已熟悉時間序列、ARIMA和平穩性的概念,以下是一些包含基礎內容的參考資料:
時間序列建模完整教程
給初學者的時間序列預測綜合指南
目錄
1. 平穩簡介
2. 載入資料
3. 檢驗平穩的方法
ADF檢驗
KPSS檢驗
4. 平穩的種類
嚴格平穩
趨勢平穩
差分平穩
5. 時間序列平穩化
差分
季節性差分
對數變換
1. 平穩簡介
“平穩”是處理時間序列資料時遇到的最重要的概念之一:平穩序列是指其特性-均值、方差和協方差不隨時間而變化的序列。
讓我們用一個直觀的例子來理解這一點。考慮以下三個圖形:
在第一幅圖中,我們可以清楚地看到,均值隨時間而變化(增加),呈現上升的趨勢。因此,這是一個非平穩序列。平穩序列不應該呈現出隨時間變化的趨勢。
第二幅圖顯然看不到序列的趨勢,但序列的變化是一個時間的函式。正如前面提到的,平穩序列的方差必須是一個常數。
再來看第三幅圖,隨著時間的增加,序列傳播後變得更近,這意味著協方差是時間的函式。
上述三個例子均是非平穩時間序列。現在來看第四個圖:
在這張圖中,均值、方差和協方差都是常數,這就是平穩時間序列。
再想一想,上面的哪一幅圖預測未來會更容易呢?第四個圖,對吧?大多數統計模型都要求序列是平穩的,這樣才能進行有效和精確的預測。
因此,總的來說,平穩時間序列是一個不依賴時間變化 (即均值、方差和協方差不隨時間變化)的時間序列。在下一節中,我們將介紹各種檢測給定序列是否平穩的方法。
2. 載入資料
在本節和後續幾節中,將介紹檢測時間序列資料的平穩性的方法,以及如何處理非平穩序列。同時,本文還提供了相應的Python程式碼。大家可以到:AirPassengers下載文中使用的資料集。
在繼續分析資料集之前,首先載入和預處理資料。
好了,看來可以繼續了!
3. 檢驗平穩的方法
下一步是確定給定的序列是否是平穩的,並對它做相應的處理。本節將介紹一些常見的方法,利用這些方法來檢測序列是否平穩。
目視檢驗
看一下我們在上一節中使用的圖形,僅需通過目測圖形,便能夠識別出序列的均值和方差是否隨時間變化。同樣,通過繪製資料圖形,便能確定該序列的屬性是否隨時間而變化。
顯然,通過作圖,可以看到序列的趨勢(變化的均值),然而,這種目視檢測方法得到的結果可能不準確。最好是用一些統計檢驗方法來驗證觀測結果。
統計檢驗
可以利用統計檢驗來代替目視檢驗:比如單位根平穩檢驗。單位根表名給定序列的統計特性(均值,方差和協方差)不是時間的常數,這是平穩時間序列的先決條件。下面是它的數學解釋:
假設我們有一個時間序列:
其中yt是t時刻的資料值,ε t 是誤差項。需要利用yt-1的值來計算yt,即:
如果利用所有的觀察值,yt 的值將是:
假設在上述方程中a的值為1(單位),則預測值將等於yt-n 和從t-n到t的所有誤差之和,這意味著方差將隨著時間的推移而增大,這就是時間序列中的單位根。眾所周知,平穩時間序列的方差不能是時間的函式。單元根檢驗通過檢查a=1的值來檢查序列中是否存在單位根。以下是兩個最常用的單位根平穩檢測方法:
ADF(增補迪基-福勒)檢驗
The Dickey Fuller test is one of the most popular statistical tests. It can be used to determine the presence of unit root in the series, and hence help us understand if the series is stationary or not. The null and alternate hypothesis of this test are:
迪基-福勒(Dickey Fuller)檢驗是最流行的統計檢驗方法之一,可以用它來確定序列中單位根的存在,從而幫助判斷序列是否是平穩。這一檢驗的原假設與備擇假設如下:
原假設:序列有一個單位根(a=1的值)
備擇假設:該序列沒有單位根。
如果不能拒絕原假設,則該序列是非平穩的,這意味著序列可以是線性的,也可以是差分平穩的(將在下一節中更多地瞭解差分平穩)。
Python程式碼:
ADF檢驗結果:ADF檢驗的統計量為1%,p值為5%,臨界值為10%,置信區間為10%。我們對本序列的檢驗結果如下:
平穩性檢驗:如果檢驗統計量小於臨界值,我們可以拒絕原假設(也就是序列是平穩的)。當檢驗統計量大於臨界值時,不能拒絕原假設(這意味著序列不是平穩的)。
在上面的例子中,檢驗統計量>臨界值,這意味著序列不是平穩的。這證實了我們最初在目視檢測中觀察的結果。
KPSS(科瓦特科夫斯·基菲利普·斯施密特·辛)檢驗
KPSS檢驗是另一種用於檢查時間序列的平穩性 (與迪基-福勒檢驗相比稍遜一籌) 的統計檢驗方法。KPSS檢驗的原假設與備擇假設與ADF檢驗的原假設與備擇假設相反,常造成混淆。
KPSS檢驗的作者將原假設定義為趨勢平穩,並將備擇假設定義為單位根序列。我們將在下一節詳細瞭解趨勢平穩。現在,來看一下KPSS檢驗的實現,並檢視KPSS檢驗的結果。
原假設:序列是趨勢平穩的。
備擇假設:序列有一個單位根(序列是非平穩的)。
Python程式碼:
KPSS檢驗結果:KPSS檢驗-檢驗統計量、p-值和臨界值和置信區間分別為1%、2.5%、5%和10%。對於航空乘客資料集的檢驗結果如下:
平穩性檢驗:如果檢驗統計量大於臨界值,則拒絕原假設(序列不是平穩的)。如果檢驗統計量小於臨界值,則不能拒絕原假設(序列是平穩的)。對於航空乘客資料集來說,在所有置信區間,檢驗統計量的值都大於臨界值,因此可以說該序列是不平穩的。
在為時間序列資料集準備模型之前,通常會同時進行兩種檢驗。有一次,這兩種檢驗顯示出相互矛盾的結果:其中一個檢驗結果表明該序列是平穩的,而另一個則表明該序列是非平穩的!我困惑了好幾個小時,想弄清楚這是怎麼回事。後來才知道,序列的平穩性有多種型別。
綜上所述,ADF檢驗有線性平穩或差分平穩的備擇假設,而KPSS檢驗則是識別序列的趨勢平穩。
4. 平穩的種類
通過了解不同型別的平穩,來解釋上述檢驗的結果。
嚴格平穩:嚴格平穩序列滿足平穩過程的數學定義。嚴格平穩序列的均值、方差和協方差均不是時間的函式。我們的目標是將一個非平穩序列轉化為一個嚴格平穩序列,然後對它進行預測。
趨勢平穩:沒有單位根但顯示出趨勢的序列被稱為趨勢平穩序列。一旦去除趨勢之後,產生的序列將是嚴格平穩的。在沒有單位根的情況下,KPSS檢測將該序列歸類為平穩。這意味著序列可以是嚴格平穩的,也可以是趨勢平穩的。
差分平穩:通過差分可以使時間序列成為嚴格平穩的時間序列。ADF檢驗也稱為差分平穩性檢驗。
應用兩種檢驗總會更優些,通過兩種檢驗之後,可以確定這個序列是否是平穩的。下面,來看一下應用兩種平穩檢驗後的可能結果:
結果1:兩種檢驗均得出結論:序列是非平穩的->序列是非平穩的
結果2:兩種檢驗均得出結論:序列是平穩的->序列是平穩的
結果3:KPSS =平穩;ADF =非平穩->趨勢平穩,去除趨勢後序列嚴格平穩
結果4:KPSS =非平穩;ADF =平穩->差分平穩,利用差分可使序列平穩。
5. 時間序列的平穩化
在熟悉了平穩性的概念及其不同的型別之後,接下來可以對序列進行平穩化操作。請記住,為了建立時間序列預測模型,必須首先將任何非平穩序列轉換為平穩序列。
差分化
在該方法中,計算序列中連續項的差值。執行差分操作通常是為了消除均值的變化。從數學角度,差分可以寫成:
yt‘ = yt – y(t-1)
其中yt 是t時刻的數值。
對序列差分化後,繪製出結果:
季節性差分
在季節性差分中,不計算連續值之間的差異,而是計算觀察值與同一季節的先前觀察值之間的差異。例如,星期一的觀察值將與上星期一的觀察值相減。從數學角度,它可以寫成:
yt‘ = yt – y(t-n)
變換
變換用於對方差為非常數的序列進行平穩化。常用的變換方法包括冪變換、平方根變換和對數變換。對飛機乘客資料集進行快速對數轉換和差分:
可以看出,這個圖形比先前的圖形有了很大的改善。通過對這個序列進行平方根或冪變換,看看是否得出了更好的結果。歡迎在下面的評論裡分享你的發現!
尾註
本文介紹了檢驗時間序列平穩性的不同方法。但並不止步於此,下一步是對得到的序列應用一個預測模型。可以參考以下文章來構建這樣的模型:給初學者的時間序列預測綜合指南(Beginner’s Guide to Time Series Forecast)。
---------------------
作者:資料派THU
來源:CSDN
原文:https://blog.csdn.net/tmb8z9vdm66wh68vx1/article/details/84207895