2020. 11. 22. 22:36ㆍ계량경제학
지난 포스팅(direction-f.tistory.com/60)에서는, 실험연구에 대한 정의를 간단히 정리해보고, Student-Teacher Achievement Ratio(STAR)데이터를 활용하여 간단한 Treatment 효과를 분석하기 위한 모형을 수립해보았습니다.
이번 포스팅에서는 지난번에 활용했던 간단함 모형에 추가적인 독립변수를 고려하여, 더 정확한 Treatment 효과를 분석해보겠습니다.
이번에 분석해볼 모형은 아래와 같습니다.
변수정의는 아래와 같습니다.
- — 선생님 경력
- — 남성 여부
- — Free lunch 여부
- — African-American 여부
- — 흑인 여부
- — School indicator variables
주의할 것은 Schoolid가 Factor로써 들어간다는 것입니다. 이번 포스팅에서는 Kinder garden에 대해서 Treatment 효과를 분석하는 모형을 추정해보겠습니다.
STAR["black"] = STAR["ethnicity"].apply(lambda x : 1 if x =="afam" else 0)
STAR["race"] = STAR["ethnicity"].apply(lambda x : 1 if (x =="afam" or x=="cauc") else 0)
STAR["boy"] = STAR["gender"].apply(lambda x : 1 if x =="male" else 0)
STARK = STAR[["gender","ethnicity","stark","readk","mathk","lunchk","experiencek","schoolidk","black","race","boy"]]
STARK.schoolidk=STARK.schoolidk.astype("category")
fmk = smf.ols("I(readk+mathk)~stark", data=STAR).fit()
fmk.summary()
'''
coef std err t P>|t| [0.025 0.975]
-----------------------------------------------------------------------------------------
Intercept 918.0429 1.641 559.363 0.000 914.825 921.260
stark[T.regular+aide] 0.3139 2.310 0.136 0.892 -4.215 4.843
stark[T.small] 13.8990 2.409 5.771 0.000 9.177 18.621
'''
gradeK1 = smf.ols("I(mathk + readk) ~ stark + experiencek", data = STARK).fit()
gradeK1.summary()
'''
coef std err t P>|t| [0.025 0.975]
-----------------------------------------------------------------------------------------
Intercept 904.7212 2.228 406.071 0.000 900.354 909.089
stark[T.regular+aide] -0.6006 2.306 -0.260 0.795 -5.122 3.921
stark[T.small] 14.0061 2.395 5.847 0.000 9.310 18.702
experiencek 1.4690 0.167 8.784 0.000 1.141 1.797
'''
gradeK2 = smf.ols("I(mathk + readk) ~ stark + experiencek+ schoolidk", data = STARK).fit()
gradeK2.summary()
'''
coef std err t P>|t| [0.025 0.975]
-----------------------------------------------------------------------------------------
Intercept 925.6749 8.203 112.851 0.000 909.595 941.755
stark[T.regular+aide] 1.2152 2.093 0.581 0.562 -2.888 5.318
stark[T.small] 15.9331 2.167 7.352 0.000 11.684 20.182
experiencek 0.7431 0.168 4.421 0.000 0.414 1.073
'''
gradeK3 = smf.ols("I(mathk + readk) ~ stark + experiencek+schoolidk+ boy+ lunchk+ black + race + schoolidk", data = STARK).fit()
gradeK3.summary()
'''
coef std err t P>|t| [0.025 0.975]
-----------------------------------------------------------------------------------------
Intercept 903.2008 14.472 62.408 0.000 874.829 931.572
stark[T.regular+aide] 1.7844 2.018 0.884 0.377 -2.172 5.741
stark[T.small] 15.8870 2.089 7.604 0.000 11.791 19.983
lunchk[T.non-free] 34.7005 2.018 17.197 0.000 30.745 38.656
experiencek 0.6626 0.162 4.086 0.000 0.345 0.980
boy -12.0927 1.666 -7.260 0.000 -15.358 -8.827
black -25.4470 3.577 -7.113 0.000 -32.460 -18.434
race 8.2881 12.004 0.690 0.490 -15.245 31.821
'''
위의 결과를 보면 Student 특성이나 School factor를 넣어도 Treatment 효과에 큰 차이는 없는 것을 알 수 있습니다. 즉 Small class를 가지는 것이 학습성과에 유의미한 영향을 미친다는 사실과 Aide가 학습성과에 유의하지 않다는 것에 영향을 주지 않았습니다. 여기서 선생님 경력(experience)는 각 반에 Random하게 assign 됐음으로 선생님 경력과 학습성과에 Causal effect를 추정해볼 수 있을 것입니다. 선생님 경력은 학습성과에 긍정적인 영향을 미치고 있음을 알 수 있습니다. 다만, 여기서 Student 특성은 학교별로 Random하게 Assign 되기 힘들기 때문에 정확히 Casual effect를 분석할 수 있다고 말하기 어렵습니다.
'계량경제학' 카테고리의 다른 글
시계열(Time series) > 데이터 핸들링 (0) | 2020.12.04 |
---|---|
Experiments and Quasi-Experiments(실험/준실험 연구)3 > Difference-in-Difference(이중차분법) (2) | 2020.11.29 |
Experiments and Quasi-Experiments(실험/준실험 연구) (2) | 2020.11.15 |
Instrumental Variable Regression(도구변수를 활용한 회귀분석)3 (0) | 2020.11.15 |
Instrumental Variable Regression(도구변수를 활용한 회귀분석)2 (2) | 2020.11.10 |