Stata 中的向量自迴歸模型(VAR)

Source: David Schenck→ Vector autoregressions in Stata

1. 引言

在單變量回歸中,一個平穩的時間序列 yty_t 經常被模型化爲 AR 過程:

yt=α0+α1yt1+α2yt2++αkytk+ϵt y_t=\alpha_0+\alpha_1 y_{t-1}+\alpha_2 y_{t-2}+\dots +\alpha_k y_{t-k}+\epsilon_t

當我們分析多個時間序列時,一個對 AR 模型自然的拓展就是 VAR模型, 在這個模型中一組向量裏的每個時間序列被模型化爲決定於自己的滯後項以及這組向量裏所有其他變量的滯後項。兩階 VAR 模型如下式:

yt=α0+α1yt1+α2xt1+ϵ1txt=β0+β1yt1+β2xt1+ϵ2t y_t = \alpha_0+\alpha_1 y_{t-1}+\alpha_2 x_{t-1}+\epsilon_{1t}\\ x_t = \beta_0+\beta_1 y_{t-1}+\beta_2 x_{t-1}+\epsilon_{2t}

經濟學家通常使用這種形式的模型分析宏觀數據、做出因果推斷並提供政策建議。

在這篇推文中,我會用美國失業率、通脹率以及名義利率估計一個三變量 VAR 模型。這個 VAR 模型類似於宏觀經濟中做貨幣政策分析的模型。這篇文章的主要關注點在於該模型的基本估計和估計結果評估,數據和 do 文件在文末提供。背景知識和理論細節可以在這篇文章中獲得。

2. 數據和估計

當使用 VAR 模型進行估計時,我們需要做兩個決定。第一個是需要選擇將那些變量放入 VAR 模型中,這個決定一般取決於研究問題和相關文獻。第二個決定是需要選擇滯後階數。決定了滯後階數後,就可以開始估計。得到估計結果後,需要對結果進行評估分析看其是否符合模型設定。

本文使用 1995-2005 年間美國失業率、CPI和短期名義利率的季度觀測值對模型進行估計,數據來源於聯邦經濟數據庫。在 stata 數據集中,inflation爲CPI,unrate 爲失業率,ffr則表示利率。因此,本文估計的 VAR 模型爲:

a0a_0是由截距項組成的向量,A1A_1AKA_K 均爲 3×33\times 3 的係數矩陣。包含這些變量的 VAR 模型或相近的模型變體經常出現在貨幣政策分析中。

下一步是決定一個合理的滯後階數,我使用 varsoc 命令執行滯後結束選擇測試。

. varsoc inflation unrate ffr, maxlag(8)

   Selection-order criteria
   Sample:  41 - 236                            Number of obs      =       196
  +---------------------------------------------------------------------------+
  |lag |    LL      LR      df    p      FPE       AIC      HQIC      SBIC    |
  |----+----------------------------------------------------------------------|
  |  0 | -1242.78                      66.5778    12.712   12.7323   12.7622  |
  |  1 | -433.701  1618.2    9  0.000  .018956   4.54796   4.62922   4.74867  |
  |  2 | -366.662  134.08    9  0.000  .010485   3.95574   4.09793   4.30696* |
  |  3 | -351.034  31.257    9  0.000  .009801    3.8881   4.09123   4.38985  |
  |  4 | -337.734    26.6    9  0.002  .009383   3.84422    4.1083    4.4965  |
  |  5 | -319.353  36.763    9  0.000  .008531    3.7485   4.07351    4.5513  |
  |  6 | -296.967   44.77*   9  0.000  .007447*  3.61191*  3.99787*  4.56524  |
  |  7 | -292.066  9.8034    9  0.367  .007773   3.65373   4.10063   4.75759  |
  |  8 |  -286.45  11.232    9  0.260  .008057   3.68826    4.1961   4.94265  |
  +---------------------------------------------------------------------------+
   Endogenous:  inflation unrate ffr
    Exogenous:  _cons

varsoc 展示了之後滯後階數選擇檢驗的主要結果,檢驗的細節可以通過 help varsoc 得到。似然比和 AIC 都推薦選擇六階滯後,因此本文選擇六階滯後。

有了變量和滯後階數,需要估計係數矩陣和誤差項的協方差矩陣。係數估計可以通過對 VAR 模型中的每個等式做 OLS 迴歸得到,誤差項的協方差矩陣則需要根據樣本殘差的協方差矩陣進行估計。var命令可以同時實現這兩個矩陣的估計,其結果中係數矩陣會默認給出,誤差項的協方差矩陣則可以 e(Sigma) 中找到:

. var inflation unrate ffr, lags(1/6) dfk small

Vector autoregression

Sample:  39 - 236                               Number of obs     =        198
Log likelihood =  -298.8751                     AIC               =   3.594698
FPE            =   .0073199                     HQIC              =    3.97786
Det(Sigma_ml)  =   .0041085                     SBIC              =   4.541321

Equation           Parms      RMSE     R-sq        F       P > F
----------------------------------------------------------------
inflation            19     .430015   0.9773   427.7745   0.0000
unrate               19     .252309   0.9719    343.796   0.0000
ffr                  19     .795236   0.9481   181.8093   0.0000
----------------------------------------------------------------

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
inflation    |
   inflation |
         L1. |    1.37357   .0741615    18.52   0.000     1.227227    1.519913
         L2. |   -.383699   .1172164    -3.27   0.001    -.6150029   -.1523952
         L3. |   .2219455   .1107262     2.00   0.047     .0034489     .440442
         L4. |  -.6102823   .1105383    -5.52   0.000    -.8284081   -.3921565
         L5. |   .6247347   .1158098     5.39   0.000     .3962065    .8532629
         L6. |  -.2352624   .0719141    -3.27   0.001    -.3771708    -.093354
             |
      unrate |
         L1. |  -.4638928   .1386526    -3.35   0.001    -.7374967   -.1902889
         L2. |   .6567903   .2370568     2.77   0.006     .1890049    1.124576
         L3. |   -.271786   .2472491    -1.10   0.273     -.759684    .2161119
         L4. |  -.4545188   .2473079    -1.84   0.068    -.9425328    .0334952
         L5. |   .6755548   .2387697     2.83   0.005     .2043893     1.14672
         L6. |  -.1905395    .136066    -1.40   0.163    -.4590393    .0779602
             |
         ffr |
         L1. |   .1135627   .0439648     2.58   0.011     .0268066    .2003187
         L2. |  -.1155366   .0607816    -1.90   0.059    -.2354774    .0044041
         L3. |   .0356931   .0628766     0.57   0.571    -.0883817    .1597678
         L4. |  -.0928074   .0620882    -1.49   0.137    -.2153263    .0297116
         L5. |   .0285487   .0605736     0.47   0.638    -.0909816    .1480789
         L6. |   .0309895   .0436299     0.71   0.478    -.0551055    .1170846
             |
       _cons |   .3255765   .1730832     1.88   0.062    -.0159696    .6671226
-------------+----------------------------------------------------------------
unrate       |
   inflation |
         L1. |   .0903987   .0435139     2.08   0.039     .0045326    .1762649
         L2. |  -.1647856   .0687761    -2.40   0.018    -.3005019   -.0290693
         L3. |   .0502256    .064968     0.77   0.440    -.0779761    .1784273
         L4. |   .0919702   .0648577     1.42   0.158     -.036014    .2199543
         L5. |  -.0091229   .0679508    -0.13   0.893    -.1432106    .1249648
         L6. |  -.0475726   .0421952    -1.13   0.261    -.1308366    .0356914
             |
      unrate |
         L1. |   1.511349   .0813537    18.58   0.000     1.350814    1.671885
         L2. |  -.5591657   .1390918    -4.02   0.000    -.8336363   -.2846951
         L3. |  -.0744788   .1450721    -0.51   0.608    -.3607503    .2117927
         L4. |  -.1116169   .1451066    -0.77   0.443    -.3979565    .1747227
         L5. |   .3628351   .1400968     2.59   0.010     .0863813     .639289
         L6. |  -.1895388    .079836    -2.37   0.019    -.3470796    -.031998
             |
         ffr |
         L1. |   -.022236   .0257961    -0.86   0.390    -.0731396    .0286677
         L2. |   .0623818   .0356633     1.75   0.082    -.0079928    .1327564
         L3. |  -.0355659   .0368925    -0.96   0.336    -.1083661    .0372343
         L4. |   .0184223   .0364299     0.51   0.614    -.0534651    .0903096
         L5. |   .0077111   .0355412     0.22   0.828    -.0624226    .0778449
         L6. |  -.0097089   .0255996    -0.38   0.705    -.0602247     .040807
             |
       _cons |    .187617   .1015557     1.85   0.066    -.0127834    .3880173
-------------+----------------------------------------------------------------
ffr          |
   inflation |
         L1. |   .1425755   .1371485     1.04   0.300    -.1280603    .4132114
         L2. |   .1461452   .2167708     0.67   0.501    -.2816098    .5739003
         L3. |  -.0988776   .2047683    -0.48   0.630     -.502948    .3051928
         L4. |  -.4035444   .2044208    -1.97   0.050    -.8069291   -.0001598
         L5. |   .5118482   .2141696     2.39   0.018     .0892262    .9344702
         L6. |  -.1468158   .1329922    -1.10   0.271      -.40925    .1156184
             |
      unrate |
         L1. |  -1.411603   .2564132    -5.51   0.000    -1.917585   -.9056216
         L2. |   1.525265   .4383941     3.48   0.001      .660179     2.39035
         L3. |  -.6439154   .4572429    -1.41   0.161    -1.546195    .2583646
         L4. |   .8175053   .4573517     1.79   0.076    -.0849893        1.72
         L5. |   -.344484   .4415619    -0.78   0.436     -1.21582    .5268524
         L6. |   .0366413   .2516297     0.15   0.884     -.459901    .5331835
             |
         ffr |
         L1. |   1.003236   .0813051    12.34   0.000     .8427961    1.163676
         L2. |  -.4497879   .1124048    -4.00   0.000    -.6715968   -.2279789
         L3. |   .4273715   .1162791     3.68   0.000     .1979173    .6568256
         L4. |  -.0775962    .114821    -0.68   0.500    -.3041731    .1489807
         L5. |    .259904   .1120201     2.32   0.021     .0388542    .4809538
         L6. |  -.2866806   .0806857    -3.55   0.000     -.445898   -.1274631
             |
       _cons |   .2580589   .3200865     0.81   0.421    -.3735695    .8896873
------------------------------------------------------------------------------

. matlist e(Sigma)

             | inflation     unrate        ffr
-------------+---------------------------------
   inflation |  .1849129
      unrate | -.0064425   .0636598
         ffr |  .0788766    -.09169      .6324

var命令的報告結果以矩陣形式報告,每個方程以其因變量的名字命名,因此會報告三個方程:通脹方程、失業率方程以及利率方程。 e(Sigma) 中則保存 VAR 模型估計殘差的協方差矩陣。注意各個方程的殘差相關。

如你所見,估計係數表格非常長。即使不考慮常數項,一個有 nn 個變量和 kk 階滯後的 VAR 模型中也會有 kn2kn^2 個係數。我們的 3 變量,6 階滯後的 VAR 則有將近 60 個係數,但是我們卻僅有 198 個觀測。 選項 dfksmall 將對默認情形下報告的大樣本統計量進行小樣本調整。雖然結果會報告係數、標準誤、tt 統計量、pp統計量等,但是並不能給我們直觀的信息含量,因此很多論文甚至都不會報告這些係數表格,但是他們會報告一些更有信息量的統計量。接下來的兩部分將會介紹兩個 VAR 結果分析中常用的統計手段:格蘭傑因果檢驗和脈衝響應函數。

3. 評價 VAR 結果:格蘭傑因果檢驗

如果給定 yty_t 的滯後階數,xtx_t的滯後滯後項在以 yty_t 爲因變量的方程中聯合統計顯著,則稱 xtx_tyty_t 的格蘭傑原因 。例如,如果利率滯後項對失業率是聯合顯著的,則可以稱利率是失業率的格蘭傑原因。vargranger 命令可以進行格蘭傑因果檢驗。

. quietly var inflation unrate ffr, lags(1/6) dfk small

. vargranger

   Granger causality Wald tests
  +------------------------------------------------------------------------+
  |          Equation           Excluded |     F      df    df_r  Prob > F |
  |--------------------------------------+---------------------------------|
  |         inflation             unrate |  3.5594     6     179   0.0024  |
  |         inflation                ffr |  1.6612     6     179   0.1330  |
  |         inflation                ALL |  4.6433    12     179   0.0000  |
  |--------------------------------------+---------------------------------|
  |            unrate          inflation |  2.0466     6     179   0.0618  |
  |            unrate                ffr |  1.2751     6     179   0.2709  |
  |            unrate                ALL |  3.3316    12     179   0.0002  |
  |--------------------------------------+---------------------------------|
  |               ffr          inflation |  3.6745     6     179   0.0018  |
  |               ffr             unrate |  7.7692     6     179   0.0000  |
  |               ffr                ALL |  5.1996    12     179   0.0000  |
  +------------------------------------------------------------------------+

像之前一樣,方程之間通過被解釋變量進行區分。對於每個方程,vargranger 都可以先單獨檢驗每個變量在 VAR 模型中的因果關係,然後檢驗所有變量整體的格蘭傑因果關係。在對失業率方程進行的格蘭傑因果檢驗中,如上表所示,“ffr excluded” 檢驗的原假設是所有利率及其滯後項的係數在對失業率的預測中均爲 0 ,備擇假設是至少有一個不爲 0 。pp 值爲 0.27 並未落在 5% 顯著性水平的拒絕域內,因此我們不能拒絕利率不會影響失業率的原假設,也就是說我們的數據和模型不支持利率是失業率的格蘭傑原因的假設。相反地,在利率方程中,通脹和失業率的滯後項都是統計顯著的,因此可以說通脹和失業率是利率的格蘭傑原因。

每個方程中“all excluded” 行都剔除了全部的滯後項,在方程中只留了自相關係數,這是一個對方程中其他所有滯後項的統計顯著性的檢驗,它可以被當做是一個純粹的自迴歸模型設定(原假設)和 VAR 模型設定(備擇假設)之間的檢驗。

你可以通過對每個方程跑 OLS 迴歸然後使用 test 命令檢驗相應的原假設來得到與格蘭傑因果檢驗相同的結果,其結果與 vargranger 命令得到的結果應該是匹配的:

. quietly regress unrate l(1/6).unrate l(1/6).ffr l(1/6).inflation

. test   l1.inflation=l2.inflation=l3.inflation                       
>       =l4.inflation=l5.inflation=l6.inflation=0

 ( 1)  L.inflation - L2.inflation = 0
 ( 2)  L.inflation - L3.inflation = 0
 ( 3)  L.inflation - L4.inflation = 0
 ( 4)  L.inflation - L5.inflation = 0
 ( 5)  L.inflation - L6.inflation = 0
 ( 6)  L.inflation = 0

       F(  6,   179) =    2.05
            Prob > F =    0.0618

. test l1.ffr=l2.ffr=l3.ffr=l4.ffr=l5.ffr=l6.ffr=0

 ( 1)  L.ffr - L2.ffr = 0
 ( 2)  L.ffr - L3.ffr = 0
 ( 3)  L.ffr - L4.ffr = 0
 ( 4)  L.ffr - L5.ffr = 0
 ( 5)  L.ffr - L6.ffr = 0
 ( 6)  L.ffr = 0

       F(  6,   179) =    1.28
            Prob > F =    0.2709

4. 評價 VAR 模型結果:脈衝響應分析

評價 VAR 模型結果的第二個統計手段是對系統施加一些外生衝擊,然後看這些衝擊對於內生變量的影響。但是需要記住系統的每個方程的衝擊之間並不是相互獨立的,因此就我們現有模型而言,當我們討論一個對通脹的衝擊時,其結果常常是模糊的,因爲這個衝擊也會同時影響該方程中利率和失業率及其滯後項。

. matlist e(Sigma)

             | inflation     unrate        ffr
-------------+---------------------------------
   inflation |  .1849129
      unrate | -.0064425   .0636598
         ffr |  .0788766    -.09169      .6324

解決這個問題的一個方法是假設存在一個結構性衝擊向量 utu_t ,定義其其分量相互獨立,並且這個衝擊向量與原來的衝擊之間存在如下關係:

ϵt=AutE(utut)=I \epsilon_t=A u_t\\ E(u_t u'_t)=I

如果我們定義誤差項的協方差矩陣爲 Σ\Sigma ,則矩陣 A 與 Σ\Sigma 之間的關係爲:

Σ=E(ϵtϵt)=E(AututA)=AE(utut)A=AA \Sigma = E(\epsilon_t \epsilon'_t)=E(A u_t u'_t A')=AE(u_t u'_t )A'=AA'

因爲我們有從樣本估計出的協方差矩陣 Σ^\hat{\Sigma} ,我們於是可以由以上等式構造出 A^\hat{A} :

(1)Σ^=A^A^ \hat{\Sigma} = \hat{A} \hat{A'} \tag{1}

很多 AA 矩陣都滿足方程 (1) 。一種可能的方法是假設 AA 是一個下三角矩陣,則 AA 即可以通過對 Σ\Sigma 進行 Cholesky 分解得到。這種分解方法非常常見,因此使用 var 命令時可以直接指定使用 Cholesky 分解。

對矩陣 AA 做出下三角的假設在 VAR 模型的變量的順序做出了要求,因爲不同的順序將會得到不同的 AA 。變量順序的經濟學含義是對任意一個方程,其因變量都會被順序在其之前變量的衝擊影響,而不會被順序在其之後的變量影響。對於這篇推文,我會對我們所用變量的順序做出如下的設定:通脹衝擊可以同期影響所有三個變量;失業率衝擊只會同期影響利率,但不會影響通脹;利率衝擊順序在最後,因此既不會同期影響失業率,也不會同期影響通脹。

有了 AA ,我們就可以製造方程間相互獨立的衝擊並且在 VAR 模型中觀察這些衝擊對變量施加的影響了。我們可以通過 irf create 命令建立脈衝響應方程,然後使用 irf graph 命令對脈衝響應結果畫圖。

. quietly var inflation unrate ffr, lags(1/6) dfk small

. irf create var1, step(20) set(myirf) replace
(file myirf.irf now active)
(file myirf.irf updated)

. irf graph oirf, impulse(inflation unrate ffr) response(inflation unrate ffr) 
>         yline(0,lcolor(black)) xlabel(0(4)20) byopts(yrescale)

在跑出 VAR 之後,irf create 命令會創建一個 .irf 文件來保存 VAR 模型的結果。多個不同的 VAR 結果會被分別保存在不同的文件找那個,因此我們需要給每個 VAR 命名,在我們的例子中我們命名爲 var1set( ) 選項給 .irf’ 文件命名並將該文件設置爲“活動的”。 .irf’ 文件將在之後的分析中使用。 step(20) 選項則指定 irf create 命令去獲得 20 期的脈衝響應結果。

irf graph 命令根據 .irf’ 文件中的某些統計量畫圖。在該文件中的衆多統計量中,我們對正交脈衝響應方程最感興趣,因此我們在 irf graph 命令後指定 oirfimpulse( )response( ) 選項則分別指定對以哪些方程爲自變量的方程造成衝擊,以及對哪些變量需要繪圖,這裏我們將對所有變量進行衝擊並繪圖,脈衝響應圖如下:

脈衝響應圖每行放置同一衝擊的影響,每列放置同一受衝擊影響的變量。每張圖的橫軸是 VAR 的時間軸,在這裏時間單位爲季度,因此這裏顯示的是衝擊在未來 20 個季度之內的影響。縱軸爲 VAR 模型中的變量,由於數據中每個變量都使用百分比來衡量,因此在所有面板中縱軸表示的都是百分比的變化。

第一行表示的是一個單位的利率衝擊對系統的影響。對利率的影響是持續的,並且在衝擊開始後的 12 個季度內都保持在較高的水平;通脹在 8 個季度後有輕微下降,但是該衝擊對通脹的影響在任意時間段內都是不顯著的;失業率在12個月後有輕微下降,在下降之前最高會有 0.2% 的增加。

第二行則給出了通脹衝擊對系統的影響。一個未預期到的通脹衝擊將給失業率和利率帶來持續正的影響,並且該衝擊的影響在衝擊發生 5 年後依然顯著。

最後,第三行展示了失業率衝擊對系統的影響。失業率衝擊將會導致通脹率在衝擊發生後一年內下降約 0.5 個百分點,利率則在同樣時間段內下降約 1 個百分點。

這裏使用的 VAR 和順序都很清楚。所有的推斷都基於 AA 矩陣,也就是 VAR 模型中變量的順序。不同的順序會產生不同的 AA 矩陣,從而得到不同的脈衝響應結果。此外,除了簡單地指定變量順序外,還有別的識別策略,我將在知乎的推文中討論。

結論

在這篇推文中,我們估計了一個 VAR 模型並討論了該模型中兩個常見的統計工具:格蘭傑因果檢驗和脈衝響應分析。在我們的下一篇推文中,我們會對脈衝響應方程進行更深的討論並給出對 VAR 模型進行結構推斷的其他方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章