matlab模型檢驗 - CSDN

2021-02-08 CSDN技術社區

  ___  ____  ____  ____  ____ (R)
 /__    /   ____/   /   ____/
___/   /   /___/   /   /___/   13.1
  Statistics/Data Analysis           

此次系列文章的主題是通過Stata軟體來分析時間序列的平穩和非平穩關係,以及如何通過Stata軟體來進行不同時間序列模型的預測性分析。

Stata軟體介紹:(https://www.stata.com/)

Stata is the solution for your data science needs. Obtain and manipulate data. Explore. Visualize. Model. Make inferences. Collect your results into reproducible reports.

一、背景介紹

時間序列模型是將一個或一組變量按照時間次序排列,用於解釋變量和相互關係的數學表達式,所得到的離散數字組成的序列集合。時間序列模型,可分為平穩時間序列和非平穩時間序列。平穩時間序列可以用來擬合回歸方程進行未來的預測,而非平穩的時間序列不能直接做回歸,會產生沒有實際意義的偽回歸。(不平穩的時間序列數據可能會帶來t檢驗失敗、自回歸係數估計值有偏向的等問題)

首先,判斷一個時間序列是不是平穩,主要有三個評價指標:

1. 均值是與t無關的函數

2. 方差是與t無關的函數 (即方差齊性)

3. 協方差是與t無關的函數。(協方差用于衡量兩個變量的總體誤差。當兩個變量是相同的情況時,協方差體現為方差。)

(圖片來源:https://blog.csdn.net/qq_40006058/article/details/80191168)

對於單獨的非平穩時間序列,需要通過分來將非平穩時間序列變為平穩時間序列。如果對於兩個非平穩時間序列,它們的某些線性組合是平穩的,那麼這兩個非平穩時間序列則存在協整關係,我們便可以基於協整關係去探索序列之間的長期均衡關係了。

二、統計學模型

驗證時間序列的模型有:

AR - Auto Regression, 自回歸模型。自回歸模型AR(p),p-自回歸階數;AR可以解決當前數據與後期數據之間的關係;

MA - Moving Average,移動平均模型。移動平均模型MA(q),q-移動平均階數;MA則可以解決隨機變動也就是噪聲的問題;

ARMA - Auto Regression and Moving Average,自回歸移動平均模型。自回歸移動平均模型是與自回歸和移動平均模型兩部分組成;(以上三類模型可以直接應用於平穩時間序列模型)

ARIMA - Auto Regression Integreate Moving Average,差分自回歸移動平均模型。同前面的三種模型,ARIMA模型也是基於平穩的時間序列的或者差分化後是穩定的,另外前面的幾種模型都可以看作ARIMA的某種特殊形式。表示為ARIMA(p, d, q)。p為自回歸階數,q為移動平均階數,d為時間成為平穩時所做的差分次數。(前面三種模型,d=0,即平穩時間序列模型不需要做差分)

ARCH - Auto Regressive Conditional Heteroskedasticity, 自回歸條件異方差模型,用來解決傳統計量經濟學對時間序列變量的第二個假設(變異數恆定)所引起的問題;

GARCH - Generalized Auto Regressive Conditional Heteroskedasticity, 廣義自回歸條件異方差模型,GARCH模型是一個專門針對金融數據所量體定做的回歸模型。和普通回歸模型相比,GARCH對誤差的方差進行了進一步的建模,特別適用于波動性的分析和預測,這樣的分析對投資者的決策能起到非常重要的指導作用;

VAR - Vector Auto Regression, 向量自回歸模型, 描述在同一個樣本期間內的n個變量(內生變量)可以作為他們過去值的線性函數;VAR模型的方法是通過將變量作為一個系統來預測,被稱為「多變量時間序列」,即向量自回歸;

受限因變量模型:通俗的講,是由於某種原因無法觀察到被解釋變量的全部值。在實際中,還會經常遇到因變量受到某種限制的情況,這種情況下,取得樣本數據來自總體的一個子集,可能不能完全反映總體。例如,小時工資、住房價格和名義利率都必須大於零。這時需要建立的經濟計量模型稱為受限因變量模型(limited dependent variable model )。

斷尾回歸模型

截取回歸模型

樣本選擇模型

三、Stata實證分析

ARIMA模型實踐

ARIMA模型分析時間序列的基本步驟為:將原始數據的時間序列可視化,觀察平穩與非平穩分布 - 通過單位根檢驗,判斷時間序列是否為平穩 - 通過ADF找到最優參數,建立ARIMA模型 - 進行預測

打開Stata/MP 13.1軟體,初始界面如下:

打開實例數據wp1,stata默認的數據文件後綴為.dta

打開data-editor,查看導入的數據。wpi - wholesales price index - 批發價格指數,Lnwpi - wpi的對數。

要檢測時間數據,需要首先定義數據為時間序列,在command中輸入命令:tsset t

將原始數據的時間序列進行可視化處理,作圖觀察時間序列的趨勢:

line wpi t

直觀看此時間序列為非平穩時間序列分布;但是需要通過驗證才可以得出相應結論。

通過觀察自相關圖與偏相關圖,最主要的目的還是確定序列的ARMA(p,q)模型的具體形式。

一般拿到數據後,先看你數據是否存在協整關係,存在就用平穩數據,不存在只能嘗試差分後處理。差分的目的是消除序列的不平穩性,使其波動曲線更平穩。通過一階插分和二階插分的時序,來進行ADF單位根檢驗,進而判斷後面的序列是否平穩。

對原始數據進行單位根檢驗:dfuller ln_wpi

Z test都大於檢驗各檢驗臨界值,且p-value>0.05

所以原序列是非平穩時間序列;

對一階差分後的數據進行單位根檢驗:dfuller d.ln_wpi

Z-test都小於各檢驗臨界值,且p-value<0.05

所以一階差分後,序列變為平穩時間序列;

對時序進行二階差分的單位根檢驗:dfuller d2.ln_wpi

結果顯示,二階差分的時序為平穩時間序列。

(* 滯後幾階與幾階差分的含義不同:滯後二階是指取前兩期的值;二階差分就是,後一期一階差分減去前一期一階差分。)

一階差分就是離散函數中連續相鄰兩項之差。繪製一階差分圖:

line d.wpi t,yline(0)

(yline(0)表示在y=0處做一條直線)

繪製二階插分圖:line d2.wpi t,yline(0)

可以看出二階差分的時序圖,直觀上已經接近於一個平穩時間序列了。

AC圖確定的是p,PAC圖確定的是q。判斷ARIMA模型的傳統方法是通過ACF(自相關圖)和PACF(偏自相關圖), 看ACF和PACF快速衰減的位置,看不同階數對應快速衰減到標準差之內的位置。觀察ACF和PACF的模式,主要看圖形分布上是否有如下兩個特徵:

截尾:到了某個位置,係數突然變化,像被「截斷」了一樣;

拖尾:就是係數整體是一個單調漸變的趨勢,但都不為0;

若ACF拖尾,PACF截尾,用AR算法;

若ACF截尾,PACF拖尾,用MA算法;

若ACF,PACF都是拖尾,用ARMA算法;不平穩用ARIMA算法;

如果,ACF和PACF的模式不明顯,則需要嘗試不同的參數值,然後通過赤池信息準則來判斷。

繪製一階差分的自相關圖:ac d.wpi

(AC - Autocorrelation)

繪製一階差分的偏自相關:pac d.wpi

(PAC - Partial Autocorrelation)

根據圖示,ACF的特徵類似於拖尾,PACF則沒有明顯的特徵模式。當ACF,PACF沒有明顯特徵時,需要通過赤池信息來判斷。

赤池信息準則:通過AIC作為衡量統計模型擬合優良性的一種標準。它建立在熵的概念基礎上,可以權衡所估計模型的複雜度和此模型擬合數據的優良性。根據不同參數組合的AIC值來判斷模型的好壞,AIC越小越好。

(AIC實際上是對樣本內誤差(in sample error)的估計量,即在訓練樣本的基礎上,保持自變量不變,觀察到一組新的y', 然後計算模型在這個新樣本中得到誤差的期望值。)

通過單位根檢驗判斷此時間序列是否為平穩時間序列:dfuller ln_wpi,lag(3) trend regress (此處假設滯後3期,lag(3)。正常做法是要進行多次滯後項的驗證,然後去評判擬合回歸的顯著性效果。)

ADF(Augmented Dickey-Fuller) 單位根檢驗 (unit root test) 的原假設為:H0:p=1, 備擇假設為:H1:p<1. (p=1表明存在單位根,原時間序列為非平穩時間序列)

ADF檢驗的邏輯:如果序列平穩,則不會存在單位根;如果序列不平穩,則可以通過差分變換,檢驗差分後的序列是否平穩。

ADF原假設H0為存在單位根(非平穩),對於一個平穩的時間序列數據,就要在給定的置信水平上顯著,拒絕原假設。

拒絕原假設的判別條件:1>統計量顯著小於3個置信度(1%,5%,10%)的臨界統計值時;2>Z統計量的P-value接近0。

\]

通過單位根檢驗結果可以看到在1%,5%,10%顯著性水平下的臨界值分別為1%-critical value=-4.033, 5%-critical value=-3.447, 10%-critical value=-3.147,Z檢驗統計量值為-2.25。而ADF是左側單邊檢驗,只要Z檢驗統計量值大於各臨界值,則不能拒絕原假設H0(即p=1),原序列為非平穩時間序列。且p-value=0.4617,不能顯著拒絕原假設。

回歸係數的解讀:

L1 - 表示回歸係數;

LD,L2D和L3D - 分別代表了滯後1-3階滯後項對應的係數;LD滯後項p值為0,L2D滯後項p值為0.036,兩項在5%顯著性水平上都非常顯著;L3D滯後項的p值為0.145,在5%顯著性水平上顯著性一般;

_trend - 時間趨勢項;p值為0.024,時間趨勢在5%水平上很顯著;

_cons - 常數項;

在Stata中,ARIMA模型被看做帶有ARIMA擾動項的結構模型,ARIMA模型公式中本質上使用的是MLE(最大似然估計),對於序列ln_wpi,通過判斷為非平穩時間序列,所以ARIMA(p,d,q)模型中,d=1。ARIMA(p,1,q)中的 自回歸階數p 和 移動平均階數q 通過信息準則來確定,假定模型為ARIMA(1,1,1),在Stata中輸入如下命令:

arima ln_wpi,airma(1,1,1)

estat ic

再分別求出ARIMA(2,1,1),ARIMA(1,1,2),ARIMA(2,1,2)的結果:

ARIMA(2,1,1)

ARIMA(1,1,2)

ARIMA(2,1,2)

可以看出ARIMA(1,1,1)中的AIC和BIC最小,p=1,q=1,d=1為ARIMA模型最優參數。擬合模型後,需要對殘差序列檢驗是否為白噪聲,輸入:

predict r,residual

數據集中生成了新的殘差序列r:

一個標準的檢驗流程中,需要比較不同預測方法得到的預測結果的殘差。正常情況下,殘差應該為平穩序列。

我們對得到的殘差列進行單位根檢驗:

dfuller r

根據z-test和p-value,殘差為平穩時間序列;

繪製殘差圖如下,也可以直觀的看出是一個平穩的時間序列。

line r t,yline(0)

係數顯著性檢驗通過後,要進行模型的有效性檢驗,也就是檢驗殘差性是否為白噪聲:

用Q統計量進行白噪聲(white noise)檢驗:

wntestq r

wntestb r

通過白噪聲檢驗的結果,可知模型的有效性擬合效果較好。

下面開始模型的預測:

生成未差分的wpi時間序列y:preidct y,y

生成差分後的wpi序列xb:predict xb,xb

比對ARIMA模型生成的預測值和原始值的擬合線對比:

line ln_wpi y t, yline(0)

(紅色為預測值擬合線,黑色為原始值擬合線)

樣本外預測,首先添加預測值的空白填充位置:

tsappend,add(4)

對差分後序列的預測:predict y_hat

對原序列wpi的預測:predict yy_hat,y

(在STATA中,ARIMA模型只能預測未來1期的數值。)

將預測值與原始值的擬合曲線進行比較:line ln_wpi yy_hat t, yline(0)

可以看出紅色擬合線對應的多出一期的預測值已經體現。

下一篇將總結時間序列模型之ARCH和GARCH模型,在STATA中的使用方法和規範。

「筆人自認才疏學淺,僅略知皮毛,更兼時間和精力所限,文中錯謬之處在所難免,若蒙讀者諸君不吝告知,將不勝感激。」

相關焦點

  • f檢驗 matlab專題及常見問題 - CSDN
    Mann-Kendall顯著性檢驗工具:1、MATLAB2、DPS3、示例數據(數據採用的是魏鳳英老師《現代氣候統計診斷預測技術》中的1900-1990年上海市的年平均氣溫數據)Mann-Kendall原理可詳細參考https://wenku.baidu.com/view/6fd3fe5b6edb6f1afe001f2f.html
  • Matlab評價型模型的求解方法
    <零>前言  構成評價型模型的五個要素分別為評價對象、評價指標、權重係數、綜合評價模型和評價者
  • MATLAB數學建模教學(一) | 如何使用YALMIP檢驗數學模型的正確性?
    馬上到9月份了,很多小夥伴要參加數學建模競賽,為了能讓各位小夥伴在比賽的第一個步驟不出錯,即在模型建立這個步驟不出錯,因此,今天準備講一講如何檢驗自己構建的數學模型是否合理。3)用YALMIP檢驗一個VRPTW數學模型的合理性。
  • 時間序列模型matlab代碼 - CSDN
    它有助於識別ARIMA模型中的自回歸(AR)係數(p值)的數量。上述介紹的是怎麼手動根據數據確定ARIMA模型中各參數,這邊還有個懶人方法 (實踐中更多也是使用該懶人方法 - auto.arima() ) auto.arima()功能:預測程序包提供兩個功能:ets()和auto.arima()用於自動選擇指數模型和ARIMA模型。
  • 似然比檢驗 - CSDN
    似然比檢驗(likelihood ratio test, LRT)是一種檢驗參數能否反映真實約束的方法(分布或模型的某參數
  • Solidworks三維模型如何導入Matlab教程
    本文主要講述如何將在Solidworks中繪製的三維模型導入Matlab中,其具體操作步驟如下:首先,你電腦裡必須安裝有Solidworks和Matlab兩款軟體,其中Solidworks最好是2016版以上,Matlab最好是2018版以上
  • 參數檢驗 - CSDN
    2 KS檢驗分類?3 KS檢驗的Python實現3.1 檢驗指定的數列是否服從正態分布3.2 檢驗指定的兩個數列是否服從相同分布4 其餘的非參數檢驗4.1 Wilcoxon符號秩檢驗(t檢驗的非參數版本)4.2 Kruskal-Wallis H檢驗(方差分析的非參數版本)4.3 Mann-Whitney秩檢驗5 參考1 什麼是KS
  • [STATA] 時間序列模型 - ARIMA檢驗
    (圖片來源:https://blog.csdn.net/qq_40006058/article/details/80191168)對於單獨的非平穩時間序列斷尾回歸模型截取回歸模型樣本選擇模型三、Stata實證分析ARIMA模型實踐ARIMA模型分析時間序列的基本步驟為:將原始數據的時間序列可視化,觀察平穩與非平穩分布 - 通過單位根檢驗,判斷時間序列是否為平穩 - 通過ADF找到最優參數,建立ARIMA模型 - 進行預測打開Stata/MP
  • 使用Matlab解決多元線性回歸問題
    上期我們分享了使用matlab進行數組最值的搜尋,有同學留言想了解matlab多元線性回歸,安排!
  • stata單位根檢驗 - CSDN
    如上圖所示,兩個序列看起來非常相像。藍線在一個確定的趨勢線上下浮動。其中,服從獨立同分布的N(0,)分布。為了解決此問題,ADF 檢驗通過將模型 (3) 變形為模型 (4) 的差分形式並檢驗是否 =0。
  • eviews 線性回歸模型 - CSDN
    多元線性回歸模型,並識別和修正多重共線性。普通最小二乘法、簡單相關係數檢驗法、綜合判斷法、逐步回歸法。最小二乘估計的原理、t檢驗、F檢驗、擬合優度R方值。但很明顯,在5%的顯著性水平下,模型中的各參數均不通過檢驗,在10%的顯著性水平下,也只有X2的係數通過檢驗。故認為解析變量之間存在多重共線性。
  • eviews線性回歸模型 - CSDN
    多元線性回歸模型,並識別和修正多重共線性。普通最小二乘法、簡單相關係數檢驗法、綜合判斷法、逐步回歸法。最小二乘估計的原理、t檢驗、F檢驗、擬合優度R方值。但很明顯,在5%的顯著性水平下,模型中的各參數均不通過檢驗,在10%的顯著性水平下,也只有X2的係數通過檢驗。故認為解析變量之間存在多重共線性。
  • 【Matlab】Sound
    sound在matlab裡更多的並不是用於製作音樂,而是提醒和分析聲音背後的數學,物理規律為什麼說是提醒呢,因為有些比較複雜的程序,往往需要matlab運算很久才會有結果,這時候人一般是不會盯著屏幕等著出結果,而是走開先去幹其他事。這時候就需要matlab在運算完後發出提示,最好是聲音。所以sound在matlab裡更多是用於提醒程序已運行完,結果已得出(一般用beep函數)。
  • GRNN神經網絡(Matlab)
    由於數據較多,本文不列舉,首先先在matlab導入數據矩陣,前三列是各項指標數據,最後一列是花的類別。mat數據文件保存:將數據讀入matlab後鍵入>>save+空格+名稱         比如:>>
  • 背景模型建立matlab專題及常見問題 - CSDN
    由於說明算法的戰線過長,用三篇文章介紹,內容分別為:(一)測試優化背景知識與推理模型建立(二)AO*算法的最優策略生成原理(三)算法的總體過程及MATLAB實現本文介紹測試優化的研究背景及前期模型建立。
  • 教程 | Matlab畫圖插入Latex公式
    我們使用matlab對數據或模型進行計算處理之後,時常會需要輸出結果呈現Latex的格式,或者能方便轉換成latex格式方便後續編輯。Matlab中使用Latex大體可分為兩種情境:1.使用Latex公式標註Matlab生成的各類圖形;2.把Matlab的運行結果轉換成Latex格式。
  • 基於Matlab/Simulink的風力機特性仿真
    由於(1)中的式子比較複雜,才用直接計算法很難求得Cp的最大值,本文在matlab中使用遺傳算法可以很輕鬆求得Cpmax和λ。模型  根據式1在simulink中搭建模型,把λ作為輸入量,Cp作為輸出量,建立的Cp(λ,β)模型如圖4所示。
  • 一致性檢驗的檢驗值 - CSDN
    緣起      有人發SCI論文,事後檢驗用到LSD法兩兩比較時,經常會被編輯問道,請報告LSD-t檢驗的t值,然而,很多軟體是不報告的,比如SPSS,拿走麼辦呢,其實很簡單,跟著松哥來吧!2.操作菜單-分析-一般線性模型:(1)單變量,如圖設置(2)事後比較,選擇LSD。
  • arma python 檢驗專題及常見問題 - CSDN
    假如某個觀察值序列通過序列預處理可以判定為平穩非白噪聲序列,就可以利用ARMA模型對該序列進行建模。建模的基本步驟如下:(1)求出該觀察值序列的樣本自相關係數(ACF)和樣本偏自相關係數(PACF)的值。(2)根據樣本自相關係數和偏自相關係數的性質,選擇適當的ARMA(p,q)模型進行擬合。(3)估計模型中位置參數的值。
  • 機器學習模型檢驗專題及常見問題 - CSDN
    交叉驗證來獲得模型的準確性,算法 1)查準率和召回率 查準率反應的是對不對,找到的對不對的比率 召回率反應的是全不全,找到的全不全的比率 正確性和完整性分別對應查準率和召回率 ,,,,,,,,,,,,,,,被正確識別為某類別的樣本數 查準率