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