結(jié)合案例,談?wù)勅绾芜M行時間序列分析
在數(shù)據(jù)分析的過程中,我們時常需要利用多種分析方式來進行業(yè)務(wù)盤點,其中,時間序列分析可以讓我們對以往的數(shù)據(jù)點進行評判,并輔助關(guān)于未來的預(yù)測和結(jié)果分析。那么,你知道如何進行時間序列分析嗎?本篇文章里,作者便結(jié)合實際案例進行了解讀,一起來看。
2021年剛剛結(jié)束,小毛的便利店整體銷量還不錯,年末盤點時發(fā)現(xiàn)由于某種熱銷飲料庫存大約缺少100箱,導(dǎo)致流失了部分營業(yè)額,因此小毛希望通過對歷史年份銷售數(shù)據(jù)的整理,對2022年進貨量和銷售額進行預(yù)測,合理制定2022年度購銷計劃,使2022年營業(yè)額邁向更高的臺階。小毛看著滿眼的銷售數(shù)據(jù)陷入了沉思……
在上面案例中,小毛的問題是通過歷史銷售數(shù)據(jù)來預(yù)測未來銷售數(shù)據(jù),在統(tǒng)計學(xué)領(lǐng)域,可以使用時間序列分析來解答他的問題。時間序列簡單的說就是各時間點上形成的數(shù)值序列,通過觀察歷史數(shù)據(jù)的變化規(guī)律預(yù)測未來的值。在這里需要強調(diào)一點的是,時間序列分析并不是關(guān)于時間的回歸,它主要是研究自身的變化規(guī)律的。接下來,筆者就跟你淺談一下時間序列分析。
一、時間序列分析的定義
1. 概念
首先,時間序列定義為在一定時間間隔內(nèi)按時間順序測量的某個數(shù)量。
時間序列分析是指將歷史數(shù)據(jù)分解為四部分來看——趨勢、周期、時期和不穩(wěn)定因素,然后綜合這些因素,提出預(yù)測。時間序列分為平穩(wěn)序列和非平穩(wěn)序列兩大類。平穩(wěn)序列是不存在趨勢只存在隨機性的序列,非平穩(wěn)序列則是包含趨勢、季節(jié)性和隨機性的序列。
從最廣泛的形式來說,時間序列分析是關(guān)于推斷過去一系列數(shù)據(jù)點發(fā)生了什么,并試圖預(yù)測未來會發(fā)生什么。時間序列分析試圖了解過去并預(yù)測未來。
2. 分類
通常,時間序列通常包含以下類型:
- 趨勢:趨勢是時間序列中一致的方向性運動。這些趨勢將是確定性的或隨機的。時間序列在長時間內(nèi)呈現(xiàn)出來的長期上升或下降的變動。
- 季節(jié)性變化:許多時間序列都包含季節(jié)性變化。在代表業(yè)務(wù)銷售或氣候水平的系列中尤其如此。我們經(jīng)??吹缴唐返募竟?jié)性變化,特別是那些與生長季節(jié)或年度溫度變化有關(guān)的商品(例如天然氣)。
- 序列依賴性:時間序列(尤其是金融序列)最重要的特征之一就是序列相關(guān)性。當(dāng)時間上相互靠近的時間序列觀測值傾向于相互關(guān)聯(lián)時,就會發(fā)生這種情況。
二、時間序列分析的步驟
時間序列預(yù)測的步驟是:
在開始平穩(wěn)性檢驗步驟之前,我首先想和大家分享的是平穩(wěn)性檢驗的目的。平穩(wěn)性檢驗為了確定沒有隨機趨勢或確定趨勢,否則將會產(chǎn)生“偽回歸”問題.偽回歸是說,有時數(shù)據(jù)的高度相關(guān)僅僅是因為二者同時隨時間有向上或向下的變動趨勢, 并沒有真正聯(lián)系.這樣數(shù)據(jù)中的趨勢項,季節(jié)項等無法消除, 從而在殘差分析中無法準確進行分析。
1. 平穩(wěn)性檢驗
1)圖示法
平穩(wěn)性指的是期望不變,方差恒定,協(xié)方差不隨時間改變,協(xié)方差只依賴于K這個時間跨度,不依賴于時間點t本身。
給定這些假設(shè)前提的目的是便于后續(xù)技術(shù)上的處理。根據(jù)時序圖粗略來判斷序列是否平穩(wěn),平穩(wěn)時序圖的特征為圍繞均值不斷波動,而非平穩(wěn)時序圖表現(xiàn)為在不同時間段具有不同的均值。圖a為平穩(wěn)時序圖,圖b為非平穩(wěn)時序圖。
然而僅依靠圖像判斷時間序列的平穩(wěn)性,肯定是不精確的,因此需要進行單位根檢驗(DF檢驗和ADF檢驗)進一步判斷。
2)單位根檢驗
① DF檢驗
(原假設(shè) H0:序存在單位根 ,即參數(shù)δ=0)
檢驗時間序列的平穩(wěn)性,一般可通過檢驗帶有截距項的一階自回歸模型:
對上式可通過進行普通最小二乘法的t檢驗完成(t檢驗的原假設(shè):H0:βj=0。即若P值<0.05,則拒絕原假設(shè),證明δ≠0,序列平穩(wěn)。
② ADF檢驗
因DF檢驗假設(shè)ut為白噪聲,序列為一階自回歸的模型,但實際上隨機干擾項并非為白噪聲序列,且序列并非為一階自回歸生成,因此用普通最小二乘法進行估計的t統(tǒng)計量會受到無關(guān)參數(shù)的影響,導(dǎo)致DF檢驗無效。如果時間序列包含有明顯的隨時間變化的某種趨勢,DF檢驗必須保證能夠剔除這種趨勢,否則時間趨勢的成分會進入ut,導(dǎo)致ut非白噪聲序列,進而偏離了最初的假設(shè)。因此形成了ADF檢驗。ADF檢驗是由下面3個模型完成:
其中t為時間變量,代表序列隨時間變化的趨勢。
模型的檢驗原理同DF檢驗,即t檢驗;檢驗順序為(3)、(2)、(1);三個模型全部檢驗通過,才能證明該序列是平穩(wěn)時間序列。
2. 時間序列常見的三種模型
序列通過平穩(wěn)性檢驗后,就可以建立時間序列模型了,當(dāng)序列不平穩(wěn)時,對序列進行差分或者取對數(shù)處理。對時序數(shù)據(jù)進行差分處理,例如在R語言的“diff”函數(shù)可確定(P值<0.05,則拒絕原假設(shè),序列不存在單位根,經(jīng)1階差分后,序列平穩(wěn))。
對一個時間序列預(yù)處理后檢驗出該序列為平穩(wěn)時間序列說明該模型有提取信息的價值,就要進行下一步的模型建立來擬合該模型然后做出預(yù)測。下面介紹擬合時間序列的三個重要模型。
1)AR(p)模型
自回歸模型(Autoregressive model,簡稱AR模型),用同一變數(shù)例如x的之前各期,亦即x1至xt-1來預(yù)測本期xt的表現(xiàn),并假設(shè)它們?yōu)橐淮尉€性關(guān)系。因為這是從回歸分析中的線性回歸發(fā)展而來,只是不用x預(yù)測y,而是用x預(yù)測 x(自己);所以叫做自回歸。
AR(p)模型簡記形式如下:
其中p為自回歸階數(shù)。Φ0=0稱為中心化AR(p)模型。p階自回歸模型的自相關(guān)系數(shù)拖尾,偏自相關(guān)系數(shù)p階截尾。
2)MA(q)模型
MA模型(moving average model)移動平均模型,簡記形式如下:
其中q為移動平均的階數(shù)。q階移動平均模型自相關(guān)系數(shù)q階截尾,偏自相關(guān)系數(shù)拖尾。
3)ARMA(p,q)模型
自回歸滑動平均模型(Autoregressive moving average model,簡稱:ARMA模型)。是研究時間序列的重要方法,由自回歸模型(簡稱AR模型)與移動平均模型(簡稱MA模型)為基礎(chǔ)“混合”構(gòu)成。它比AR模型法與MA模型法估計更精確,但其參數(shù)估算比較繁瑣。ARMA(p,q)模型簡記形式如下:
當(dāng)q=0時,ARMA(p,q)模型就退化成了AR(p)模型;
當(dāng)p=0時,ARMA(p,q)模型就退化成了MA(q)模型;
ARMA(p,q)模型具有自相關(guān)系數(shù)不截尾,偏自相關(guān)系數(shù)也不截尾的性質(zhì)。
3. 模型的選擇與定階
了解了時間序列的三種常見模型后,應(yīng)該如何選擇模型并確定模型的階數(shù)呢?通常使用ACF與PACF圖判定法。
說到時間序列分析,一定離不開自相關(guān)函數(shù)(auto-correlation function,ACF)和偏自相關(guān)函數(shù)(Partial auto-correlation function,PACF),ACF可以提供具有滯后值的任何序列的自相關(guān)值。
簡單來說,它描述了該序列的當(dāng)前值與其過去的值之間的相關(guān)程度。時間序列可以包含趨勢,季節(jié)性,周期性和殘差等成分。ACF在尋找相關(guān)性時會考慮所有這些成分。直觀上來說,ACF 描述了一個觀測值和另一個觀測值之間的自相關(guān),包括直接和間接的相關(guān)性信息。
PACF可以提供殘差(在去除了之前的滯后已經(jīng)解釋的影響之后仍然存在)與下一個滯后值的相關(guān)性。因此,如果殘差中有任何可以由下一個滯后建模的隱藏信息,我們可能會獲得良好的相關(guān)性,并且在建模時我們會將下一個滯后作為特征。
討論完兩個重要函數(shù)后,就成功了一半,接下來就是選擇模型和確定階數(shù)了,由此引入兩個詞:截尾和拖尾。截尾是指時間序列的自相關(guān)函數(shù)(ACF)或偏自相關(guān)函數(shù)(PACF)在大于某個常數(shù)k后快速趨于0為k階截尾;拖尾是ACF或PACF始終有非零取值,不會在k大于某個常數(shù)后就恒等于零(或在0附近隨機波動)。趨于0在實際分析過程中通常被處理為在2倍標準差之內(nèi)。
以上面兩張圖為例,ACF拖尾,PACF一階截尾,因此可以選擇AR(1)模型進行擬合,說到模型擬合,各位統(tǒng)計學(xué)前輩早已為我們總結(jié)好以下規(guī)律:
4. 模型的確定與檢驗
通過以上內(nèi)容,大家對時間序列的三種模型有了初步了解。那么應(yīng)該如何確定最優(yōu)模型呢?通常有以下幾點:
- 同一種模型,在盡可能描述數(shù)據(jù)信息的前提下選擇低階模型,階數(shù)越高,模型會越復(fù)雜。
- 高階AR(p)、MA(q)模型與較低階ARMA(p,q)模型之間選擇較低階ARMA(p,q)模型。
- 合適模型的殘差應(yīng)滿足均值為零的正態(tài)分布,而且任何滯后階數(shù)的殘差相關(guān)系數(shù)都為零。
接下來分享的是殘差檢驗的方法:
方法一:通過繪制正態(tài)分布的QQ來檢驗:圖像近似為過原點的一條直線,則殘差服從正態(tài)分布且均值為零。該步驟可通過R語言的“qqnormt”函數(shù)實現(xiàn)。如下圖:
方法二:通過R語言的“Box.test”函數(shù)實現(xiàn)該檢驗,若P>0.05,接受原假設(shè),即任何滯后階數(shù)的殘差都不相關(guān),殘差檢驗通過。
三、示例分享
回到開頭的例子,當(dāng)小毛同學(xué)拿到數(shù)據(jù)后首先應(yīng)該繪制銷售額隨時間變化的曲線,觀察數(shù)據(jù)的整體趨勢,如果有季節(jié)性趨勢,應(yīng)該利用差分或者移動平均的方法消除季節(jié)因素,接下來在消除增長趨勢,然后利用單位根檢驗來檢驗數(shù)據(jù)的平穩(wěn)性,最后利用數(shù)據(jù)的ACF和PACF函數(shù)確定階數(shù)和模型。
其實在這一步有一種偷懶的辦法就是利用R語言中的auto.arima”函數(shù)可自動篩選出p,q,但還是希望大家能夠了解背后的邏輯。模型確定好之后可以利用R語言中的forecast函數(shù)預(yù)測未來N期的銷量,至此小毛的預(yù)測工作終于可以告一段落了。
本次分享到此結(jié)束,歡迎大家批評指正~
專欄作家
一個數(shù)據(jù)人的自留地,公眾號:一個數(shù)據(jù)人的自留地。人人都是產(chǎn)品經(jīng)理專欄作家,《數(shù)據(jù)產(chǎn)品經(jīng)理修煉手冊》作者。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議。
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
- 目前還沒評論,等你發(fā)揮!