** 2단계 최소제곱추정법(2SLS)
/* OLS의 추정량이 일치추정량이 되기 위해서는 설명변수와 오차항이 서로 독립이라는 가정이 필요하다. 즉, cov(x,e)=0이 성립해야 한다.(가정2) (오차항의 조건부 평균이 0이라는 가정. 즉, E(e|x)=0이 성립하면 cov(x,e)=0은 반드시 성립한다) 만약 이 가정이 성립하지 않으면 OLS 추정량 베타는 일치추정량이 될 수 없다.*/
/*회귀모형에서 설명변수와 오차항은 모두 종속변수인 y에 영향을 미치지만 설명변수와 오차항 간에는 상관관계가 없어야 한다. 그래야만 OLS 추정량이 바람직한 성질을 갖게 된다. 그러나 내생적(endogenous) 설명변수가 존재하는 선형모형에서는 설명변수가 오차항과 상관관계를 가지면서 동시에 종속변수에 영향을 미치는 구조를 갖게 된다.*/
** 설명변수가 내생성을 갖게 되는 이유
/*
1) 연립방정식 편의(simultaneous equation bias)
수요량 = a+b*가격+오차d 공급량 = c+d*가격+오차s
여기서 오차항(오차d,오차s)은 가격에 영향을 미치고 가격변수는 그 값이 모형 내에서 결정되는 내생성을 갖게 된다.
결과적으로 수요와 공급함수의 오차항은 가격변수와 상관관계를 갖게된다. 이 때 각 회귀모형을 따로 OLS 추정하는 경우 추정계수b와 d는 일치추정량이 될 수 없다
2) 측정오차 편의(measurement error bias)
측정오차를 포함하고 있는 독립변수만 관측하는 것이 가능해서, 독립변수에 측정오차가 포함될 경우 독립변수와 오차항에는 상관관계가 존재하게 되고, 이 독립변수는 내생성이 존재하게 된다.
3) 누락변수 편의(omitted variable bias)
종속변수 y와 설명변수 x 모두에 영향을 미칠 수 있는 변수가 모형에서 누락된 경우
예를 들어, 임금결정 모형을 추정할 때 교육수준만 설명변수에 포함시켰으나, 관찰할 수 없는 개인의 선천적 능력이라는 변수가 임금과 교육수준 모두에 영향을 미칠 수 있다. 따라서 선천적 능력 변수를 제외한 채 모형을 추정하면 오차항은 능력 변수의 정보를 포함하게 되고 그 결과 오차항과 교육수준 변수는 상호 관련성을 보일 가능성이 커지게 된다.
*/
** 해결방법 : 도구변수(IV : instrumental variable)를 이용한 추정방법
/* 도구변수는 반드시 회귀모형의 오차항과는 상관관계가 존재하지 않고 내생적 설명변수와는 상관관계가 있어야 함. IV 추정에서 도구변수의 개수는 반드시 내생적 설명변수의 개수보다 많거나 같아야 한다. 도구변수의 개수와 내생적 변수의 개수가 동일한 경우를 적정식별(just-identified)이라고 하고, 도구변수가 내생적 설명변수의 개수보다 많을 때 과대식별(over-identified)라고 부른다. 과대식별의 경우 도구변수들의 적합성(validity)을 검정해야 한다. 즉 over-identification 검정을 통해 도구변수이 필요조건(오차항과 상관관계가 있는지)을 가설검정할 필요가 있다.*/
/*어떤 도구변수를 선택해야 하는가? 수요모형, 공급모형 모두에 영향을 미치는 가격변수의 내생성의 경우, 공급량에는 영향을 미치지만 수요량에는 영향을 미치지 않는 변수가 후보가 될 수 있다. 임금결정모형에서는 능력변수가 누락된 경우, 내생적인 설명변수인 교육수준 변수와 상관관계가 있지만 오차항과는 상관관계가 없는 변수, 예를 들어 아버지 또는 어머니의 교육수준을 도구변수로 선택할 수 있다.*/
use "D:\STATA연습데이터\STATA기초통계와회귀분석\R_data13_1.dta",clear
// 교육수준(educ)과 경력기간(exper)이 평균임금(wage)에 미치는 영향 OLS 추정
drop if wage==0 // 임금이 0인 관측치 제외
gen lnwage=log(wage) // 임금에 로그값을 취한 변수 lnwage 생성
gen exper2=exper^2 // 경력기간제곱 변수 exper2 생성
reg lnwage educ exper exper2
/*
Source | SS df MS Number of obs = 428
-------------+---------------------------------- F(3, 424) = 26.29
Model | 35.0222967 3 11.6740989 Prob > F = 0.0000
Residual | 188.305144 424 .444115906 R-squared = 0.1568
-------------+---------------------------------- Adj R-squared = 0.1509
Total | 223.327441 427 .523015084 Root MSE = .66642
------------------------------------------------------------------------------
lnwage | Coefficient Std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
educ | .1074896 .0141465 7.60 0.000 .0796837 .1352956
exper | .0415665 .0131752 3.15 0.002 .0156697 .0674633
exper2 | -.0008112 .0003932 -2.06 0.040 -.0015841 -.0000382
_cons | -.5220406 .1986321 -2.63 0.009 -.9124667 -.1316144
------------------------------------------------------------------------------
*/
// educ 0.107 : 다른 조건이 동일할 때 근로자 교육수준이 1년 증가하면 임금은 10.7% 상승
// 관찰되지 않은 능력변수가 임금 결정에 중요한 변수이지만, 모형에는 제외됨. 누락변수 편의에 의해 educ 변수와 오차항 간에 상관관계가 존재할 가능성이 있고, 추종계수들이 일치추정량이 아닐 수 있음. 이를 해결하기 위해 2SLS 추정방법을 사용. 도구변수 후보는 아버지 교육수준(fathereduc)이나 어머니 교육수준(mothereduc)이다.
** 아버지 교육수준(fathereduc) 1개를 도구변수로 사용한 2SLS 추정
// ivregress 2sls [종속변수] [설명변수1] [설명변수2]... (내생적 설명변수 = 도구변수)
ivregress 2sls lnwage exper exper2 (educ=fathereduc)
/*
Instrumental variables 2SLS regression Number of obs = 428
Wald chi2(3) = 25.18
Prob > chi2 = 0.0000
R-squared = 0.1430
Root MSE = .6687
------------------------------------------------------------------------------
lnwage | Coefficient Std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
educ | .0702263 .0342814 2.05 0.041 .003036 .1374165
exper | .0436716 .0133374 3.27 0.001 .0175308 .0698123
exper2 | -.0008822 .000399 -2.21 0.027 -.0016643 -.0001001
_cons | -.0611169 .4344019 -0.14 0.888 -.912529 .7902951
------------------------------------------------------------------------------
Instrumented: educ
Instruments: exper exper2 fathereduc
*/
// 아버지 교육수준(fathereduc)을 도구변수로 사용한 2SLS 결과 educ 추정계수는 0.07로 OLS 추정결과인 0.107보다 작아진다. 즉, 교육기간이 1년 증가함에 따라 임금 7% 증가한다.(OLS 결과는 교육기간 1년 증가시 임금 10.7% 증가)
// 상기 2SLS 추정을 아래와 같이 2단계 OLS로도 추정 가능
reg educ exper exper2 fathereduc // 1단계 OLS 추정
/*
Source | SS df MS Number of obs = 428
-------------+---------------------------------- F(3, 424) = 30.09
Model | 391.477157 3 130.492386 Prob > F = 0.0000
Residual | 1838.7191 424 4.33660166 R-squared = 0.1755
-------------+---------------------------------- Adj R-squared = 0.1697
Total | 2230.19626 427 5.22294206 Root MSE = 2.0825
------------------------------------------------------------------------------
educ | Coefficient Std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
exper | .0468243 .0411074 1.14 0.255 -.0339754 .127624
exper2 | -.0011504 .0012286 -0.94 0.350 -.0035652 .0012645
fathereduc | .2705061 .0288786 9.37 0.000 .2137431 .3272691
_cons | 9.887034 .3956078 24.99 0.000 9.109438 10.66463
------------------------------------------------------------------------------
*/
predict educ_hat // 1단계 추정후 교육수준(educ) 변수의 적합값 educ_hat을 생성
reg lnwage educ_hat exper exper2 // 적합값 educ_hat을 설명변수로 하는 2단계 OLS 추정
/*
Source | SS df MS Number of obs = 428
-------------+---------------------------------- F(3, 424) = 7.50
Model | 11.2579303 3 3.75264343 Prob > F = 0.0001
Residual | 212.069511 424 .50016394 R-squared = 0.0504
-------------+---------------------------------- Adj R-squared = 0.0437
Total | 223.327441 427 .523015084 Root MSE = .70722
------------------------------------------------------------------------------
lnwage | Coefficient Std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
educ_hat | .0702263 .036256 1.94 0.053 -.0010377 .1414902
exper | .0436716 .0141056 3.10 0.002 .0159459 .0713972
exper2 | -.0008822 .000422 -2.09 0.037 -.0017117 -.0000526
_cons | -.0611169 .4594243 -0.13 0.894 -.9641496 .8419159
------------------------------------------------------------------------------
*/
// 2SLS 추정시 educ변수의 추정계수 0.070과 상기 2단계 OLS 추정결과 educ_hat의 추정계수 0.070은 동일
// 그러나 표준오차는 0.034, 0.036으로 다르며, 2SLS 추정은 정규분포, 2단계 OLS 추정은 t분포를 사용
** 관측치 개수가 많지 않은 경우 small 옵션을 사용하여 2SLS 추정
ivregress 2sls lnwage exper exper2 (educ=fathereduc), small
/*
Instrumental variables 2SLS regression
Source | SS df MS Number of obs = 428
-------------+------------------------------ F( 3, 424) = 8.31
Model | 31.9407878 3 10.6469293 Prob > F = 0.0000
Residual | 191.386653 424 .451383616 R-squared = 0.1430
-------------+------------------------------ Adj R-squared = 0.1370
Total | 223.327441 427 .523015084 Root MSE = .67185
------------------------------------------------------------------------------
lnwage | Coefficient Std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
educ | .0702263 .0344427 2.04 0.042 .0025266 .137926
exper | .0436716 .0134001 3.26 0.001 .0173326 .0700105
exper2 | -.0008822 .0004009 -2.20 0.028 -.0016702 -.0000941
_cons | -.0611169 .4364461 -0.14 0.889 -.9189844 .7967505
------------------------------------------------------------------------------
Instrumented: educ
Instruments: exper exper2 fathereduc
*/
// 본 샘플은 관측치가 428개로 상당히 큰 편이어서 small 옵션의 유무에 큰 차이가 없음
** 어머니 교육수준(mothereduc)을 도구변수로 사용한 2SLS 추정결과
ivregress 2sls lnwage exper exper2 (educ=mothereduc)
/*
Instrumental variables 2SLS regression Number of obs = 428
Wald chi2(3) = 22.25
Prob > chi2 = 0.0001
R-squared = 0.1231
Root MSE = .67642
------------------------------------------------------------------------------
lnwage | Coefficient Std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
educ | .049263 .0372607 1.32 0.186 -.0237666 .1222925
exper | .0448558 .0135132 3.32 0.001 .0183704 .0713413
exper2 | -.0009221 .0004045 -2.28 0.023 -.0017148 -.0001293
_cons | .1981861 .4706623 0.42 0.674 -.7242952 1.120667
------------------------------------------------------------------------------
Instrumented: educ
Instruments: exper exper2 mothereduc
*/
// 어머니 교육수준을 도구변수로 사용할 경우 교육수준(educ)의 추정계수가 유의하지 않은 결과가 나옴
// 도구변수의 적합성 검정을 위해 내생적 설명변수와의 상관관계를 점검
corr educ mothereduc fathereduc
/*
(obs=428)
| educ mother~c father~c
-------------+---------------------------
educ | 1.0000
mothereduc | 0.3870 1.0000
fathereduc | 0.4154 0.5541 1.0000
*/
// 아버지 교육수준(fathereduc)이 교육수준(educ)과 상관관계가 높게 나타났으므로 아버지 교육수준을 도구변수로 사용하는 것이 적절
** 도구변수 적정성 판단 기준 : 2SLS 1단계 추정결과 t값이 3.3보다 크면 적절한 상관관계가 있음
ivregress 2sls lnwage exper exper2 (educ=fathereduc)
/*
Instrumental variables 2SLS regression Number of obs = 428
Wald chi2(3) = 25.18
Prob > chi2 = 0.0000
R-squared = 0.1430
Root MSE = .6687
------------------------------------------------------------------------------
lnwage | Coefficient Std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
educ | .0702263 .0342814 2.05 0.041 .003036 .1374165
exper | .0436716 .0133374 3.27 0.001 .0175308 .0698123
exper2 | -.0008822 .000399 -2.21 0.027 -.0016643 -.0001001
_cons | -.0611169 .4344019 -0.14 0.888 -.912529 .7902951
------------------------------------------------------------------------------
Instrumented: educ
Instruments: exper exper2 fathereduc
*/
estat first // 도구변수와 내생설명변수의 상관관계 검정
/*
First-stage regression summary statistics
--------------------------------------------------------------------------
| Adjusted Partial
Variable | R-sq. R-sq. R-sq. F(1,424) Prob > F
-------------+------------------------------------------------------------
educ | 0.1755 0.1697 0.1715 87.7409 0.0000
--------------------------------------------------------------------------
Minimum eigenvalue statistic = 87.7409
Critical Values # of endogenous regressors: 1
H0: Instruments are weak # of excluded instruments: 1
---------------------------------------------------------------------
| 5% 10% 20% 30%
2SLS relative bias | (not available)
-----------------------------------+---------------------------------
| 10% 15% 20% 25%
2SLS size of nominal 5% Wald test | 16.38 8.96 6.66 5.53
LIML size of nominal 5% Wald test | 16.38 8.96 6.66 5.53
---------------------------------------------------------------------
*/
// F검정통계량이 10보다 크면 내생변수와 적절한 상관관계를 갖고 있다고 판단할 수 있다. (= t값 3.3 이상)
// 상기 검정결과 F값은 87.74로 10보다 훨씬 큼
// 2SLS size of nominal 5% Wald test의 10% 유의수준 임계치가 16.38이며 F값은 이보다 큰 87.74이므로 귀무가설(도구변수는 내생변수와 상관관계가 약하다)을 기각한다.
** 과대식별된 2SLS 추정의 경우 추정결과 검정
// 아버지, 어머니 교육수준 둘 다 도구변수로 사용하여 2SLS 추정
ivregress 2sls lnwage exper exper2 (educ=fatheredu mothereduc)
/*
Instrumental variables 2SLS regression Number of obs = 428
Wald chi2(3) = 24.65
Prob > chi2 = 0.0000
R-squared = 0.1357
Root MSE = .67155
------------------------------------------------------------------------------
lnwage | Coefficient Std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
educ | .0613966 .0312895 1.96 0.050 .0000704 .1227228
exper | .0441704 .0133696 3.30 0.001 .0179665 .0703742
exper2 | -.000899 .0003998 -2.25 0.025 -.0016826 -.0001154
_cons | .0481003 .398453 0.12 0.904 -.7328532 .8290538
------------------------------------------------------------------------------
Instrumented: educ
Instruments: exper exper2 fathereduc mothereduc
*/
estat first // 도구변수와 내생설명변수의 상관관계 검정
/*
First-stage regression summary statistics
--------------------------------------------------------------------------
| Adjusted Partial
Variable | R-sq. R-sq. R-sq. F(2,423) Prob > F
-------------+------------------------------------------------------------
educ | 0.2115 0.2040 0.2076 55.4003 0.0000
--------------------------------------------------------------------------
Minimum eigenvalue statistic = 55.4003
Critical Values # of endogenous regressors: 1
H0: Instruments are weak # of excluded instruments: 2
---------------------------------------------------------------------
| 5% 10% 20% 30%
2SLS relative bias | (not available)
-----------------------------------+---------------------------------
| 10% 15% 20% 25%
2SLS size of nominal 5% Wald test | 19.93 11.59 8.75 7.25
LIML size of nominal 5% Wald test | 8.68 5.33 4.42 3.92
---------------------------------------------------------------------
*/
// F검정통계량이 10보다 크므로 귀무가설(2개의 도구변수는 내생변수와 상관관계가 약하다)을 기각
estat overid // 2개의 도구변수가 오차항과 상관계가 없는지 검정 (과대식별인 경우에만 검정)
/*
Tests of overidentifying restrictions:
Sargan (score) chi2(1) = .378071 (p = 0.5386)
Basmann chi2(1) = .373985 (p = 0.5408)
*/
// Sagan과 Basmann의 과대식별 검정결과 p값이 0.05보다 크기 때문에 5% 유의수준에서 귀무가설을 기각하지 못함
// = 도구변수들이 오차항과 상관관계가 없다
** 설명변수 내생성 가설검정(1) : Hausman 검정
/*
귀무가설 : cov(x,e)=0, 설명변수 x와 오차항 e의 공분산이 0이어서 설명변수가 외생적
대립가설 : cov(x,e)!=0, 설명변수 x와 오차항 e의 공분산이 0이 아니아서 설명변수가 내생적
*/
** 2SLS와 OLS 추정을 한 다음 그 결과를 저장하고 Hausman 검정 실행
/*
(2SLS 추정) ivregress 2sls [종속변수] [독립변수1] [독립변수2]... (내생변수=도구변수1 도구변수2 ...)
(2SLS 결과 저장) estimates store [이름1]
(OLS 추정) reg [종속변수] [내생변수] [독립변수1] [독립변수2]...
(OLS 결과 저장) estimates store [이름2]
hausman [이름1] [이름2], constant sigmamore
*/
ivregress 2sls lnwage exper exper2 (educ=fathereduc mothereduc)
estimates store iv
reg lnwage educ exper exper2
estimates store ols
hausman iv ols, constant sigmamore
// 도구변수(IV) 추정량은 설명변수(educ)가 외생적이든 내생적이든 항상 일치추정량이라고 가정한다. 반면, OLS 추정량은 설명변수(educ)가 외생적일 때에만 일치추정량이라고 가정한다.
/*
Note: the rank of the differenced variance matrix (1) does not equal the number of coefficients being tested
(4); be sure this is what you expect, or there may be problems computing the test. Examine the
output of your estimators for anything unexpected and possibly consider scaling your variables so
that the coefficients are on a similar scale.
---- Coefficients ----
| (b) (B) (b-B) sqrt(diag(V_b-V_B))
| iv ols Difference Std. err.
-------------+----------------------------------------------------------------
educ | .0613966 .1074896 -.046093 .0276406
exper | .0441704 .0415665 .0026039 .0015615
exper2 | -.000899 -.0008112 -.0000878 .0000526
_cons | .0481003 -.5220406 .5701409 .3418964
------------------------------------------------------------------------------
b = Consistent under H0 and Ha; obtained from ivregress.
B = Inconsistent under Ha, efficient under H0; obtained from regress.
Test of H0: Difference in coefficients not systematic
chi2(1) = (b-B)'[(V_b-V_B)^(-1)](b-B)
= 2.78
Prob > chi2 = 0.0954
(V_b-V_B is not positive definite)
*/
// p값 0.095는 0.05보다 크고 0.10보다 작으므로, 유의수준 10%에서 귀무가설(설명변수가 외생적)을 기각한다 = 설명변수가 내생적이다 = 도구변수(IV) 추정(2SLS)을 사용하면 일치추정량을 얻을 수 있다.
// 유의수준 5%에서는 귀무가설(설명변수가 외생적)을 기각할 수 없다 = 설명변수가 외생적이다 = OLS 추정을 사용하면 일치추정량을 얻을 수 있다.
** 설명변수 내생성 가설검정(2) : 2번의 OLS 추정을 통한 검정
reg educ mothereduc fathereduc exper exper2 // 도구변수를 독립변수로, 내생변수를 종속변수로 OLS 추정
drop educ_hat // 앞선 분석에서 educ_hat을 생성한 경우 제거함
predict educ_hat, resid // 적합값(종속변수)의 잔차 생성
reg lnwage educ_hat educ exper exper2 // 잔차를 독립변수에 포함하여 OLS 추정
/*
Source | SS df MS Number of obs = 428
-------------+---------------------------------- F(4, 423) = 20.50
Model | 36.2573098 4 9.06432745 Prob > F = 0.0000
Residual | 187.070131 423 .442246173 R-squared = 0.1624
-------------+---------------------------------- Adj R-squared = 0.1544
Total | 223.327441 427 .523015084 Root MSE = .66502
------------------------------------------------------------------------------
lnwage | Coefficient Std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
educ_hat | .0581666 .0348073 1.67 0.095 -.0102501 .1265834
educ | .0613966 .0309849 1.98 0.048 .000493 .1223003
exper | .0441704 .0132394 3.34 0.001 .0181471 .0701937
exper2 | -.000899 .0003959 -2.27 0.024 -.0016772 -.0001208
_cons | .0481003 .3945753 0.12 0.903 -.7274721 .8236727
------------------------------------------------------------------------------
*/
// 잔차 변수의 p값이 0.095로 Hausman 가설검정의 p값 0.95와 일치함
** 설명변수 내생성 가설검정(3) : 2SLS 추정한 후 endogenous 명령어 사용하는
ivregress 2sls lnwage exper exper2 (educ = fathereduc mothereduc)
estat endogenous
/*
Tests of endogeneity
H0: Variables are exogenous
Durbin (score) chi2(1) = 2.80707 (p = 0.0938)
Wu-Hausman F(1,423) = 2.79259 (p = 0.0954)
*/
// 두 검정결과 모두 p값이 0.05보다 크지만 0.10보다 작다
// 10% 유의수준에서는 귀무가설(외생적)을 기각한다 = 설명변수가 내생적이다 = 도구변수(IV) 추정(2SLS) 사용
// 5% 유의수준에서는 귀무가설(외생적)을 기각하지 못함 = 설명변수가 외생적이다 = OLS 추정 사용
[출처] 기초통계와 회귀분석(민인식, 최필선, 2012), 한국STATA학회 홈페이지(http://kastata.org/html/sub02-04.asp)
댓글