본문 바로가기
카테고리 없음

[STATA] 정적모형과 동적모형

by e-money2580 2023. 2. 6.
반응형


** 정적모형과 동적모형
/* 정적모형 : 설명변수 현재값이 종속변수 현재값을 결정, 동적모형 : 설명변수 과거값이 종속변수 현재값에 영향을 미침
오차항은 백색잡음(자기상관 없음)을 가정. 이 가정은 현실적으로 유지되기 어려움. */

** 유한시차 모형 : 설명변수의 과거값이 현재의 종속변수에 미치는 영향을 특정 시점까지 한정
// 단점 : 과거값을 어느 시점까지 가져갈지에 대해 주관적 판단이 필요

** 자기회귀모형 : 종속변수의 과거값을 설명변수로 사용하는 모형
/* 장점 : 과거값을 어느 시점까지 사용할지 고민할 필요 없음. 오차항에 1계 자기상관이 존재하지 않을 가능성 높음
단점 : 오차항에 1계 자기상관이 존재한다면 OLS 추정량이 일치추정량이 되지 못함 = 종속변수의 과거값이 내생적 설명변수가 되는 문제 발생 */

 


** 자기회귀시차모형 (ARDL : autoregressive and distributed lags) : 종속변수와 설명변수의 과거값을 동시에 설명변수로 사용하는 모형
/* 단점 : 과거값을 어느시점까지 가지겨잘지 판단 필요
판단기준 : 1.오차항에 자기상관이 없는가? 2.추정계수의 부호와 크기가 경제학 이론과 일치하는가? 3.추정계수가 0과 유의하게 다른가? 4.AIC와 SIC를 최소화하는가?

AIC(Akaike information criteron) : 잔체제곱합을 최소화함고 동시에 추정해야 하는 모수의 개수에 패널티를 주는 방식. 다른 조건이 동일할 때 시점이 커질수록 AIC가 커짐.
SIC(Schwarz infomation criteron) : AIC에 비해 시점이 커질 수록 SIC가 더 커짐.
*/


** 유한시차 모형 추정하기

use "D:\STATA연습데이터\STATA시계열데이터분석\T_data5_1.dta", clear

tsset qtr, quarterly // qtr 변수를 분기 시계열 변수로 인식

reg inv interest // 금리를 설명변수, 투자금액을 종속변수로 회귀분석
/*

      Source |       SS           df       MS      Number of obs   =        30
-------------+----------------------------------   F(1, 28)        =      0.98
       Model |  54.8930787         1  54.8930787   Prob > F        =    0.3316
    Residual |  1574.42976        28  56.2296344   R-squared       =    0.0337
-------------+----------------------------------   Adj R-squared   =   -0.0008
       Total |  1629.32284        29  56.1835462   Root MSE        =    7.4986

------------------------------------------------------------------------------
         inv | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
    interest |  -.2805834   .2839787    -0.99   0.332    -.8622874    .3011206
       _cons |   24.16326   4.217354     5.73   0.000      15.5244    32.80212
------------------------------------------------------------------------------
*/

estat bgodfrey // 1계 자기상관 검정
/*
Breusch–Godfrey LM test for autocorrelation
---------------------------------------------------------------------------
    lags(p)  |          chi2               df                 Prob > chi2
-------------+-------------------------------------------------------------
       1     |         24.042               1                   0.0000
---------------------------------------------------------------------------
                        H0: no serial correlation
*/ // 검정결과 자기상관이 없다는 귀무가설을 기각 = 자기상관이 있음

reg inv l(0/3).interest // 설명변수(금리)를 과거 3기까지 설명변수로 사용하여 회귀(유한시차 모형)
/*
      Source |       SS           df       MS      Number of obs   =        27
-------------+----------------------------------   F(4, 22)        =      1.64
       Model |  320.382658         4  80.0956645   Prob > F        =    0.1997
    Residual |  1074.14284        22  48.8246745   R-squared       =    0.2297
-------------+----------------------------------   Adj R-squared   =    0.0897
       Total |   1394.5255        26  53.6355961   Root MSE        =    6.9875

------------------------------------------------------------------------------
         inv | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
    interest |
         --. |  -.4137383   .2947161    -1.40   0.174    -1.024942    .1974656
         L1. |  -.2927851   .3074255    -0.95   0.351    -.9303466    .3447764
         L2. |  -.5544762   .3208385    -1.73   0.098    -1.219854     .110902
         L3. |  -.5589487   .3018915    -1.85   0.078    -1.185033     .067136
             |
       _cons |   46.33146   11.12069     4.17   0.000     23.26857    69.39436
------------------------------------------------------------------------------
*/ // 유한시차 모형의 충격승수(impact multiplier)는 -0.413 : 현재시점 금리가 1단위 증가하면 현재시점 투자금액이 0.413단위 감소

estat bgodfrey // 1계 자기상관 검정
/*

Breusch–Godfrey LM test for autocorrelation
---------------------------------------------------------------------------
    lags(p)  |          chi2               df                 Prob > chi2
-------------+-------------------------------------------------------------
       1     |         14.911               1                   0.0001
---------------------------------------------------------------------------
                        H0: no serial correlation
*/ // 검정결과 자기상관이 존재하나, 정적모형(24.04)에 비해 검정통계량 값이 대폭 줄어들었음

reg inv l(0/3).interest

lincom interest+l1.interest+l2.interest+l3.interest // 추정계수의 선형결합에 대한 t검정
/*
 ( 1)  interest + L.interest + L2.interest + L3.interest = 0

------------------------------------------------------------------------------
         inv | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
         (1) |  -1.819948   .7973208    -2.28   0.032     -3.47349   -.1664062
------------------------------------------------------------------------------
*/ // 각 시점(t ~ t-3)의 추정계수의 합은 0이라는 귀무가설을 5% 유의수준에서 기각 = 각 시점의 추정계수의 합은 0이 아니다


reg inv l(0/3).interest
ereturn list
mat list e(V) // 금리 각 시점(현재~과거3기)의 추정계수간 공분산 확인하기
/*
symmetric e(V)[5,5]
                                  L.         L2.         L3.            
               interest    interest    interest    interest       _cons
   interest    .0868576
 L.interest   .02849908   .09451045
L2.interest   .01735304   .03822058   .10293731
L3.interest  -.00584979      .01979   .03212536   .09113849
      _cons  -1.7844412  -2.5130418  -2.6171908  -1.8863838   123.66971
*/

 



** 자기회귀모형 추정하기

reg inv l.inv interest
/*
      Source |       SS           df       MS      Number of obs   =        29
-------------+----------------------------------   F(2, 26)        =     55.37
       Model |  1256.21405         2  628.107027   Prob > F        =    0.0000
    Residual |  294.952717        26  11.3443353   R-squared       =    0.8099
-------------+----------------------------------   Adj R-squared   =    0.7952
       Total |  1551.16677        28  55.3988133   Root MSE        =    3.3681

------------------------------------------------------------------------------
         inv | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
         inv |
         L1. |   .9008964   .0869073    10.37   0.000     .7222559    1.079537
             |
    interest |  -.2947919   .1292871    -2.28   0.031    -.5605453   -.0290386
       _cons |   6.743649   2.513102     2.68   0.013     1.577894     11.9094
------------------------------------------------------------------------------
*/ // 1기간 지연된 inv의 추정계수가 0.9이며 1% 유의수준에서 유의함 = inv변수의 자기회귀 성향이 매우 높음

estat bgodfrey // 1계 자기상관 검정
/*
Breusch–Godfrey LM test for autocorrelation
---------------------------------------------------------------------------
    lags(p)  |          chi2               df                 Prob > chi2
-------------+-------------------------------------------------------------
       1     |          0.079               1                   0.7784
---------------------------------------------------------------------------
                        H0: no serial correlation
*/ // 자기상관이 없다는 귀무가설을 기각하지 못함 = 자기상관이 없음 = 종속변수의 과거값이 설명변수로 포함되더라도 내생성 문제는 없음


** 자기회귀모형 추정후 시차효과와 장기효과 계산(설명변수가 1단위 변할 때 미래의 모든 종속변수에 미치는 영향)

reg inv l.inv interest

nlcom _b[l.inv]*_b[interest] // 시차효과(1기간 전) 추정계수의 비선형결합에 대한 t검정
/*
       _nl_1: _b[l.inv]*_b[interest]

------------------------------------------------------------------------------
         inv | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
       _nl_1 |   -.265577   .1203917    -2.21   0.027    -.5015405   -.0296135
------------------------------------------------------------------------------
*/ // 1기 지연된 금리가 현재 투자에 미치는 영향은 -0.265이고 5% 유의수준에서 유의함

nlcom _b[l.inv]^2*_b[interest]
/*
------------------------------------------------------------------------------
         inv | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
       _nl_1 |  -.2392574   .1165428    -2.05   0.040     -.467677   -.0108377
------------------------------------------------------------------------------
*/

nlcom _b[interest]/(1-_b[l.inv]) // 장기효과에 대한 t검정
/*
       _nl_1: _b[interest]/(1-_b[l.inv])

------------------------------------------------------------------------------
         inv | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
       _nl_1 |  -2.974584   2.969161    -1.00   0.316    -8.794033    2.844865
------------------------------------------------------------------------------
*/ // 현재시점의 금리 1단위 증가는 미래시점의 투자를 -2.974단위 감소시킴

 



** ARDL 모형 추정

reg inv l.inv l(0/1).interest
/*
      Source |       SS           df       MS      Number of obs   =        29
-------------+----------------------------------   F(3, 25)        =     44.27
       Model |  1305.43379         3  435.144596   Prob > F        =    0.0000
    Residual |  245.732984        25  9.82931937   R-squared       =    0.8416
-------------+----------------------------------   Adj R-squared   =    0.8226
       Total |  1551.16677        28  55.3988133   Root MSE        =    3.1352

------------------------------------------------------------------------------
         inv | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
         inv |
         L1. |   .9391378   .0826816    11.36   0.000     .7688518    1.109424
             |
    interest |
         --. |  -.2202566   .1248692    -1.76   0.090    -.4774295    .0369164
         L1. |   .2826926     .12633     2.24   0.034     .0225111    .5428742
             |
       _cons |   .9946755   3.474557     0.29   0.777    -6.161309     8.15066
------------------------------------------------------------------------------
*/ // 1기 지연된 종속변수(inv)의 추정계수는 0.939이며 1% 유의수준에서 유의함. 금리의 현재값은 10% 유의수준에서, 금리의 1기간 지연된 값은 5% 유의수준에서 유의함.  

estat bgodfrey // 1계 자기상관 검정
/*
Breusch–Godfrey LM test for autocorrelation
---------------------------------------------------------------------------
    lags(p)  |          chi2               df                 Prob > chi2
-------------+-------------------------------------------------------------
       1     |          0.691               1                   0.4059
---------------------------------------------------------------------------
                        H0: no serial correlation
*/ // 오차항에 대한 1계 자기상관이 없음

estat ic // 추정결과에 대한 로그 우도함수값과 AIC, BIC(=SIC) 값 제시
/*
Akaike's information criterion and Bayesian information criterion

-----------------------------------------------------------------------------
       Model |          N   ll(null)  ll(model)      df        AIC        BIC
-------------+---------------------------------------------------------------
           . |         29  -98.85149  -72.13499       4     152.27   157.7392
-----------------------------------------------------------------------------
Note: BIC uses N = number of observations. See [R] BIC note.
*/ 

reg inv l.inv l(0/1).interest

nlcom _b[l.inv]*_b[interest]+_b[l1.interest] // 시차효과
/*
       _nl_1: _b[l.inv]*_b[interest]+_b[l1.interest]

------------------------------------------------------------------------------
         inv | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
       _nl_1 |   .0758414   .1922064     0.39   0.693    -.3008762     .452559
------------------------------------------------------------------------------
*/

nlcom _b[l.inv]^2*_b[interest]+_b[l.inv]*_b[l1.interest] // 시차효과
/*
       _nl_1: _b[l.inv]^2*_b[interest]+_b[l.inv]*_b[l1.interest]

------------------------------------------------------------------------------
         inv | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
       _nl_1 |   .0712255   .1809212     0.39   0.694    -.2833736    .4258246
------------------------------------------------------------------------------
*/

nlcom (_b[interest]+_b[l1.interest])/(1-_b[l.inv]) // 장기효과
/*
       _nl_1: (_b[interest]+_b[l1.interest])/(1-_b[l.inv])

------------------------------------------------------------------------------
         inv | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
       _nl_1 |   1.025859   3.741339     0.27   0.784     -6.30703    8.358748
------------------------------------------------------------------------------
*/


** ARDL(1,0) / ARDL(1,1) / ARDL(2,1) 모형 추정후 AIC와 SIC 비교

reg inv l.inv interest
estimates store ARDL1_0

reg inv l.inv l(0/1).interest
estimates store ARDL1_1

reg inv l(1/2).inv l(0/1).interest
estimates store ARDL2_1

estimates stat ARDL*
/*
Akaike's information criterion and Bayesian information criterion

-----------------------------------------------------------------------------
       Model |          N   ll(null)  ll(model)      df        AIC        BIC
-------------+---------------------------------------------------------------
     ARDL1_0 |         29  -98.85149  -74.78225       3   155.5645   159.6664
     ARDL1_1 |         29  -98.85149  -72.13499       4     152.27   157.7392
     ARDL2_1 |         28  -95.43086  -70.03775       5   150.0755   156.7365
-----------------------------------------------------------------------------
Note: BIC uses N = number of observations. See [R] BIC note.

*/

esttab ARDL*, b(%9.3f) se(%9.3f) scalars(r2_a rss aic bic) star(* 0.1 ** 0.05 *** 0.01)
// b : 추정계수, se : 표준오차, scalars : ereturn list에 저장된 결과

/*
------------------------------------------------------------
                      (1)             (2)             (3)   
                      inv             inv             inv   
------------------------------------------------------------
L.inv               0.901***        0.939***        0.939***
                  (0.087)         (0.083)         (0.195)   

L2.inv                                             -0.007   
                                                  (0.194)   

interest           -0.295**        -0.220*         -0.225   
                  (0.129)         (0.125)         (0.133)   

L.interest                          0.283**         0.290*  
                                  (0.126)         (0.140)   

_cons               6.744**         0.995           1.162   
                  (2.513)         (3.475)         (3.633)   
------------------------------------------------------------
N                      29              29              28   
r2_a                0.795           0.823           0.809   
rss               294.953         245.733         243.965   
aic               155.564         152.270         150.076   
bic               159.666         157.739         156.737   
------------------------------------------------------------
Standard errors in parentheses
* p<0.1, ** p<0.05, *** p<0.01
*/ 
// AIC와 SIC 모두 ARDL(2,1) 모형에서 가장 작음


** 필립스 곡선

use "D:\STATA연습데이터\STATA시계열데이터분석\T_data5_2.dta", clear
// ADRL(1,1) 모형 설정, inf : 물가상승률, u : 실업률, du : 실업률의 변화분(차분)

tsset date

reg inf l.inf d.u ld.u if date<=yq(2007,4) // 2007년 4분기까지 ADRL 모형 추정
/*
      Source |       SS           df       MS      Number of obs   =        82
-------------+----------------------------------   F(3, 78)        =     14.42
       Model |  11.7246963         3   3.9082321   Prob > F        =    0.0000
    Residual |  21.1377427        78  .270996701   R-squared       =    0.3568
-------------+----------------------------------   Adj R-squared   =    0.3320
       Total |   32.862439        81  .405709124   Root MSE        =    .52057

------------------------------------------------------------------------------
         inf | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
         inf |
         L1. |   .5833613   .0944971     6.17   0.000     .3952319    .7714906
             |
           u |
         D1. |  -.7336214   .2843267    -2.58   0.012    -1.299672   -.1675705
         LD. |    .343762   .2903304     1.18   0.240    -.2342414    .9217654
             |
       _cons |    .306668   .0941012     3.26   0.002      .119327     .494009
------------------------------------------------------------------------------
*/

di yq(2008,1) // 2008년 1분기에 해당하는 시계열 변수(date)값 확인
// 192

gen inf_pred=inf if date<=yq(2007,4) // 2007년 4분기까지 추정치 생성

forvalues i=192/198 {
replace inf_pred=_b[_cons]+_b[l.inf]*inf+_b[d.u]*d.u+_b[ld.u]*ld.u if date==`i'
}
// 2008년 1분기 이후 표본외 예측결과 입력

list date inf inf_pred in -10/L  // 2008년1분기부터 실제 관찰된 값과 모형에 의한 예측값 비교
/*
     +--------------------------+
     |   date   inf    inf_pred |
     |--------------------------|
 82. | 2007q2   1.2         1.2 |
 83. | 2007q3    .7          .7 |
 84. | 2007q4    .9          .9 |
 85. | 2008q1   1.3    1.392862 |
 86. | 2008q2   1.5    .8974808 |
     |--------------------------|
 87. | 2008q3   1.2    1.075454 |
 88. | 2008q4   -.3   -.0884268 |
 89. | 2009q1    .1   -.1187644 |
 90. | 2009q2    .5    .5799097 |
 91. | 2009q3     1     .954172 |
     +--------------------------+
*/

twoway (tsline inf if date>=yq(2005,1)) (tsline inf_pred if date>=yq(2008,1))

출처 : STATA 시계열 데이터 분석(민인식, 최필선)

반응형

댓글