다층모형의 기초 – 회귀분석을 넘어 데이터의 ‘맥락’을 읽다

안녕하세요? 다층모형(Multilevel Modeling) 강의에 오신 여러분을 환영합니다. 저는 이번 다층모형 시리즈를 여러분과 함께 헤쳐나갈 WaurimaL입니다.

오늘 우리는 단순히 통계 공식을 외우는 것이 아니라, 왜 우리가 다층모형이라는 렌즈를 통해 세상을 봐야 하는지를 아주 기초적인 원리부터 다뤄보려 합니다. 초등학생도 이해할 수 있도록 쉬운 비유를 섞어가며, 하지만 대학원 수준의 깊이까지 놓치지 않고 설명해 드리겠습니다.

우리가 다룰 교재의 서론(Introduction) 부분을 바탕으로, 실제 학교 현장의 데이터를 가정한 실습까지 진행해 봅시다.


1. 서론: 우리는 왜 ‘다층’적인가?

여러분이 교육학 연구자라고 가정해 봅시다. 여러분은 “학생의 학습 동기가 학업 성취도에 미치는 영향”을 알고 싶습니다. 데이터를 모으기 위해 전국의 초등학교를 돌아다니며 설문조사를 했죠. 그런데 여기서 중요한 질문이 하나 생깁니다.

“서울 강남의 A 초등학교 학생들과 시골 분교의 B 초등학교 학생들이 완전히 똑같은 환경에 있을까요?”

당연히 아닙니다. 같은 학교, 같은 반 친구들은 담임 선생님의 지도 방식, 학교의 분위기, 급식의 맛(?)까지 공유합니다. 즉, 학생들은 독립적인 섬(Island)이 아니라, ‘학급’이나 ‘학교’라는 집단(Cluster) 안에 내재되어(Nested) 있습니다.

전통적인 통계 방법은 이 ‘내재구조’를 무시했습니다. 다층모형은 바로 이 맥락(Context)을 통계적으로 정교하게 모델링하기 위해 탄생했습니다.


2. 전통적 회귀분석의 한계: ‘모든 사람은 섬이다?’

가장 널리 쓰이는 통계 방법인 회귀분석(Regression Analysis)을 떠올려 봅시다.

기본 식은 다음과 같습니다.

yi=β0+β1x1i+ϵiy_{i} = \beta_{0} + \beta_{1}x_{1i} + \epsilon_{i}

여기서 ϵi\epsilon_{i}(오차항)는 평균이 0이고 분산이 σ2\sigma^{2}인 정규분포를 따른다고 가정합니다. 이 가정의 핵심은 “모든 데이터(ii)는 서로 독립적이다”라는 믿음입니다.

🚩 무엇이 문제인가요?

학교 데이터를 예로 들어봅시다.

  • 현실: 같은 반 학생들의 성적은 서로 비슷할 가능성이 높습니다(담임 선생님의 영향 등).
  • 문제: 이렇게 되면 오차들(ϵi\epsilon_{i})끼리 서로 상관관계(Correlation)를 가지게 되어, “오차는 독립적이어야 한다”는 회귀분석의 대전제가 깨집니다. 결과적으로 통계적 추정이 부정확해집니다.

3. ANOVA와 변량효과(Random Effects): 집단을 바라보는 두 가지 시선

이 문제를 해결하기 위해 우리는 집단을 어떻게 처리할지 고민해야 합니다.

(1) 고정효과(Fixed Effects) 모형: ANOVA의 접근

만약 우리가 “A반, B반, C반 딱 이 세 반만 비교하고 싶다”면, 각 반을 하나의 고유한 특성으로 보고 더미 변수(Dummy variable) 등을 이용해 분석합니다. 이를 일원분산분석(One-way ANOVA) 모형이라고 합니다.

yij=μ+αj+ϵijy_{ij} = \mu + \alpha_{j} + \epsilon_{ij}

  • yijy_{ij}: jj번째 반의 ii번째 학생 점수(또는 성취도)
  • αj\alpha_{j}: jj번째 반의 고유한 효과 (고정효과)

이 방법은 그 특정 반들에 대한 예측은 정확할지 몰라도(yj\bar{y}_j), 이 결과를 다른 학교나 반으로 일반화하기 어렵다는 단점이 있습니다.

(2) 변량효과(Random Effects) 모형: 다층모형의 시작

하지만 보통 연구자들은 “A반 그 자체”보다는 “일반적인 학급 간의 차이”에 관심이 많습니다. 즉, 우리가 뽑은 학급들이 전체 학급 모집단에서 무작위로 추출된 표본이라고 보는 것이죠.

yij=μ+uj+ϵijy_{ij} = \mu + u_{j} + \epsilon_{ij}

  • uju_{j}: jj번째 반의 효과. 하지만 이번엔 고정된 값이 아니라, 평균이 0이고 분산이 σu2\sigma_{u}^{2}인 확률변수입니다.

이 모형의 가장 큰 특징은 분산을 두 개로 쪼갠다는 점입니다.

  1. 집단 내 분산(σ2\sigma^{2}): 같은 반 학생들끼리의 성적 차이
  2. 집단 간 분산(σu2\sigma_{u}^{2}): 반 평균 성적끼리의 차이

(3) 급내상관계수(ICC)와 ‘정보 빌려오기’

여기서 아주 중요한 개념인 ICC(Intraclass Correlation, ρ\rho)가 등장합니다.

ρ=σu2σu2+σ2\rho = \frac{\sigma_{u}^{2}}{\sigma_{u}^{2} + \sigma^{2}}

  • 의미: 전체 성적 차이 중에서 “학교(반)가 달라서 생기는 차이”가 몇 %인가?를 나타냅니다.
  • 또한, 같은 반 학생 두 명을 뽑았을 때 그들의 성적이 얼마나 비슷할지를 나타내는 상관계수이기도 합니다.

💡 부분 풀링(Partial Pooling)의 마법

다층모형은 ‘부분 풀링(Partial Pooling)’ 전략을 씁니다.

  • 완전 풀링(Complete Pooling): 반 차이를 무시하고 전체 평균으로 퉁침.
  • 풀링 없음(No Pooling): 각 반을 완전히 별개로 보고 각 반 평균만 믿음.
  • 부분 풀링(다층모형): 표본이 적은 반의 결과는 전체 평균 쪽으로 살짝 당겨줍니다(Shrinkage). 즉, “데이터가 부족한 반은 다른 반들의 정보(Strength)를 좀 빌려와서 추정하자”는 아주 합리적인 타협안입니다.

4. 다층모형(Multilevel Model)의 완성

이제 위에서 본 회귀분석과 변량효과 모형을 합쳐봅시다. 이것이 바로 우리가 배울 임의 절편 모형(Random Intercept Model)입니다.

yij=β0+β1x1ij++u0j+ϵijy_{ij} = \beta_{0} + \beta_{1}x_{1ij} + \dots + u_{0j} + \epsilon_{ij}

  • β0+β1x1ij\beta_{0} + \beta_{1}x_{1ij}: 고정효과 부분 (일반 회귀식과 동일)
  • u0ju_{0j}: 임의 절편(Random Intercept). jj번째 학교가 전체 평균보다 얼마나 더 잘하거나 못하는지를 나타내는 그 학교만의 ‘고유한 특성’ (오차)
  • ϵij\epsilon_{ij}: 학생 개인의 오차

이 식은 “학생의 성적(yy)은 전체 평균적인 경향(β\beta)에다가, 그 학생이 속한 학교의 특성(uu)을 더하고, 학생 개인의 운이나 특성(ϵ\epsilon)을 더해서 결정된다”라고 해석할 수 있습니다.


5. 실습: jamovi를 활용한 다층분석 시뮬레이션

이제 이론을 바탕으로 가상의 데이터를 생성하고 직접 분석해 보겠습니다. jamovi는 R 기반의 무료 통계 소프트웨어로, 클릭만으로 다층모형을 쉽게 돌릴 수 있습니다.

(1) 가상의 시나리오: 수원시 초등학생 학업성취도 연구

  • 상황: 수원시에 있는 20개 초등학교를 대상으로, ‘사교육 시간(시간/주)’‘수학 성취도’에 미치는 영향을 연구합니다.
  • 가설: 사교육 시간이 길수록 성취도가 높을 것이다. 하지만 학교마다 기본 학력 수준(절편)은 다를 것이다.

(2) 데이터 생성 (R 코드)

jamovi에서 불러올 데이터를 생성하기 위해 R 코드를 작성해 드립니다. (이 코드는 실제 데이터와 매우 유사한 구조를 만듭니다.)

R

# R 코드: 다층모형 실습 데이터 생성
set.seed(2026) # 재현성을 위해 시드 설정

# 설정
n_schools <- 20    # 학교 수 (Level 2)
n_students <- 30   # 학교당 학생 수 (Level 1)
total_n <- n_schools * n_students

# 파라미터 (참값)
grand_intercept <- 50       # 전체 평균 수학 점수
slope_private_edu <- 3      # 사교육 시간 1시간 증가당 점수 상승분
sigma_u <- 10              # 학교 간 차이 (표준편차) -> 꽤 큼
sigma_e <- 5               # 학생 개인 오차 (표준편차)

# 데이터 생성
school_id <- rep(1:n_schools, each = n_students)
student_id <- 1:total_n

# 학교별 효과 (Random Intercept) 생성
u_j <- rnorm(n_schools, mean = 0, sd = sigma_u)
school_effect <- rep(u_j, each = n_students)

# 독립변수: 주당 사교육 시간 (0~10시간, 정규분포 + 약간의 학교별 차이 반영)
# 부촌 학교는 사교육 시간이 더 길 수 있으므로 학교 효과와 약간의 상관관계 부여
private_edu <- pmax(0, rnorm(total_n, mean = 4 + 0.1*school_effect, sd = 2))

# 종속변수: 수학 점수 생성 (다층모형 식 적용)
# Score = 50 + 3*Time + School_Effect + Error
math_score <- grand_intercept + slope_private_edu * private_edu + school_effect + rnorm(total_n, 0, sigma_e)

# 데이터프레임 생성
data <- data.frame(
  School = factor(school_id),
  Student = factor(student_id),
  Private_Edu = private_edu,
  Math_Score = math_score
)

# CSV 저장 (jamovi에서 불러오기 위함)
write.csv(data, "Suwon_Math_Study.csv", row.names = FALSE)

(위 코드를 실행하면 Suwon_Math_Study.csv 파일이 생성됩니다. 이 파일을 jamovi에서 엽니다.)

(3) jamovi 분석 가이드

자, 이제 생성된 데이터를 가지고 jamovi에서 분석하는 절차를 단계별로 설명합니다. 우리는 GAMLj 모듈(jamovi의 강력한 혼합모형 모듈)이나 기본 Linear Models를 사용할 수 있습니다. 여기서는 기본 내장된 기능을 기준으로 설명합니다.

단계 1: 기초 모형 (Null Model) – 학교 효과 확인하기

아무런 설명 변수 없이, 단지 “성적이 학교에 따라 얼마나 다른가?”만 확인합니다.

  1. 메뉴: Analyses > Linear Models > Mixed Model 선택
  2. 변수 설정:
    • Dependent Variable (종속변수): Math_Score
    • Cluster Variables (집단 변수): School
  3. 결과 확인 (Random Effects Table):
    • School (Intercept)의 분산(Variance)과 Residual (Error)의 분산을 확인합니다.
    • ICC 계산: jamovi 결과표 아래에 ICC가 자동으로 출력됩니다.
    • School 분산이 146.583, Residual 분산이 58.083이라면, ICC=146.583/(146.583+58.083)=0.716ICC = 146.583 / (146.583+58.083) = 0.716. 즉, 성적 차이의 71.6%는 학교 차이 때문입니다! (우리 시뮬레이션에서는 대략 0.8 정도로 높게 설정했습니다.)

단계 2: 임의 절편 모형 (Random Intercept Model)

이제 ‘사교육 시간’이 미치는 영향을 봅니다.

  1. Covariates (공변량): Private_Edu를 추가합니다.
  2. Fixed Effects (고정 효과): Private_Edu를 오른쪽으로 옮깁니다. (전체적인 사교육 효과를 보겠다는 뜻)
  3. Random Effects (변량 효과): Intercept | School이 기본으로 설정되어 있을 겁니다. 이는 “학교마다 출발점(평균 점수)은 다르다”는 것을 허용한다는 뜻입니다.

(4) 결과 해석 (가상)

효과 (Effect)추정치 (Estimate)의미
Intercept (절편)57.326사교육을 전혀 안 했을 때의 전체 평균 점수
Private_Edu (사교육)3.024사교육 시간이 1시간 늘 때마다 수학 점수가 약 3.024점 오름
Random Effect (School)Variance \approx 97.085학교 간 평균 점수 차이가 매우 큼

결론: 수원시 초등학생들의 수학 성취도에는 사교육 시간이 유의미한 긍정적 영향을 미칩니다(β3\beta \approx 3). 하지만, 학교 간의 편차(σu2\sigma_u^2)가 매우 크므로, 어떤 학교에 다니느냐가 성적에 큰 영향을 미치고 있음을 알 수 있습니다. 만약 일반 회귀분석을 했다면, 이 거대한 ‘학교 효과’를 무시하여 사교육의 효과를 과대/과소 추정하거나 유의성 검정에 오류가 있었을 것입니다.


6. 요약 및 다음 단계

오늘 우리는 왜 다층모형이 필요한지 배웠습니다.

  1. 데이터의 구조: 학생은 학교에, 환자는 병원에 ‘내재(Nested)’되어 있습니다.
  2. 독립성 위반: 이를 무시하면 통계적 오류가 발생합니다.
  3. 해결책: 변량효과(Random Effect)를 도입하여 집단 간 차이와 집단 내 차이를 분리하고, 더 정확한 추정을 합니다.

참고문헌 (References)

  • Aitkin, M., & Longford, N. (1986). Statistical modeling issues in school effectiveness studies. Journal of the Royal Statistical Society, Series A, 149, 1-43.
  • Chatterjee, S., & Simonoff, J. S. (2013). Handbook of regression analysis. Hoboken, NJ: John Wiley and Sons.
  • Gelman, A., & Hill, J. (2007). Data analysis using regression and multilevel/hierarchical models. Cambridge: Cambridge University Press.
  • Laird, N. M., & Ware, J. H. (1982). Random effects models for longitudinal data. Biometrics, 38, 963-974.
  • Raudenbush, S. W., & Bryk, A. S. (2002). Hierarchical linear models: Applications and data analysis methods (2nd ed.). Newbury Park, CA: Sage.
  • Simonoff, J. S., Scott, M. A., & Marx, B. D. (2013). The SAGE handbook of multilevel modeling. SAGE Publications.