R語(yǔ)言用向量自回歸(VAR)進(jìn)行經(jīng)濟(jì)數(shù)據(jù)脈沖響應(yīng)研究分析|附代碼數(shù)據(jù)
原文鏈接:http://tecdat.cn/?p=9368
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
?
最近我們被客戶要求撰寫關(guān)于向量自回歸(VAR)的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。
?
自從Sims(1980)發(fā)表開創(chuàng)性的論文以來,向量自回歸模型已經(jīng)成為宏觀經(jīng)濟(jì)研究中的關(guān)鍵工具。這篇文章介紹了VAR分析的基本概念,并指導(dǎo)了簡(jiǎn)單模型的估算過程。?
單變量自回歸
VAR代表向量自回歸。為了理解這意味著什么,讓我們首先來看一個(gè)簡(jiǎn)單的單變量(即僅一個(gè)因變量或內(nèi)生變量)自回歸(AR)模型,其形式為yt=a1yt?1+et。?
平穩(wěn)性
在估算此類模型之前,應(yīng)始終檢查所分析的時(shí)間序列是否穩(wěn)定,即它們的均值和方差隨時(shí)間變化是恒定的,并且不顯示任何趨勢(shì)行為。?
有一系列統(tǒng)計(jì)檢驗(yàn),例如Dickey-Fuller,KPSS或Phillips-Perron檢驗(yàn),以檢驗(yàn)序列是否穩(wěn)定。另一種非常常見的做法是繪制序列并檢查其是否圍繞恒定的平均值(即水平線)移動(dòng)。如果是這種情況,它很可能是穩(wěn)定的。?
自回歸滯后模型
像AR(p)模型一樣,僅憑其自身的滯后對(duì)宏觀經(jīng)濟(jì)變量進(jìn)行回歸可能是一種限制性很大的方法。通常,更合適的假設(shè)是還有其他因素。通過包含因變量的滯后值以及其他(即,外生)變量的同期和滯后值的模型來實(shí)現(xiàn)這種想法。同樣,這些外生變量應(yīng)該是穩(wěn)定的。對(duì)于內(nèi)生變量yt和外生變量xt例如自回歸分布滯后或ADL,模型可以寫成
?
yt=a1yt?1+b0xt+b1xt?1+et.
?
這種ADL模型的預(yù)測(cè)性能可能會(huì)比簡(jiǎn)單的AR模型更好。但是,如果外生變量也依賴于內(nèi)生變量的滯后值怎么辦?這意味著xt也是內(nèi)生的,還有進(jìn)一步的空間可以改善我們的預(yù)測(cè)。
向量自回歸模型
?因此,如上所述,VAR模型可以重寫為一系列單獨(dú)的ADL模型。實(shí)際上,可以通過分別估計(jì)每個(gè)方程來估計(jì)VAR模型。
標(biāo)準(zhǔn)VAR模型的協(xié)方差矩陣是對(duì)稱的,即,對(duì)角線右上角的元素(“上三角”)將對(duì)角線左下角的元素(“下三角”)鏡像。這反映了這樣一種想法,即內(nèi)生變量之間的關(guān)系僅反映相關(guān)性,并且不允許做出因果關(guān)系的陳述,因?yàn)樵诿總€(gè)方向上的影響都是相同的。?
在所謂的結(jié)構(gòu)化?VAR(SVAR)模型的背景下分析了同時(shí)因果關(guān)系,或更確切地說,是變量之間的結(jié)構(gòu)關(guān)系,該模型對(duì)協(xié)方差矩陣施加了限制 。?
在本文中,我考慮VAR(2)過程。?
此示例的人工樣本是在R中生成的
r
set.seed(123) # 由于可復(fù)制性的考慮,重置隨機(jī)數(shù)發(fā)生器# 生成樣本t <- 200 # 時(shí)間序列觀察數(shù)k <- 2 # 內(nèi)生變量數(shù)p <- 2 # 滯后階數(shù)# 生成系數(shù)矩陣A.1 <- matrix(c(-.3, .6, -.4, .5), k) # 滯后系數(shù)矩陣1A.2 <- matrix(c(-.1, -.2, .1, .05), k) # 滯后系數(shù)2A <- cbind(A.1, A.2) # 系數(shù)矩陣# 生成序列series <- matrix(0, k, t + 2*p) # 帶有0的原始序列for (i in (p + 1):(t + 2*p)){ # 生成e ~ N(0,0.5)的序列 ?series[, i] <- A.1%*%series[, i-1] + A.2%*%series[, i-2] + rnorm(k, 0, .5)}series <- ts(t(series[, -(1:p)])) # 轉(zhuǎn)換為時(shí)間序列格式names <- c("V1", "V2") # 重命名變量plot.ts(series) # 繪制序列

?
估算值
簡(jiǎn)單VAR模型的參數(shù)和協(xié)方差矩陣的估計(jì)很簡(jiǎn)單。
為了估計(jì)VAR模型,加載并指定數(shù)據(jù)(y
)和 模型。?
?比較
VAR分析中的一個(gè)中心問題是找到滯后的階數(shù),以產(chǎn)生最佳結(jié)果。模型比較通常基于信息標(biāo)準(zhǔn),例如AIC,BIC或HQ。通常,由于是小樣本預(yù)測(cè),AIC優(yōu)于其他標(biāo)準(zhǔn)。但是,BIC和HQ在大型樣本中效果很好 。
可以計(jì)算標(biāo)準(zhǔn)信息標(biāo)準(zhǔn)以找到最佳模型。在此示例中,我們使用AIC:
?通過查看,summary
我們可以看到AIC建議使用2的階數(shù)。
r
summary(var.aic)
## ## VAR Estimation Results:## ========================= ## Endogenous variables: Series.1, Series.2 ## Deterministic variables: none ## Sample size: 200 ## Log Likelihood: -266.065 ## Roots of the characteristic polynomial:## 0.6611 0.6611 0.4473 0.03778## Call:## VAR(y = series, type = "none", lag.max = 5, ic = "AIC")## ## ## Estimation results for equation Series.1: ## ========================================= ## Series.1 = Series.1.l1 + Series.2.l1 + Series.1.l2 + Series.2.l2 ## ## ? ? ? ? ? ? Estimate Std. Error t value Pr(>|t|) ? ?## Series.1.l1 -0.19750 ? ?0.06894 ?-2.865 ?0.00463 ** ## Series.2.l1 -0.32015 ? ?0.06601 ?-4.850 2.51e-06 ***## Series.1.l2 -0.23210 ? ?0.07586 ?-3.060 ?0.00252 ** ## Series.2.l2 ?0.04687 ? ?0.06478 ? 0.724 ?0.47018 ? ?## ---## Signif. codes: ?0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1## ## ## Residual standard error: 0.4638 on 196 degrees of freedom## Multiple R-Squared: 0.2791, ?Adjusted R-squared: 0.2644 ## F-statistic: 18.97 on 4 and 196 DF, ?p-value: 3.351e-13 ## ## ## Estimation results for equation Series.2: ## ========================================= ## Series.2 = Series.1.l1 + Series.2.l1 + Series.1.l2 + Series.2.l2 ## ## ? ? ? ? ? ? Estimate Std. Error t value Pr(>|t|) ? ?## Series.1.l1 ?0.67381 ? ?0.07314 ? 9.213 ?< 2e-16 ***## Series.2.l1 ?0.34136 ? ?0.07004 ? 4.874 2.25e-06 ***## Series.1.l2 -0.18430 ? ?0.08048 ?-2.290 ? 0.0231 * ?## Series.2.l2 ?0.06903 ? ?0.06873 ? 1.004 ? 0.3164 ? ?## ---## Signif. codes: ?0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1## ## ## Residual standard error: 0.4921 on 196 degrees of freedom## Multiple R-Squared: 0.3574, ?Adjusted R-squared: 0.3443 ## F-statistic: 27.26 on 4 and 196 DF, ?p-value: < 2.2e-16 ## ## ## ## Covariance matrix of residuals:## ? ? ? ? ?Series.1 Series.2## Series.1 ?0.21417 -0.03116## Series.2 -0.03116 ?0.24154## ## Correlation matrix of residuals:## ? ? ? ? ?Series.1 Series.2## Series.1 ? ?1.000 ? -0.137## Series.2 ? -0.137 ? ?1.000
仔細(xì)觀察結(jié)果,我們可以將真實(shí)值 與模型的參數(shù)估計(jì)值進(jìn)行比較:
# 真實(shí)值A## ? ? ?[,1] [,2] [,3] [,4]## [1,] -0.3 -0.4 -0.1 0.10## [2,] ?0.6 ?0.5 -0.2 0.05# Extract coefficients, standard errors etc. from the object# produced by the VAR functionest_coefs <- coef(var.aic)# 僅提取兩個(gè)因變量的系數(shù),并將它們組合為一個(gè)矩陣# 輸出四舍五入的估計(jì)值round(est_coefs, 2)## ? ? ?Series.1.l1 Series.2.l1 Series.1.l2 Series.2.l2## [1,] ? ? ? -0.20 ? ? ? -0.32 ? ? ? -0.23 ? ? ? ?0.05## [2,] ? ? ? ?0.67 ? ? ? ?0.34 ? ? ? -0.18 ? ? ? ?0.07
所有估計(jì)值都有正確的符號(hào),并且相對(duì)接近其真實(shí)值。?
脈沖響應(yīng)
一旦我們確定了最終的VAR模型,就必須解釋其估計(jì)的參數(shù)值。由于VAR模型中的所有變量都相互依賴,因此單個(gè)參數(shù)值僅提供 有限信息。為了更好地了解模型的動(dòng)態(tài)行為,使用了脈沖響應(yīng)(IR)。可以繪制響應(yīng)變量的軌跡,產(chǎn)生在許多宏觀論文中都可以找到的那些波浪曲線。
在下面的示例中,我們想知道受到?jīng)_擊后序列2的行為。指定了我們想要脈沖響應(yīng)的模型和變量后,我們將時(shí)間范圍設(shè)置n.ahead
為20。該圖給出了序列2的響應(yīng)。?
r
# 計(jì)算脈沖響應(yīng)# 繪制脈沖響應(yīng)plot(ir.1)

?
請(qǐng)注意,正交選項(xiàng)很重要,因?yàn)樗f明了變量之間的關(guān)系。在我們的示例中,我們已經(jīng)知道不存在這樣的關(guān)系,因?yàn)檎嬲姆讲?協(xié)方差矩陣(或簡(jiǎn)稱協(xié)方差矩陣)在非對(duì)角元素中是對(duì)角為零的對(duì)角線。但是,由于具有200個(gè)觀測(cè)值的有限時(shí)間序列數(shù)據(jù)限制了參數(shù)估計(jì)的精度,因此協(xié)方差矩陣的非對(duì)角元素具有正值,這意味著 非零同時(shí)效應(yīng)。為了在IR中排除這種情況,我們?cè)O(shè)置了ortho = FALSE
。結(jié)果是,脈沖響應(yīng)在周期0中從零開始。 也可以嘗試另一種方法并進(jìn)行設(shè)置ortho = TRUE
,那么繪圖從零開始。?
?要了解這一點(diǎn),還可以計(jì)算并繪制累積脈沖響應(yīng)函數(shù),以了解 總體長(zhǎng)期影響:
r
# 計(jì)算脈沖響應(yīng)# 繪圖plot(ir.2)

?
我們看到,盡管序列2對(duì)序列1中的 反應(yīng)在某些時(shí)期是負(fù)面的,但總體效果卻是顯著正面。

最受歡迎的見解
1.在python中使用lstm和pytorch進(jìn)行時(shí)間序列預(yù)測(cè)
2.python中利用長(zhǎng)短期記憶模型lstm進(jìn)行時(shí)間序列預(yù)測(cè)分析
3.使用r語(yǔ)言進(jìn)行時(shí)間序列(arima,指數(shù)平滑)分析
4.r語(yǔ)言多元copula-garch-模型時(shí)間序列預(yù)測(cè)
5.r語(yǔ)言copulas和金融時(shí)間序列案例
6.使用r語(yǔ)言隨機(jī)波動(dòng)模型sv處理時(shí)間序列中的隨機(jī)波動(dòng)
7.r語(yǔ)言時(shí)間序列tar閾值自回歸模型
8.r語(yǔ)言k-shape時(shí)間序列聚類方法對(duì)股票價(jià)格時(shí)間序列聚類
9.python3用arima模型進(jìn)行時(shí)間序列預(yù)測(cè)