迅速上手的時間序列分析教程

2021-02-15 計量經濟學

目錄

第一部分  經典論文分析

第二部分  ARIMA模型以及stata操作實例

(1)ARMA模型分析原理

(2)ADL模型分析原理

(3)stata實例操作

第三部分  VAR模型以及stata操作實例



時間序列是指以固定時間為間隔的、由所觀察的值組成的序列。根據觀測值的不同頻率,可將時間序列分成小時、天、星期、月份、季度和年等時間形式的序列。有時候,你也可以將秒鐘和分鐘作為時間序列的間隔,如每分鐘的點擊次數和訪客數等等。

 

為什麼我們要對時間序列進行分析呢?因為當你想對一個序列進行預測時,首先要完成分析這個步驟。除此之外,時間序列的預測也具有極大商業價值,如企業的供求量、網站的訪客量以及股票價格等,都是極其重要的時間序列數據。

早期的單變量時間序列模型有較少的參數卻可以得到非常精確的預測,因此隨著Box and Jenkins(1984)等奠基性的研究,時間序列方法得到迅速發展。從單變量時間序列到多元時間序列模型,從平穩過程到非平穩過程,時間序列分析方法被廣泛應用於經濟、氣象和過程控制等領域。本章將介紹如下時間序列分析方法,ARIMA模型、ARCH族模型、VAR模型、VEC模型、單位根檢驗及協整檢驗等。


第一部分  經典論文分析


在全球人口增長和氣候變化的背景下,監測農作物是維持農業的必要條件保護自然資源。許多研究已經證明了光學和合成孔徑雷達的能力遙感數據估計作物參數,這些數據沒有經過比較或組合預測作物物候期。儘管SAR極化數據對作物物候期高度敏感,但沒有研究使用了高時間解析度的數據。免費提供的SAR時間序列為每周以高空間解析度監測作物物候提供了一個獨特的機會基礎。

第二部分  ARIMA模型以及stata操作實例


(1)ARMA模型分析原理

對於AR(p)模型,其ACF函數拖尾,而PACF函數截尾。如果出現這種情形,則可判斷其為AR(p),不包含移動平均的部分。另一方面,對於MA(q)模型,其ACF函數截尾,而PACF函數拖尾。如果出現這種情形,則可判斷其為MA(q),不包含自回歸的部分。如果以上兩種情形均不符合,即ACF函數與PACF函數都拖尾①,則要考慮一般的ARMA(p,q)模型,其中p,q均不為零時間序列分析的鼻祖,Box, Jenkins andReinsel(1994)認為,對大多數情況,p≤2與q≤2就足夠了。當然,為了保險起見,可以讓Pmax與qm更大些。具體如何確定p,q,可以依據信息準則或由大到小的序貫t規則。在估計完模型之後,仍然需要進行一些診斷性分析( diagnosticchecking),以確定ARMA(p,q)模型的假定是否成立。其中,最重要的假定是,擾動項{ }為白噪聲。如果模型過小(inadequate),即p<p或q<q,則相當於遺漏解釋變量。這些被遺漏的解釋變量被納入擾動項中,導致擾動項出現自相關,不再是白噪聲。為此,可以使用Q檢驗來檢驗模型的殘差是否存在自相關。如果殘差存在自相關,則應考慮使模型更大些(增加自回歸或移動平均的階數),重新對模型進行估計,然後再檢驗新模型的殘差是否為白噪聲,如此反覆,直至確認殘差為白噪聲。

(2)ADL模型分析原理

如果自回歸分布滯後模型滿足以下假定,則萬事大吉,可以用OLS來估計它。E(y1-1yt-2, ,x1,t-1,1,-2,,x1-1,xk,t-2,…)=0。這個假定類似於嚴格外生性假設,它意味著擾動項ε,與所有解釋變量的整個歷史全部無關。這保證了對滯後期數(p,91,…,9K)的設定是正確的。如果滯後期數的設定不正確,比如,真實模型還應該包括:

(i) y-(p+1),但該項p+1y-(p+1)卻被納入擾動項ε,中,則擾動項ε,便與解釋變量相關,導致OLS不一致。

(ii)   {y1,x1,…,x}為漸近獨立的平穩序列。

(iii)  {y,,x1,…,x}有非零的有限四階矩。

(iv)  解釋變量無完全多重共線性。

對滯後期數的選擇可以使用信息準則(最小化AIC或BIC),或使用t,F檢驗來檢驗最後一期係數的顯著性。更一般地,可以在ARMA模型中引入其他變量,稱為「ARMAX」模型。

(3)stata實例操作

**自相關與偏自相關**計算第1至第corrgram,lags(**將ACF畫成自相關圖,並給出置信區間ac y , lags(**將PACF畫成偏自相關圖,並給出置信區間pac y ,lags(**ARMA模型arima y , ar(1/**選擇項「ar(1/**ARMA的另一等價命令格式為arima y,  arima (** **計算殘差,並將其命名為e1predict el,res**檢驗殘差是否存在第1至第corrgram el,lags(**ADL與 ARMAX**ARMAX的 Stata命令為arima y x1 x2 x3,ar(

下面以數據集 pe dta為例。該數據集的主要變量 logpe為18712002年美國標準普爾股指(S&P)的市盈率(price earning ratio)對數。由於 logpe為非平穩序列,故對其差分建立ARMA模型。首先,定義其一階差分為「d_logpe」:

use pe.dta,cleartwoway (line logpe year)twoway (line logpe year) (qfitci logpe year)

**繪製logpe一階差分折線圖twoway (line logpe year) (line d_logpe year)


**計算第1至第10階ACF與PACFcorrgram d_logpe,lags(10)   

第四階的Q統計量較為顯著,P為0.0556,進一步可以觀察自相關和偏相關圖

**將ACF畫成自相關圖,並給出置信區間ac d_logpe ,lags(10)**將PACF畫成偏自相關圖,並給出置信區間pac d_logpe,lags(10)  

從上面兩個圖可以看出,第4階自相關與偏相關係數均在5%水平顯著的部位0,因而可以認為4階以上的自相關與偏相關係數為0,由於自相關與偏相關係數均截尾,分別考慮AR(4)和MA(4)。

**估計AR(4)arima d_logpe,ar (1/4) nolog**計算信息準則estat ic**檢驗殘差是否存在自相關predict e1 ,rescorrgram e1 ,lags(10)**估計MA(4)arima d_logpe,ma (1/4) nolog**計算信息準則estat ic**檢驗殘差是否存在自相關predict e2 ,rescorrgram e2,lags(10)

第三部分  VAR模型以及stata操作實例

use varexample.dta,cleartsline inflation fedfunds unrate,xline(169)summarize  inflation fedfunds unrate **根據信息準則確定VAR模型的階數varsoc  inflation fedfunds unrate   ,maxlag(13)

var  inflation fedfunds unrate ,lags(1/5)**檢驗各階係數的聯合顯著性varwle**檢驗殘差是否自相關varlmar**檢驗VAR系統是否穩定varstable,graph

**VAR模型預測fcast compute f_,step(40)fcast graph  f_inflation f_fedfunds f_unrate ,observed 1pattern("_")

**變量之間的格蘭傑因果關係vargranger**進一步考察交叉相關圖xcorr inflation  unrate if date <= tq (2002q1),name(iu)xcorr inflation fedfunds  if date <= tq (2002q1),name(if)xcorr unrate fedfunds if date <= tq (2002q1),name(uf)graph combine iu if uf 

**交叉相關係數列表xcorr inflation  unrate if date <= tq (2002q1),table**脈衝響應函數irf creat  iuf ,set (macrovar) step (20)**繪製正交脈衝響應圖irf graph oirf ,yline(0)**變量的預測誤差方差irf table fevd ,r(inflation) noci**變量的預測誤差方差分解圖irf graph fevd ,r(inflation)**所有預測方差分解圖irf graph fevd**根據方差分解結果圖推薦的變量順序,建立新的脈衝響應結果irf create ifu ,order (inflation fedfunds unrate) step(20)**比較以上兩種變量順序,inflation對fedfunds的脈衝響應irf graph oirf,i(fedfunds) r(inflation) yline(0) noci**比較兩種變量排序,unrate對fedfunds的脈衝響應比重irf graph fevd,i(fedfunds) r(inflation)noci

經典論文題目:

Evaluation of Sentinel-1 & 2 timeseries for predicting wheat and rapeseed phenological stages

經典論文連結:

https://www.sciencedirect.com/science/article/pii/S0924271620300794

相關焦點

  • 「發個筆記」時間序列分析方法(實驗向):上手時序分析-SPSS
    時間序列的定義時間序列分析為什麼要離散化?時間序列分析的意義什麼事件是可以被預測的?時間序列分析則是對我們得到的時間序列進行觀察、研究,找尋它變化發展的規律,預測它將來走勢的分析。可以發現時間序列的分析運用在生產生活的各個領域,畢竟,誰不和時間相關呢?
  • 時間序列分析簡介
    Q1:時間序列數據和時間序列分析        時間序列數據是在特定時間內監測或記錄下的有序數據集合.太陽活動、潮汐、股票市場趨勢、疾病傳播等都是時間序列的典型案例。是指將同一統計指標的數值按其發生的時間先後順序排列而成的數列。     時間序列分析的前提是認為這些收集到的數據點在一段時間內的變化可能具有特定的內部結構,比如趨勢季節變化等等。
  • 時間序列分析(三):平穩時間序列分析之數據準備
    平穩時間序列是時間序列中一類重要的時間序列,對於該時間序列,有一套非常成熟的平穩序列建模方法,這也是本節中將重點介紹的部分。對於非平穩序列,可以通過差分、提取確定性成分等方法,將轉化成平穩序列,再運用平穩序列建模方法進行建模。在實際操作中,由於樣本數據的匱乏,要根據樣本數據要找到生成樣本的真實隨機過程基本是不太可能的。
  • 教程 | 基於Keras的LSTM多變量時間序列預測
    長短期記憶循環神經網絡等幾乎可以完美地模擬多個輸入變量的問題,這為時間序列預測帶來極大益處。
  • R語言時間序列分析
    鄭連虎,在數學學院取得理學學位的文科生,中國人民大學碩博連讀生在讀,山東大學管理學學士、理學學士個人公眾號
  • 課程解析|時間序列分析與預測
    時間序列分析是研究和分析時間序列數據,即在時間上有先後順序的一組或多組數據的方法總稱。大量的經濟學、金融學、營銷學以及管理科學中所常見的數據均為時間序列數據。時間序列分析旨在建立時間序列模型以刻畫數據的內在動態規律,從而對數據的生成機制進行探索和研究,掌握各種數據生成機制所產生數據的特徵。另一方面,基於數據特徵,尋找恰當有效的時間序列模型加以刻畫,通過時間序列分析,可基於過去的觀測對將來做出理性的預測、研究多個序列之間的關係等等。
  • R時間序列分析(6)時間序列分解(下)
    季節變化的概念在本質上是有些模稜兩可的:時間變化是否應被視為季節性、趨勢性或殘差,在某種程度上是一個「觀念」問題,要由模型和模型參數的選擇決定。這就為時間序列分解問題帶來了複雜性。1、X11X11方法針對季度和月度時間序列數據進行季節性調整。X11方法由美國人口普查局開發,最早可以追溯到1950年代。
  • 時間序列預測教程;OpenAI 談對抗樣本:自然語言處理入門 | AI 開發...
    Jason Brownlee 的時間序列預測教程這是澳大利亞機器學習專家 Jason Brownlee 撰寫的教程,提供了一套用 Python 語言處理時間序列預測問題的模板。該教程一步步向讀者展示了應該用什麼工具、如何操作,以及為什麼這樣操作。
  • 如何使用XGBoost模型進行時間序列預測
    XGBoost也可以被用於時間序列預測,儘管它需要將時間序列數據集先轉換成監督學習問題。它需要用到一種被稱為前進式驗證的特殊方法來評估模型,因為使用k折驗證來評估模型容易導致偏向樂觀的結果。本教程中,你將探索如何為時間序列預測開發一個XGBoost模型。
  • 推薦狀態空間時間序列分析的兩本書
    統計學上,一個時間序列即是一個隨機過程的實現。時間序列按其統計特性可以分為平穩時間序列和非平穩時間序列兩類。在實際生活中遇到的序列,大多數是不平穩的。如果一個序列的平均值和方差始終為常數,則它是平穩的。在估計時間序列模型之前需把不平穩的時間序列轉化為平穩序列。
  • 時間序列模型matlab代碼 - CSDN
    你是否想要做時間序列分析,但卻不知道代碼怎麼寫?你是否不清楚時間序列分析各種模型該在什麼情況下使用?本文將針對以上兩個問題,帶你入門時間序列分析~等等!Women>等華納出品的電影每分鐘的觀看量,預估艾倫秀不同播出計劃的未來收視率和收入等等等等~~~剛入職的第一個月每天愁眉不展,時間序列的方法很多,很多時候,即使理論基礎學懂了,但是到實踐上,R裡的code要怎麼寫又是個大問題,網上的很多教程,教授了公式,卻不教授具體的代碼怎麼寫。
  • 【時間序列】時間序列基本概念總結
    最近一直在接觸時間序列,所以打算寫一些有關時間序列的文章,預測部分會從規則開始、到傳統模型、到機器學習、再到深度學習,此外也會介紹一些時間序列的基本概念,包括自相關、平穩性、滯後性、季節性等。前者稱為單變量時間序列預測,後者稱為多變量時間序列預測。通常我們指的時間序列預測都是考慮定期觀察的時間序列(如每分、每小時、每天、每周等)。比較經典的案例有:降水量預測、銷售預測、流量預測等。
  • 新手貼雙眼皮貼迅速上手的教程(有視頻)
    而且,貼眼皮貼是需要時間歲月的累積,每天慢慢這樣練習,剛開始貼就要貼爛一整排,貼到心累,貼到遲到,這樣的石頭路一路爬來,已經成為第7年的雙眼皮貼使用者的我,在嘗試各種眼皮貼的工具後,終於要跟你們分享眼皮貼的心得。此為今天的眼皮狀態,其實還不算太差,但可以看見我的眼皮幾乎是被吃掉被遮下來的,昨天剛去霧眉,周圍還有點小泛紅。
  • 時間序列分析方法預測未來Ⅰ
    時間序列是指將某種現象某一個統計指標在不同時間上的各個數值,按時間先後順序排列而形成的序列。
  • R學習用R語言做分析(12)——時間序列分析簡介
    曾經完整介紹過時間序列的概念含義等。這次我們了解下時間序列的基本性質和如何用R來挖據時間序列的相關屬性以及分析模型的數據要求。
  • 時間序列基礎
    時間序列時間序列是通過以往數據對未來預測的一種方法區別於回歸,時間序列必須以時間為索引
  • ARIMA時間序列模型-操作篇
    ARIMA序列分析的前提要求時間序列為零均值的平穩隨機序列。為此我們首先要做時間序列圖對原始的數據進行觀察。我們得到的序列圖如下,觀察圖形可知時間序列具有明顯的上升性和季節性,對數據進行一次差分與季節性差分轉換,重新獲得新的時間序列圖。再次觀察可知轉換後的時間序列圖基本是一個白噪聲序列。
  • Python數據分析實戰:用Pandas 處理時間序列
    ,在數據科學和機器學習的背景下,時間序列分析所包含的內容更加複雜。多元時間序列在表現形式上就是數據包含多列(大於兩列),第一列是時間戳,後面的列都是觀察對象。當時間序列是多元時,很多經典的機器學習模型可以施展拳腳,比如回歸模型,分類模型,這些模型都依賴於多元的特徵。對於我們本文以及後續的分析中,我們不會將時間序列特指為一元時間序列。無論是一元時間序列的分析還是多元時間序列的分析,對於時間相關的預處理格外重要。
  • 犯罪時間序列預測分析方法研究 — 以 CrimeStat 軟體為例
    作為一種基礎且應用廣泛的統計方法,時間序列分析方法在各個領域都有所應用,時間序列分析方法對 分析犯罪行為有一定的幫助。
  • 手把手教你用Python實現針對時間序列預測的特徵選擇
    要將機器學習算法應用於時間序列數據,需要特徵工程的幫助。例如,單變量的時間序列數據集由一系列觀察結果組成,它們必須被轉換成輸入和輸出特徵,才能用於監督性學習算法。但這裡有一個問題:針對每個時間序列問題,你可以處理的特徵類型和數量,卻並沒有明確的限制。