<aside> 💡 실습 목표

  1. 연습문제 [A], [B]를 복습하고, 문제점을 진단하고 해결하는 연습을 합니다.
  2. 새로운 연습문제 [C]를 풀어 보면서 이제까지 배운 내용을 반복 학습합니다.

실습 데이터: new.dta

</aside>

1. 단순선형회귀분석과 문제점 진단

이제까지 배운 내용은 다음과 같습니다:

오늘은 2일차 내용을 복습하고, 단순선형회귀분석에서 나타날 수 있는 문제점을 진단하고 (간단하게 해결할 수 있는 것들을) 해결하는 방법을 연습하겠습니다. 어제 다른 이름으로 저장해 둔 데이터(new.dta)를 열어 주세요.

1.1. 연습문제 [A], [B] 복습

<aside> 🧑🏻‍💻 복습

1) 가설 A를 단순선형회귀분석을 통해 검정하세요. 분석 결과는 m1으로 저장하세요.

reg life_satis free_choice

est store m1

2) marginsplot을 그려보세요.

margins, at(free_choice = (0 (1) 10))

marginsplot, recast(line) recastci(rarea) xlabel(0 "전혀 자유롭지 않다" 5 "보통" 10 "매우 자유롭다", labsize(vsmall))

3) 가설 B 또한 분석하고, 결과는 m2라는 이름으로 저장해 주세요.

reg resp_opinion affect_dis

est store m2

</aside>

<aside> 🧑🏻‍💻 4) marginsplot을 그려보세요.

margins, at(affect_dis=(1 (1) 5))

marginsplot, recast(line) recastci(rarea) xlabel(, labsize(small))

5) coefplot을 그려보세요. 이때 앞에서 저장해 두었던 m1, m2를 이용하여 두 모형의 분석 결과를 한 그림에 표현해 봅시다. 또한 drop(_cons) 옵션을 통해 상수항은 그래프에서 제외해 주세요.

coefplot **m1 m2**, xline(0) **drop(_cons)** ciopts(recast(rcap))

6) outreg2 명령어를 사용하여 두 모형의 분석 결과를 한 번에 워드 파일로 내보내 봅시다(힌트: outreg2 명령어 다음에 저장된 추정치 [m1 m2] 넣어주시면 됩니다). 이때 replace 옵션을 사용하여 기존의 results 워드 파일 내용을 현 분석 결과로 대체합니다.

outreg2 [m1 m2] using results, word replace

</aside>

1.2. 문제점 진단

앞서 가설 A와 B를 OLS 선형회귀분석으로 테스트했습니다. 그렇다면 OLS의 기본 가정이 위배되었는지를 확인해 보겠습니다.

<aside> 📌 Remind: OLS 선형회귀분석의 현실적인 가정

<aside> 🧑🏻‍💻 등분산성 위반

등분산성이란? 잔차의 분포가 독립변수와 관계 없음을 의미. 즉, 오차항의 분산이 x의 값에 관계없이 일정하다.

(1) 시각적으로 판단하는 방법: 잔차 변수를 만들고, 잔차와 독립변수 간 산점도 그리기

reg life_satis free_choice // 먼저 가설 A부터 살펴보도록 하겠습니다.

predict r, residual // r이라는 이름을 가진 잔차 변수를 만들어 주세요.

twoway scatter r free_choice, yline(0) // 용이한 판단을 위한 yline(0) 옵션

rvpplot free_choice, yline(0) // (residual-versus-predictor)

rvfplot, yline(0) // (residual-versus-fitted)

</aside>

<aside> 🧑🏻‍💻 등분산성 위반

(2) 이분산성/등분산성 검정: Breusch–Pagan test; White test

<aside> 👉 원리: Run regression → Keep residual and make squared errors → Estimate a new regression using the squared errors as Y (즉 오차의 분산을 X가 설명하는지 확인) $e^2_i= \beta_0 + \beta_1X_i + \delta_i$ ⇒ H0: Homoscedasticity

</aside>

hettest // 잔차 normal분포 가정

imtest, white // unrestricted (잔차 분포의 왜도, 첨도 또한 함께 확인)

</aside>

일반적인 회귀분석에서 등분산성 가정이 위반되는 경우, robust 옵션을 통해 보수적인 가설 검정을 하는 편이 좋습니다 (e.g. reg Y X**, robust**)

<aside> 🧑🏻‍💻 정규분포 위반

kdensity r, normal

</aside>

<aside> 🧑🏻‍💻 독립변수와 오차의 독립성

누락변수가 있거나 관계 없는 변수가 모형에 포함되어 있는 경우, model specification error가 있을 수 있습니다. 이때 사용할 수 있는 명령어는 다음과 같습니다:

linktest

ovtest

⇒ linktest와 ovtest의 원리는 예측 값들을 가지고 만든 새로운 변수를 모형에 추가하여 이 새로운 변수가 유의한지를 확인함으로써 잔차가 정말로 모형에 의해 설명되고 남은 “찌꺼기”인지를 보는 것입니다. 만약 새로운 변수가 유의하다면 잔차에 추가적으로 더 설명될 여지가 있다, 즉 “누락 변수”가 있다는 걸 의미합니다.

Regression with Stata Chapter 2 - Regression Diagnostics

더 자세한 설명을 원한다면, 위 사이트를 참고해 주세요.

</aside>