FMB819: R을 이용한 데이터분석
Angrist & Lavy (1999)의 연구 분석
##
## Call:
## lm(formula = avgmath ~ classize, data = grades)
##
## Coefficients:
## (Intercept) classize
## 57.7939 0.3175
단순 선형 회귀 (Simple Linear Regression) 결과에 따르면, 학급 규모가 학생들의 수학 및 읽기 점수와 양의 상관관계를 가짐 (positively associated).
이는 직관적으로 예상되지 않는 결과이며, STAR 무작위 실험 결과와도 대조적임.
그렇다면, 학급 규모와 학생 성취 모두와 관련된 다른 변수가 있을까?
특히, 지역(location) 효과가 존재할 가능성이 있음.
이 가설을 검증해보자.
학급 규모와 불리한 배경을 가진 학생 비율 간의 관계
➡ 평균적으로, 불리한 배경을 가진 학생 비율이 높은 학급일수록 학급 규모가 작음.
평균 수학 점수와 불리한 배경을 가진 학생 비율 간의 관계
➡ 평균적으로, 불리한 배경을 가진 학생 비율이 높을수록 평균 수학 점수가 낮아짐.
우리는 학급 규모가 평균 수학 점수에 미치는 효과를 알고 싶음.
하지만, 불리한 배경을 가진 학생 비율과 학급 규모 및 평균 수학 점수 간의 음의 관계를 고려해야 함.
이를 위해 classize와 disadvantaged 변수를 회귀 분석의 독립 변수(regressors)로 포함해야 함.
이렇게 하면 학급 규모가 평균 수학 점수에 미치는 효과를, 불리한 배경 변수의 영향을 제거한(purged) 형태로 추정 가능.
추정하려는 회귀 모델 다중 회귀 분석(Multiple Regression)
\[ \textrm{avg math}_i = b_0 + b_1 \text{size}_i + b_2 \text{\% disadvantaged}_i + e_i \]
\[ y_i = b_0 + b_1 x_i + e_i \]
X가 Y를 인과적으로(causally) 결정한다고 주장하려면,
X의 값을 변경했을 때(X를 조작), 다른 모든 요인은 동일하게 유지(ceteris paribus)되면서 Y가 변화해야 함.⚠️ 만약 \(y_i\)에 영향을 주는 다른 모든 요인이 \(x_i\)와 상관관계가 있다면,
→ \(b_1\)은 인과적 효과(Causal Effect)로 해석될 수 없음.
이를 해결하기 위해, 모델을 확장하고(\(y_i\)를 동시에 설명하는 다른 요인을 포함)
→ \(y_i\)와 \(x_i\) 모두와 관련된 변수들을 고려해야 함.
확장된 회귀 모델은 다음과 같이 표현됨:
\[ y_i = b_0 + b_1 x_{1,i} + b_2 x_{2,i} + b_3 x_{3,i} + \dots + b_k x_{k,i} + e_i \]
추정(Estimation)
\[ \begin{align} \sum_{i}{e_i^2} &= \sum_{i}{(y_i - \hat{y_i})^2} \\ &= \sum_{i}{[y_i - (b_0 + b_1 x_{1,i} + b_2 x_{2,i} + b_3 x_{3,i} + \dots + b_k x_{k,i})]^2} \end{align} \]
가정 : 종속 변수 \((y_i)\) 와 독립 변수 \((x_k)\) 모두 연속형 변수(numeric variables) 라고 가정.
절편 (\(b_0\)): \(x_1, x_2, x_3, ...\) 모든 독립 변수가 0일 때, 예측된 \(y\) 값 \(\widehat{y}\)
기울기 (\(b_k\)): \(x_k\)가 1 단위 증가할 때, \(y\) 값이 평균적으로 어떻게 변하는지 예측… 단, 다른 모든 독립 변수들은 일정하게 유지!
다른 모든 변수들을 일정하게 유지한다는 점이 단순 선형 회귀(SLM)와 다른 점.
즉, \(x_k\)가 \(y\)에 미치는 개별적인 효과를 고립시켜 분석하는 것.
인과 추론(Causal Inference)과의 연결
R을 사용한 다중 회귀 분석lm() 함수를 사용하여 다중 회귀 분석 수행 가능.##
## Call:
## lm(formula = avgmath ~ classize + disadvantaged, data = grades)
##
## Coefficients:
## (Intercept) classize disadvantaged
## 69.94438 0.07168 -0.33958
##
## Call:
## lm(formula = avgmath ~ classize + disadvantaged, data = grades)
##
## Coefficients:
## (Intercept) classize disadvantaged
## 69.94438 0.07168 -0.33958
Questions
##
## Call:
## lm(formula = avgmath ~ classize + disadvantaged, data = grades)
##
## Coefficients:
## (Intercept) classize disadvantaged
## 69.94438 0.07168 -0.33958
Answers
\(b_0 = 69.94\): 학급 규모 (classize) 와 불리한 배경을 가진 학생 비율 이 모두 0일 때 → 평균 수학 점수(avg math)의 예측값은 69.94
\(b_1 = 0.07\): 불리한 배경을 가진 학생 비율을 일정하게 유지할 경우, 학급 규모가 1명 증가하면 → 평균 수학 점수가 평균적으로 0.07점 증가하는 것과 연관됨(associated).
\(b_2 = -0.34\): 학급 규모를 일정하게 유지할 경우, 불리한 배경을 가진 학생 비율이 1% 증가하면 → 평균 수학 점수가 평균적으로 0.34점 감소하는 것과 연관됨(associated).
##
## Call:
## lm(formula = avgmath ~ classize + disadvantaged, data = grades)
##
## Coefficients:
## (Intercept) classize disadvantaged
## 69.94438 0.07168 -0.33958
Answers
10:00 haven 패키지의 read_dta() 함수를 사용하여 데이터를 불러오기. 데이터를 grades라는 객체에 저장(Optional) 데이터셋에서 추가 가능한 변수를 확인하고 회귀 분석을 확장하시오. 모든 변수를 포함한 회귀 분석을 수행하고 reg_full 객체에 저장.
연속형(numeric, continuous) 변수의 계수 해석 방법은 이미 알고 있음.
그렇다면, 독립 변수 중 하나가 더미 변수(dummy variable) 라면?
예): 아래 회귀 모델에서 각 계수의 의미는?
\[ \text{avg math}_i = b_0 + b_1\text{size}_i + b_2\text{religious}_i +e_i \]
religious: 1이면 해당 학교가 종교 학교, 0이면 해당 학교가 일반 학교##
## Call:
## lm(formula = avgmath ~ classize + religious, data = grades)
##
## Coefficients:
## (Intercept) classize religious
## 61.3092 0.2311 -3.7800
\[ \text{avg math}_i = \color{#d96502}{b_0} + \color{#d90502}{b_1}\text{size}_i + \color{#027D83}{b_2}\text{religious}_i +e_i \]
\[\begin{align} \mathbb{E}(\text{avg math} | \text{religious} = 0 \text{ & } \text{size} = 0) &= \color{#d96502}{b_0} + \color{#d90502}{b_1} \times 0 + \color{#027D83}{b_2} \times 0 \\ &= \color{#d96502}{b_0} \end{align}\]
절편 (\(b_0\)): religious = 0 (일반 학교)이고, size = 0인 경우의 예측된 평균 수학 점수
\[ \text{avg math}_i = \color{#d96502}{b_0} + \color{#d90502}{b_1}\text{size}_i + \color{#027D83}{b_2}\text{religious}_i +e_i \]
\[\begin{equation} \mathbb{E}(\text{avg math} | \text{religious} \in \{0,1\} \text{ & } \color{#d90502}{\text{size} = n_1}) = \color{#d96502}{b_0} + \color{#d90502}{b_1} \times n_1 + \color{#027D83}{b_2} \times \text{religious} \end{equation}\] \[\begin{multline} \mathbb{E}(\text{avg math} | \text{religious} \in \{0,1\} \text{ & } \color{#d90502}{\text{size} = n_1+1}) = \\ \color{#d96502}{b_0} + \color{#d90502}{b_1} \times (n_1+1) + \color{#027D83}{b_2} \times \text{religious} \end{multline}\] \[\begin{multline} \mathbb{E}(\text{avg math} | \text{religious} \in \{0,1\} \text{ & } \color{#d90502}{\text{size} = n_1+1}) - \\ \mathbb{E}(\text{avg math} | \text{religious} \in \{0,1\} \text{ & } \color{#d90502}{\text{size} = n_1}) \\ = \color{#d96502}{b_0} + \color{#d90502}{b_1} \times (n_1+1) + \color{#027D83}{b_2} \times \text{religious} - (\color{#d96502}{b_0} + \color{#d90502}{b_1} \times n_1 + \color{#027D83}{b_2} \times \text{religious}) = \color{#d90502}{b_1} \end{multline}\]
religious 변수)은 일정하게 유지된 상태에서\[ \text{avg math}_i = \color{#d96502}{b_0} + \color{#d90502}{b_1}\text{size}_i + \color{#027D83}{b_2}\text{religious}_i +e_i \]
\[\begin{align} \mathbb{E}(\text{avg math} | \color{#027D83}{\text{religious} = 1} \text{ & } \text{size} \in \mathbb{N}) &= \color{#d96502}{b_0} + \color{#d90502}{b_1} \times \text{size} + \color{#027D83}{b_2} \times 1 \\ &= \color{#d96502}{b_0} + \color{#d90502}{b_1} \times \text{size} + \color{#027D83}{b_2} \end{align}\] \[\begin{align} \mathbb{E}(\text{avg math} | \color{#027D83}{\text{religious} = 0} \text{ & } \text{size} \in \mathbb{N}) &= \color{#d96502}{b_0} + \color{#d90502}{b_1} \times \text{size} + \color{#027D83}{b_2} \times 0 \\ &= \color{#d96502}{b_0} + \color{#d90502}{b_1} \times \text{size} \end{align}\] \[\begin{multline} \mathbb{E}(\text{avg math} | \color{#027D83}{\text{religious} = 1} \text{ & } \text{size} \in \mathbb{N}) - \\ \mathbb{E}(\text{avg math} | \color{#027D83}{\text{religious} =0} \text{ & } \text{size} \in \mathbb{N}) \\ = \color{#d96502}{b_0} + \color{#d90502}{b_1} \times \text{size} + \color{#027D83}{b_2}- (\color{#d96502}{b_0} + \color{#d90502}{b_1} \times \text{size}) = \color{#027D83}{b_2} \end{multline}\]
\(\rightarrow\) \(\color{#027D83}{b_2}\)는 학급 규모를 일정하게 유지한 상태에서 종교계 학교와 비종교계 학교 간 평균 수학 점수의 기대 차이를 의미
\[ \text{avg math}_i = \color{#d96502}{b_0} + \color{#d90502}{b_1}\text{size}_i + \color{#027D83}{b_2}\text{religious}_i +e_i \]
\[\begin{equation} \color{#d96502}{b_0} = \mathbb{E}(\text{avg math} | \text{religious} = 0 \text{ & } \text{size} = 0) \end{equation}\] \[\begin{multline} \color{#d90502}{b_1} = \mathbb{E}(\text{avg math} | \text{religious} \in \{0,1\} \text{ & } \color{#d90502}{\text{size} = n_1+1}) - \\ \mathbb{E}(\text{avg math} | \text{religious} \in \{0,1\} \text{ & } \color{#d90502}{\text{size} = n_1}) \end{multline}\] \[\begin{multline} \color{#027D83}{b_2} = \mathbb{E}(\text{avg math} | \color{#027D83}{\text{religious} = 1} \text{ & } \text{size} \in \mathbb{N}) - \\ \mathbb{E}(\text{avg math} | \color{#027D83}{\text{religious} =0} \text{ & } \text{size} \in \mathbb{N}) \end{multline}\] \[\begin{equation} \color{#d96502}{b_0} + \color{#027D83}{b_2} = \mathbb{E}(\text{avg math} | \text{religious} = 1 \text{ & } \text{size} = 0) \end{equation}\]
\[ \text{avg math}_i = \color{#d96502}{b_0} + \color{#d90502}{b_1}\text{size}_i + \color{#027D83}{b_2}\text{religious}_i +e_i \]
\[ \text{avg math}_i = \color{#d96502}{b_0} + \color{#d90502}{b_1}\text{size}_i + \color{#027D83}{b_2}\text{religious}_i +e_i \]
\[ \text{avg math}_i = \color{#d96502}{b_0} + \color{#d90502}{b_1}\text{size}_i + \color{#027D83}{b_2}\text{religious}_i +e_i \]
\[ \text{avg math}_i = \color{#d96502}{b_0} + \color{#d90502}{b_1}\text{size}_i + \color{#027D83}{b_2}\text{religious}_i +e_i \]
\[ \text{avg math}_i = \color{#d96502}{b_0} + \color{#d90502}{b_1}\text{size}_i + \color{#027D83}{b_2}\text{religious}_i +e_i \]
\[ x_2 \neq ax_1 + b \]
즉, 하나의 독립 변수를 다른 독립 변수들의 조합으로 완전히 표현할 수 있으면 안 됨.
완벽하게 선형 결합된 경우 → 회귀 분석 수행 불가능
높은 상관관계를 가지는 경우: 각 독립 변수의 개별적 효과(계수)를 정확히 분리하기 어려움 → 추정된 계수의 신뢰도가 낮아질 수 있음
관측치 수(Observations) > 독립 변수 개수(Independent Variables): 즉, 너무 많은 변수를 추가하면 과적합(overfitting) 문제가 발생할 수 있음. → ✅ 반드시 충족해야 하는 조건!
범주형 변수(categorical variables)란, 특정 개수의 “레벨(levels)”을 가지는 변수 (예: 성별, 계절, 인종, 교육 수준 등)
🏫 religious 변수 예제: religious 변수를 포함한 회귀 분석 수행
##
## Call:
## lm(formula = avgmath ~ classize + religious, data = grades)
##
## Coefficients:
## (Intercept) classize religious
## 61.3092 0.2311 -3.7800
⚠ 더미 변수 함정: 만약 religious 변수를 두 개의 더미 변수(is_religious, is_notreligious)로 변환하여 사용한다면?
grades <- grades %>%
mutate(is_religious = (religious == 1),
is_notreligious = (religious == 0))
lm(avgmath ~ classize + is_religious + is_notreligious, grades)##
## Call:
## lm(formula = avgmath ~ classize + is_religious + is_notreligious,
## data = grades)
##
## Coefficients:
## (Intercept) classize is_religiousTRUE
## 61.3092 0.2311 -3.7800
## is_notreligiousTRUE
## NA
❓ 왜 하나의 계수만 추정되는가? 완전 다중공선성 발생 → is_religious와 is_notreligious는 항상 1의 합을 가짐. 즉, 한 변수를 다른 변수로 완전히 설명 가능
R은 완전 다중공선성(perfect collinearity)을 자동으로 감지하고, 한 변수를 자동으로 제거(drop) 함.
⚠ 기준(reference) 그룹과 계수 해석
\[\begin{multline} \color{#027D83}{b_2} = \mathbb{E}(\text{avg math} | \color{#027D83}{\text{religious} = 1} \text{ & } \text{size} \in \mathbb{N}) - \\ \mathbb{E}(\text{avg math} | \color{#027D83}{\text{religious} =0} \text{ & } \text{size} \in \mathbb{N}) \end{multline}\]
religious = 1)와 일반 학교(religious = 0) 간의 평균 수학 점수 차이를 나타냄.📌 두 개 이상의 범주(category)가 있는 경우
R은 character 또는 factor 형식의 변수들을 자동으로 감지하고, 적절한 더미 변수를 생성함.10:00 read.csv()를 사용하여 star_df 객체에 저장. NA 값이 있는 행을 제거: star_df <- star_df[complete.cases(star_df),]dummy = (variable=="value")):small: 학생이 소규모 학급에 배정되었으면 TRUE, 아니면 FALSEregular: 학생이 일반 학급에 배정되었으면 TRUE, 아니면 FALSEregular_plus: 학생이 보조 교사가 있는 일반 학급에 배정되었으면 TRUE, 아니면 FALSEmath를 regular_plus로 회귀 분석. regular+aide 반에 있는 학생의 평균 math 점수는?
math를 small, regular, regular_plus로 회귀 분석. 어느 범주가 사라졌나?
math를 star 변수로 회귀 분석. 어느 범주가 사라졌나? 계수를 해석하시오.
OVB 이란, 회귀 분석에서 중요한 통제 변수(control variable) 를 제외함으로써 발생하는 편의(bias) 을 의미.
이로 인해 관심 있는 독립 변수의 계수를 신뢰할 수 없고(biased), 왜곡될 수 있음.
\(y\): 종속변수, \(x\): 독립변수, \(z\): 누락변수인 경우 다음 회귀분석이 가능
1️⃣ 단순 선형 회귀 모델 (Simple Linear Model)
\[ y = b_0 + b_1x + e \]
2️⃣ 다중 선형 회귀 모델 (Multiple Linear Model): 만약 \(z\) 변수를 포함한다면?
\[ y = c_0 + c_1x + \color{#d90502}{c_2}z + e \]
3️⃣ 누락된 변수와 \(x\)의 관계 (Omitted Variable on Regressor)
\[ z = d_0 + \color{#d96502}{d_1}x + e \]
📌 OVB 공식
\[ \text{OVB} = \color{#d90502}{c_2} \times \color{#d96502}{d_1} \]
즉,
\[ b_1 = c_1 + OVB \]
💡 결론:
만약 \(z\)를 생략하면, \(b_1\)은 \(c_1\)에 OVB가 더해진 값이 되어, 실제 값과 차이가 날 수 있음.
\[ \text{OVB} = \underbrace{\text{다중 회귀에서 생략된 변수의 계수}}_{\color{#d90502}{c_2}} \times \underbrace{\frac{Cov(x,z)}{Var(x)}}_{\color{#d96502}{d_1}} \]
OVB의 의미
소득(income)과 교육연수(years of education) 사이의 관계를 분석할 때,
classize)가 학생들의 평균 수학 점수(avgmath)에 미치는 영향\[ \text{avg math} = b_0 + b_1\text{size} + e \]
단순회귀모형: \(\text{avg math} = b_0 + b_1\text{size} + e\)
## (Intercept) classize
## 57.7939158 0.3174906
다중회귀모형: \(\text{avg math} = c_0 + c_1\text{size} + \color{#d90502}{c_2}\text{ \% disadvantaged} + e\)
## (Intercept) classize disadvantaged
## 69.94438332 0.07167819 -0.33957877
누락변수와 독립변수: \(\text{\% disadvantaged} = d_0 + \color{#d96502}{d_1}\text{size} + e\)
## (Intercept) classize
## 35.7809990 -0.7238744
따라서: \[b_1 = 0.317 = \underbrace{0.072}_{c_1} + \underbrace{(-0.34)}_{\color{#d90502}{c_2}} \times \underbrace{(-0.724)}_{\color{#d96502}{d_1}} = c_1 + OVB\]
\(R^2\) (결정 계수) 는 회귀 모델이 종속 변수(\(y\))의 변동을 얼마나 설명하는지 나타내는 지표.
하지만, 새로운 변수를 추가할 때마다 \(R^2\) 값은 항상 증가.
이를 보완하기 위해 수정된 \(R^2\) (Adjusted \(R^2\)) 개념이 도입
10:00 Task 2에서 필터링한 STAR 데이터를 사용하여 math를 school 변수에 대해 회귀 분석하시오. school 변수가 포함하는 값들을 먼저 확인. 회귀 계수를 해석하시오. 누락된 범주 (category)는? 결과가 예상과 일치하는가? 만약 다르다면 왜 그런가? 누락된 변수가 존재할 가능성이 있는가?
lunch 변수가 "free"인 학생들의 비율을 학교 위치(school) 별로 계산하시오. 결과를 보고, 무료 점심 자격 여부(free) 변수를 추가하여 이전 회귀 분석을 다시 수행하시오. free 변수를 추가했을 때 회귀 계수는 어떻게 변화하는가?
math를 star 변수에 대해 회귀 분석하시오. 다음의 모든 변수를 포함하여 다중 회귀 분석을 수행하시오:
math ~ star + gender + ethnicity + lunch + degree + experience + school. 무작위 실험이 잘 수행되었다고 판단할 수 있는가?
다중 회귀 분석에서 얻은 수정된 \(R^2\) 값을 확인하시오. 수정된 \(R^2\) 값이 의미하는 바는 무엇인가? 관측 가능한 개별 학생, 교사, 학교 특성이 학업 성취도에 미치는 중요성에 대해 어떤 결론을 내릴 수 있는가?
(Optional) math를 gender와 experience 변수에 대해 회귀 분석하시오. 회귀 계수를 어떻게 해석할 수 있는가? 이러한 회귀 분석 결과를 시각적으로 표현한다면 어떻게 보일 것인가?
✅ 데이터를 어떻게 다룰까? : 읽기(Read), 정리(Tidy), 시각화(Visualize)…
🚧 변수간 관계를 어떻게 요약할까? …단순 / 다중 선형 회귀…계속 학습
✅ 인과 관계(Causality)란 무엇인가?
❌ 전체 모집단을 관측하지 못하면 어떻게 할까?
❌ 우리의 연구 결과가 단순한 무작위(Randomness) 때문일 수도 있을까?
❌ 실제로 외생성을 어떻게 찾아낼 수 있을까?
THE END!