2020. 11. 10. 23:20ㆍ계량경제학
앞선 포스팅(direction-f.tistory.com/57)에서 간단히 도구변수와 2SLS(Two-Stage Least Squares)의 추정방법에 대해서 정리하였습니다. 이번에는 일반화된 도구변수를 활용한 회귀 분석에 대해서 살펴보겠습니다.
위와 같은 모형이 있다고 가정해보겠습니다.
일반화된 도구변수를 활용한 회귀 분석에서 2SLS 단계는 다음과 같이 구성됩니다.
(1) First-Stage 회귀분석
모든 내생변수에 대해 모든 도구변수/외생변수/Intercept를 활용하여 OLS를 추정하고 예측값(Fitted value)를 구합니다.
(2) Second-Stage 회귀분석
모든 내생변수 예측값/외생변수/Intercept를 활용하여 종속변수에 관한 OLS를 추정하여 Parmeter값을 도출합니다.
이제 Python을 활용하여 아래와 같은 식을 추정해보겠습니다. 내생변수인 담배가격(

cigaret["rincome"]=cigaret["income"]/cigaret["population"]/cigaret["cpi"]
c1995 = cigaret.loc[cigaret["year"]==1995]
dependent = np.log(c1995["packs"])
exog = sm.add_constant(np.log(c1995["rincome"]))
endog = np.log(c1995["rprice"])
instruments = c1995["salestax"]
mod2 = IV2SLS(dependent, exog, endog, instruments).fit()
mod2
'''
==============================================================================
Parameter Std. Err. T-stat P-value Lower CI Upper CI
------------------------------------------------------------------------------
const 9.4307 1.2194 7.7338 0.0000 7.0407 11.821
rincome 0.2145 0.3018 0.7107 0.4773 -0.3771 0.8061
rprice -1.1434 0.3605 -3.1718 0.0015 -1.8499 -0.4368
==============================================================================
'''
##
cigaret["cigtax"]=cigaret["tax"]/cigaret["cpi"]
c1995 = cigaret.loc[cigaret["year"]==1995]
dependent = np.log(c1995["packs"])
exog = sm.add_constant(np.log(c1995["rincome"]))
endog = np.log(c1995["rprice"])
instruments = c1995[["salestax","cigtax"]]
mod3 = IV2SLS(dependent, exog, endog, instruments).fit()
mod3
'''
==============================================================================
Parameter Std. Err. T-stat P-value Lower CI Upper CI
------------------------------------------------------------------------------
const 9.8950 0.9288 10.654 0.0000 8.0746 11.715
rincome 0.2804 0.2458 1.1407 0.2540 -0.2014 0.7622
rprice -1.2774 0.2417 -5.2855 0.0000 -1.7511 -0.8037
==============================================================================
'''
위 코드는 도구변수를 하나만 썼을 때와, 두개를 썼을 때를 비교한 것입니다. 우리는 어떠한 것을 활용해야 할까요? 이제 도구변수의 타당성을 확보/검증할 수 있는 방안에 대해서 정리해보도록 하겠습니다.
먼저 도구변수는 내생변수와 관련성이 있어야 합니다. 따라서 도구변수를 활용하여 내생변수에 대한 OLS를 추정하고 F-test를 통해서 도구변수 중 하나라도 내생변수와 관련성이 있는지를 체크합니다.
추가적으로 J-statistic을 활용하여 도구변수의 타당성을 검증하는데 이는 종속변수에 관한 모형의 오차항과 도구변수가 관련없음을 증명하기 위함입니다.(아래 모형)

우리가 검증해야할 가설은 아래와 같습니다. 만약 모든

이와 같은 가설을 검증하기 위해 J-statistic을 활용하며, J-statistic은 아래와 같이 계산됩니다.

Python에서는 anova_lm을 활용하여 계산을 수행하면 됩니다. 이 때 J-statistic은
'계량경제학' 카테고리의 다른 글
Experiments and Quasi-Experiments(실험/준실험 연구) (2) | 2020.11.15 |
---|---|
Instrumental Variable Regression(도구변수를 활용한 회귀분석)3 (0) | 2020.11.15 |
Instrumental Variable Regression(도구변수를 활용한 회귀분석) (0) | 2020.11.08 |
Binary 변수를 가지는 회귀분석(로짓 모형) (0) | 2020.11.02 |
Binary 변수를 가지는 회귀분석(프로빗 모형) (2) | 2020.11.01 |