태그 보관물: 일반화선형혼합모형

Chap15. 일반화 선형 혼합 모형

안녕하세요!

오늘은 일반화 선형 혼합 모형(Generalized Linear Mixed Models, GLMM)에 대해 살펴보겠습니다. “학교 현장의 데이터”를 예시로 들어 직관적인 설명과 수리적 엄밀함을 모두 갖춘 형태로 재구성해 드리겠습니다.

분석 도구로는 jamovi의 사용법을 설명하되, jamovi의 기반이 되는 R 코드를 함께 제시하여 모의 데이터 생성부터 분석, 시각화까지 완벽하게 구현해 드리겠습니다.


🎓 일반화 선형 혼합 모형(GLMM): 학교 밖으로 나간 수학 점수

반갑습니다. 오늘은 통계의 꽃이라 불리는 일반화 선형 혼합 모형(GLMM)에 대해 이야기해 보려 합니다. 이름만 들어도 머리가 지끈거릴 수 있지만, 사실 원리는 우리가 학교에서 겪는 일상과 매우 비슷합니다.

1. 왜 GLMM인가? (초등학생도 이해하는 비유)

여러분이 “우리 반 친구들이 이번 수학 시험에 합격할지 불합격할지(성공/실패)“를 맞히고 싶다고 상상해 봅시다.

  1. 일반적인 회귀분석(Linear Regression)은 “점수”처럼 연속적인 숫자를 예측할 때 씁니다. 하지만 우리는 “합격(1) 아니면 불합격(0)”인 두 가지 결과만 있습니다. 자로 키를 재는 게 아니라, 동전의 앞면/뒷면을 맞히는 것과 같죠. 이때 필요한 것이 ‘일반화(Generalized)’ 선형 모형입니다.
  2. 그런데 학생들은 ‘반(Class)’이라는 바구니에 담겨 있습니다. 어떤 반 선생님은 설명을 아주 잘해서 그 반 아이들이 전체적으로 합격률이 높을 수 있죠. 학생들끼리 서로 영향을 주고받는다는 뜻입니다. 이걸 무시하고 분석하면 엉터리 결과가 나옵니다. 그래서 ‘혼합(Mixed)’ 모형, 즉 다층 모형이 필요합니다.

이 둘을 합친 것이 바로 GLMM입니다. “결과가 0/1이거나 횟수(Count)이면서, 데이터가 집단(학교, 반)으로 묶여 있을 때” 사용하는 가장 강력한 도구죠.


2. 가상의 시나리오: “수학 챌린지 성공 예측 대작전”

우리의 목표는 다음과 같습니다.

  • 연구 문제: 학생의 자기효능감교사의 교수법(혁신적 vs 전통적)이 수학 챌린지 성공 여부(성공/실패)에 미치는 영향은 무엇인가?
  • 데이터 구조:
    • 1수준(학생): 자기효능감(Self_Efficacy), 챌린지 성공여부(Success, 0=실패, 1=성공)
    • 2수준(학급): 교수법(Teaching_Method, 0=전통적, 1=혁신적)
  • 특이사항: 성공 여부는 0과 1로 된 이분형 변수(Binary outcome)입니다.

3. R을 이용한 모의 데이터 생성 및 시각화

먼저, 실제 학교 현장과 유사한 데이터를 만들어 보겠습니다.

R

# 필요한 라이브러리 로드
library(lme4)
library(ggplot2)
library(dplyr)
library(sjPlot) # 시각화용

# 1. 데이터 생성 설정
set.seed(2025) # 재현성을 위한 시드 설정
n_classes <- 50      # 학급 수 (2수준)
n_students <- 30     # 학급당 학생 수 (1수준)
N <- n_classes * n_students

# 2. 2수준(학급) 변수 생성
class_id <- rep(1:n_classes, each = n_students)
# 교수법: 절반은 전통적(0), 절반은 혁신적(1)
teaching_method <- rep(rep(c(0, 1), each = n_classes/2), each = n_students)
# 학급 효과 (Random Intercept): 학급마다 기본 성공률이 다름
class_effect <- rep(rnorm(n_classes, mean = 0, sd = 1.5), each = n_students)

# 3. 1수준(학생) 변수 생성
# 자기효능감: 평균 0, 표준편차 1인 정규분포
self_efficacy <- rnorm(N, mean = 0, sd = 1)

# 4. 성공 확률 계산 (로지스틱 모형)
# Logit(p) = b0 + b1*효능감 + b2*교수법 + 학급효과 + 오차
beta_0 <- -1.0  # 절편 (기본적으로 성공이 조금 더 어려움)
beta_1 <- 1.2   # 자기효능감의 효과 (클수록 성공 확률 높음)
beta_2 <- 0.8   # 혁신적 교수법의 효과 (있으면 성공 확률 높음)

logit_p <- beta_0 + beta_1 * self_efficacy + beta_2 * teaching_method + class_effect
prob <- 1 / (1 + exp(-logit_p)) # 확률로 변환

# 5. 결과 변수 생성 (0 또는 1)
success <- rbinom(N, size = 1, prob = prob)

# 데이터프레임 생성
data <- data.frame(
  ClassID = factor(class_id),
  StudentID = 1:N,
  Success = factor(success, levels = c(0, 1), labels = c("Fail", "Pass")),
  SelfEfficacy = self_efficacy,
  TeachingMethod = factor(teaching_method, levels = c(0, 1), labels = c("Traditional", "Innovative"))
)

# 데이터 확인
head(data)

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

📊 데이터 탐색적 시각화

데이터가 잘 만들어졌는지 그래프로 확인해 봅시다.

R

# 자기효능감에 따른 성공 여부 (교수법별 차이)
ggplot(data, aes(x = SelfEfficacy, y = as.numeric(Success)-1, color = TeachingMethod)) +
  geom_point(alpha = 0.1) +
  geom_smooth(method = "glm", method.args = list(family = "binomial"), se = TRUE) +
  labs(title = "자기효능감과 수학 챌린지 성공 확률",
       x = "자기효능감 (표준화)",
       y = "성공 확률 (Probability of Pass)") +
  theme_minimal()

4. 분석 방법: jamovi와 R

🛠️ jamovi 분석 절차

jamovi는 기본 메뉴만으로는 GLMM(특히 이분형 종속변수)을 분석하기 어렵습니다. 따라서 jamovi 라이브러리에서 GAMLj (General Analyses for Linear Models in jamovi) 모듈을 설치하여 사용해야 합니다.

  1. 데이터 불러오기: 위에서 생성한 데이터를 csv로 저장 후 jamovi에서 엽니다.
  2. 모듈 선택: 상단 메뉴 Analyses -> GAMLj -> Generalized Mixed Models 선택.
  3. 변수 설정:
    • Dependent Variable: Success (성공 여부)
    • Covariates: SelfEfficacy (자기효능감)
    • Factors: TeachingMethod (교수법)
    • Cluster (Random Effect grouping): ClassID
  4. Random Effects 설정:
    • ClassID를 Random Intercept로 설정 (체크박스 선택).
  5. Family 설정:
    • Distribution: Binomial (이항분포)
    • Link function: Logit (로짓)
  6. 결과 해석: Fixed Effects의 p-value와 Random Effects의 분산(Variance)을 확인합니다.

💻 R 분석 코드 (GLMM 적합)

jamovi 내부에서 돌아가는 엔진과 동일한 lme4 패키지를 사용한 분석 코드입니다.

R

# GLMM 모델 적합
# family = binomial : 종속변수가 이분형(0/1)일 때 사용
glmm_model <- glmer(Success ~ SelfEfficacy + TeachingMethod + (1 | ClassID), 
                    data = data, 
                    family = binomial(link = "logit"))

# 결과 요약
summary(glmm_model)

5. 교재 내용의 심층 재구성: 이론과 해석

이제 첨부된 교재(SAGE Handbook)의 핵심 내용을 바탕으로 우리가 수행한 분석을 이론적으로 파헤쳐 보겠습니다.

5.1. 모형의 구조 (Specification)

GLMM은 4단계로 구성됩니다.

  1. 분포 선택: 종속변수 YY가 어떤 모양인지 결정합니다. 우리 예시는 성공/실패이므로 베르누이(Bernoulli) 분포를 따릅니다.
  2. 예측변수 선택: 자기효능감(x1x_1)과 교수법(x2x_2)을 포함합니다. 선형 예측식은 η=β0+β1x1+β2x2\eta = \beta_0 + \beta_1 x_1 + \beta_2 x_2가 됩니다.
  3. 연결 함수(Link Function): 0과 1 사이의 확률(pp)을 실수 전체 범위(-\infty \sim \infty)인 선형 예측식(η\eta)과 연결해야 합니다. 이때 로짓(Logit) 함수를 사용합니다. log(p1p)=β0+β1x1+β2x2+uclass\log\left(\frac{p}{1-p}\right) = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + u_{class}
  4. 임의 효과(Random Effects): 학급(uclassu_{class})을 임의 효과로 선언합니다. 이는 학급마다 성공률의 ‘출발선’이 다름을 의미하며, 정규분포 N(0,σu2)N(0, \sigma_u^2)를 따른다고 가정합니다.

5.2. 추정 방법: 산을 오르는 법 (Fitting Methods)

GLMM에서 가장 어려운 점은 “계산”입니다. 일반적인 회귀분석처럼 공식을 딱 대입해서 답이 나오지 않습니다. 우도(Likelihood)라는 산의 정상을 찾아야 하는데, 그 과정에 안개(적분)가 껴 있습니다.

  • 최우추정법(Maximum Likelihood, ML): 가장 이상적이지만, 계산이 매우 복잡하여 적분(Integration)이 필요합니다.
  • 근사법: 이 적분을 해결하기 위해 가우스-헤르미트 구적법(Gauss-Hermite Quadrature)이나 라플라스 근사(Laplace Approximation)를 사용합니다. 이는 복잡한 곡면을 단순한 도형으로 근사시켜 넓이를 구하는 방식과 비슷합니다. jamovi와 R의 glmer는 기본적으로 이 방법을 사용합니다.
  • 경고: PQL(Penalized Quasi-Likelihood)이라는 방법도 있지만, 이분형 데이터(0/1)에서는 편향(Bias)이 심해 잘 쓰지 않습니다.

5.3. 조건부 vs 주변부 해석 (Conditional vs Marginal)

이 부분이 아주 중요합니다. GLMM의 결과(β\beta)는 “특정 학급에 속한 학생 개인”에 대한 효과입니다(Conditional).

  • GLMM (조건부): “내가 이 반에 계속 있으면서 자기효능감이 1 오르면, 나의 성공 오즈(Odds)는 얼마나 오르는가?”
  • GEE (주변부): “전체 학생 평균적으로 봤을 때, 자기효능감이 높은 집단은 낮은 집단보다 성공률이 얼마나 높은가?”

일반적으로 로지스틱 모형에서는 조건부 효과가 주변부 효과보다 값이 더 크게(0에서 멀어지게) 추정됩니다. 우리는 학생 개인의 변화와 학급 효과에 관심이 있으므로 GLMM이 적합합니다.


6. 분석 결과 해석 및 보고 (APA 스타일)

R/jamovi 분석 결과를 바탕으로 보고서를 작성하는 예시입니다.

📝 결과 요약

“수학 챌린지 성공 여부에 대한 일반화 선형 혼합 모형(GLMM) 분석 결과, 자기효능감과 교수법은 통계적으로 유의한 영향을 미치는 것으로 나타났다.”

  • 고정 효과(Fixed Effects):
    • 자기효능감의 회귀계수는 1.370 (SE=0.091,p<.001SE=0.091, p<.001)로, 학생의 자기효능감이 높을수록 성공 확률이 유의하게 증가하였다. 오즈비(Odds Ratio)로 환산하면 exp(1.37)3.93exp(1.37) \approx 3.93로, 자기효능감이 1단위 증가할 때 성공 오즈는 약 3.9배 증가한다.
    • 교수법(혁신적)의 효과는 0.227 (SE=0.529,p=.667SE=0.529, p=.667)로, 혁신적 교수법을 사용하는 학급의 학생이 전통적 교수법 학급 학생보다 성공할 확률은 통계적으로 유의미하지 않았다.
  • 임의 효과(Random Effects):
    • 학급 수준의 분산(Variance)은 3.221로 나타났다. 이는 학생의 개인 특성을 통제하고도 학급 간 성공률의 차이가 상당히 큼을 의미한다. 이를 통해 급내상관계수(ICC)를 계산하여 학급의 영향력을 보고할 수 있다.

📈 R을 이용한 결과 시각화 코드

R

# sjPlot 패키지를 이용한 깔끔한 시각화
library(sjPlot)
library(sjmisc)

# 1. 오즈비(Odds Ratio) 그래프 (Forest Plot)
plot_model(glmm_model, 
           type = "est", 
           transform = "exp", # 로그오즈를 오즈비로 변환
           show.values = TRUE, 
           title = "수학 챌린지 성공 요인 (Odds Ratios)",
           vline.color = "gray")

# 2. 예측 확률 그래프 (상호작용 효과 등 확인용)
plot_model(glmm_model, 
           type = "pred", 
           terms = c("SelfEfficacy", "TeachingMethod"),
           title = "자기효능감과 교수법에 따른 성공 예측 확률")

7. 마무리 및 진단

GLMM을 사용할 때는 모델이 데이터에 잘 맞는지 꼭 확인해야 합니다. 특히 “과산포(Overdispersion)” 문제를 조심해야 합니다. 이는 우리가 가정한 것보다 데이터가 더 넓게 퍼져 있는 현상을 말하는데, 이항 분포나 포아송 분포 분석 시 자주 발생합니다. 만약 과산포가 의심되면 분포를 바꾸거나 관측 단위의 임의 효과를 추가하는 등의 조치가 필요합니다.

오늘 우리는 난이도가 높은 GLMM을 학교 현장 예시를 통해 정복해 보았습니다. 이 분석을 통해 여러분은 단순히 “누가 공부 잘하나”를 넘어, “어떤 환경(학급)에서 어떤 특성(효능감)이 성공을 이끄는지” 입체적으로 볼 수 있는 눈을 갖게 되었습니다.

참고문헌 (APA Style)

McCulloch, C. E., & Neuhaus, J. M. (2013). Generalized linear mixed models: Estimation and inference. In M. A. Scott, J. S. Simonoff, & B. D. Marx (Eds.), The SAGE handbook of multilevel modeling (pp. 271-286). SAGE Publications.

Chap08. 일반화 선형 혼합 모형

안녕하세요!

오늘은 일반화 선형 혼합 모형(Generalized Linear Mixed Models, GLMM)에 대해 살펴보겠습니다. “학교 현장의 데이터”를 예시로 들어 직관적인 설명과 수리적 엄밀함을 모두 갖춘 형태로 재구성해 드리겠습니다.

분석 도구로는 jamovi의 사용법(GAMLj 모듈 활용)을 설명하되, jamovi의 기반이 되는 R 코드를 함께 제시하여 모의 데이터 생성부터 분석, 시각화까지 완벽하게 구현해 드리겠습니다.


1. 서론: 왜 ‘일반화’인가요?

우리가 지금까지 배운 ‘선형 혼합 모형(LMM)’은 데이터가 정규분포(Normal Distribution)를 따른다고 가정했습니다. 예를 들어, 학생들의 ‘키’, ‘국어 점수’, ‘지능 지수’ 같은 연속형 변수들이죠.

하지만 학교 현장의 데이터가 항상 예쁜 종 모양(정규분포)을 그릴까요? 다음의 예를 봅시다.

[상황 A] 선생님이 한 학기 동안 학생이 과제를 제출했는지(1), 안 했는지(0)를 매주 기록합니다. (이항 데이터, Binary)

[상황 B] 상담 선생님이 학급 내에서 발생하는 ‘따돌림 행동 횟수’를 관찰합니다. 0회, 1회, 2회… (카운트 데이터, Count)

이런 데이터는 정규분포를 따르지 않습니다.

  • 상황 A이항분포(Binomial Distribution)를 따르며, 결과가 0 아니면 1로 딱 떨어집니다.
  • 상황 B포아송분포(Poisson Distribution)를 따르며, 음수(-)가 나올 수 없고 오른쪽으로 긴 꼬리를 가질 확률이 높습니다.

이처럼 정규분포가 아닌 종속변수를 다루면서, 동시에 반복측정이나 학급 내 학생처럼 데이터가 위계적(Hierarchical)일 때 사용하는 분석 방법이 바로 일반화 선형 혼합 모형(GLMM)입니다.


2. 모형의 구조: 연결 고리 만들기 (Link Function)

일반적인 선형 회귀식은 Y=Xβ+eY = X\beta + e 형태입니다. 하지만 결과값 YY가 0과 1 사이의 확률(시험 통과 여부)이어야 하는데, 우변의 XβX\beta-\infty에서 ++\infty까지 값을 가진다면 말이 안 되겠죠?

그래서 우리는 연결 함수(Link Function)라는 특수한 장치를 사용합니다.

(1) 로지스틱 혼합 모형 (Binary Data)

시험 통과 여부(Pass/Fail)와 같은 이항 데이터를 분석할 때는 로짓(Logit) 연결 함수를 씁니다.

ln(Pij1Pij)=β0+β1Timeij+ui0\ln\left(\frac{P_{ij}}{1-P_{ij}}\right) = \beta_0 + \beta_1 Time_{ij} + u_{i0}

여기서 ui0u_{i0}는 학생 ii 고유의 능력(Random Intercept)을 의미합니다.

(2) 포아송 혼합 모형 (Count Data)

행동 빈도와 같은 가산 데이터를 분석할 때는 로그(Log) 연결 함수를 씁니다.

ln(λij)=β0+β1Timeij+ui0\ln(\lambda_{ij}) = \beta_0 + \beta_1 Time_{ij} + u_{i0}

여기서 λij\lambda_{ij}는 해당 시점에서의 평균 발생 횟수입니다.


3. 실습 1: 이항 결과변수 (Binary Outcome) 분석

시나리오: “기초학력 평가 통과 여부 추적”

어느 교육청에서 방과 후 보충수업 프로그램이 학생들의 기초학력 평가 통과(Pass=1, Fail=0)에 미치는 영향을 알아보기 위해, 100명의 학생을 대상으로 4학기 동안 추적 조사를 했습니다.

  • 집단: 실험군(보충수업 O), 대조군(보충수업 X)
  • 종속변수: 평가 통과 여부 (0, 1)

[Step 1] R을 이용한 모의 데이터 생성

Jamovi의 Rj Editor나 R Studio에서 다음 코드를 실행하여 데이터를 생성합니다.

R

set.seed(1234)
n_subjects <- 100 # 학생 수
n_timepoints <- 4 # 4학기 측정

# 데이터 프레임 생성
data_binary <- data.frame(
  student_id = rep(1:n_subjects, each = n_timepoints),
  time = rep(0:3, n_subjects), # 0(기초선) ~ 3학기
  group = rep(sample(c("Control", "Treatment"), n_subjects, replace = T), each = n_timepoints)
)

# 랜덤 효과 (학생 고유의 기초 학력 수준)
random_intercept <- rep(rnorm(n_subjects, mean = 0, sd = 1.5), each = n_timepoints)

# 고정 효과 설정
# Intercept: -1 (초기엔 통과 확률 낮음)
# Time: 0.2 (시간이 지날수록 조금씩 향상)
# GroupTreatment: 0.5 (실험군이 조금 더 높음)
# Time*Group: 0.4 (실험군의 향상 속도가 더 빠름)
logit_p <- -1 + 0.2 * data_binary$time + 
           0.5 * (data_binary$group == "Treatment") + 
           0.4 * data_binary$time * (data_binary$group == "Treatment") + 
           random_intercept

# 확률 계산 및 이항 데이터 생성
prob <- exp(logit_p) / (1 + exp(logit_p))
data_binary$pass <- rbinom(n = nrow(data_binary), size = 1, prob = prob)

head(data_binary)

[Step 2] Jamovi 분석 절차 (GAMLj 모듈)

Jamovi에서 GLMM을 분석하기 위해서는 GAMLj 모듈 설치가 필요합니다. (Jamovi Library -> GAMLj 추가)

  1. Analyses 탭 클릭 > GAMLj > Generalized Mixed Models 선택
  2. Dependent Variable: pass (통과 여부)
  3. Random Effect Grouping Factors: student_id
  4. Covariates: time
  5. Factors: group
  6. Model Definition:
    • Distribution: Binomial
    • Link Function: Logit
    • Fixed Effects: time, group, time * group (상호작용항)
    • Random Effects: student_id (Intercept 체크)

[Step 3] 결과 해석 및 시각화

분석 결과, 상호작용항(time * group)이 유의하다면 보충수업 집단이 대조군보다 시간이 지날수록 통과 확률이 더 가파르게 증가한다고 해석할 수 있습니다.

이때 주의할 점은 계수(β\beta)가 ‘확률’ 그 자체가 아니라 로그 오즈(Log Odds)의 변화량이라는 점입니다.


4. 실습 2: 가산 결과변수 (Count Outcome) 분석

시나리오: “수업 중 질문 횟수 변화”

토론식 수업(실험군)이 학생들의 자발적 질문 횟수를 늘리는지 확인하기 위해 10주간 데이터를 수집했습니다.

  • 데이터 특성: 질문 횟수는 0 이상의 정수이며, 대부분 적은 횟수에 몰려 있음 (포아송 분포 가정).

[Step 1] R을 이용한 모의 데이터 생성

R

set.seed(5678)
# 데이터 프레임 생성 (구조는 위와 동일)
data_count <- data.frame(
  student_id = rep(1:n_subjects, each = n_timepoints),
  time = rep(0:3, n_subjects),
  group = rep(sample(c("Lecture", "Discussion"), n_subjects, replace = T), each = n_timepoints)
)

# 랜덤 효과 (학생의 적극성)
random_intercept_c <- rep(rnorm(n_subjects, mean = 0, sd = 0.5), each = n_timepoints)

# 고정 효과 (로그 스케일)
# Discussion 그룹이 시간이 지날수록 질문이 급격히 늘어나도록 설정
log_lambda <- 0.5 + 0.1 * data_count$time + 
              0.2 * (data_count$group == "Discussion") + 
              0.3 * data_count$time * (data_count$group == "Discussion") + 
              random_intercept_c

# 포아송 데이터 생성
data_count$questions <- rpois(n = nrow(data_count), lambda = exp(log_lambda))

head(data_count)

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

[Step 2] Jamovi 분석 절차

  1. GAMLj > Generalized Mixed Models
  2. Dependent Variable: questions
  3. Model Definition:
    • Distribution: Poisson
    • Link Function: Log
    • 나머지 설정은 위와 동일.

5. 심화 분석: “개별 학생” vs “전체 평균”의 함정

GLMM에서 가장 중요한 개념이자 학생들이 가장 많이 헷갈리는 부분입니다.

“개별 학생들의 성장 곡선을 평균 낸 것”“전체 집단의 평균 성장 곡선”이 같을까요?

  • 선형 혼합 모형(LMM): 같습니다. (βRE=βM\beta^{RE} = \beta^M)
  • 일반화 선형 혼합 모형(GLMM): 다릅니다! (βREβM\beta^{RE} \neq \beta^M)

왜 다를까요?

비선형 함수(S자 곡선인 로지스틱 등)를 통과하기 때문입니다.

수식으로 보면 다음과 같은 관계가 성립합니다.

E(y)exp(Xβ)1+exp(Xβ)E(y) \neq \frac{\exp(X\beta)}{1+\exp(X\beta)}

오히려, 주변(Marginal) 효과는 개별(Subject-specific) 효과보다 절댓값이 작게(완만하게) 나타납니다.

R로 시각화하여 이해하기

이 차이를 눈으로 확인해 봅시다. 개별 학생들의 곡선(회색)과 그 평균(빨간색, 파란색)을 그려보겠습니다.

R

# 시각화 코드
library(ggplot2)

# 예측값 생성 (개별 효과 포함)
# *주의: 실제 GLMM 예측은 복잡하지만, 여기서는 개념 설명을 위해 단순화하여 시각화합니다.
data_binary$pred_prob <- predict(glm(pass ~ time * group, data=data_binary, family=binomial), type="response") 

# 그래프 그리기
ggplot(data_binary, aes(x = time, y = pred_prob, group = student_id)) +
  # 개별 학생들의 성장 곡선 (회색, 얇게)
  geom_line(alpha = 0.2, color = "gray") + 
  
  # 집단 평균 성장 곡선 (색상, 굵게)
  # *변경사항: size = 1.5 -> linewidth = 1.5
  stat_summary(aes(group = group, color = group), fun = mean, geom = "line", linewidth = 1.5) + 
  
  # 라벨 및 테마 설정
  labs(title = "개별 학생 성장 곡선(회색) vs 집단 평균 곡선(색상)",
       y = "통과 확률 (Probability)", x = "시간 (학기)") +
  theme_minimal()


6. 결론

일반화 선형 혼합 모형(GLMM)은 현실 세계의 복잡한 데이터(O/X, 횟수 등)를 통계적으로 엄밀하게 다룰 수 있는 강력한 도구입니다.

  1. 데이터가 정규분포가 아닐 때(이항, 포아송 등) 사용합니다.
  2. 연결 함수(Link Function)를 통해 선형 예측식과 결과를 연결합니다.
  3. 개별 대상(Subject-specific)의 변화에 초점을 맞추므로, 전체 평균(Population-averaged) 해석 시 주의가 필요합니다.

학교 현장에서 “우리 반 아이들의 숙제 제출 여부”나 “문제 행동 횟수”를 종단적으로 연구하고 싶다면, GLMM이 가장 적합한 친구가 되어줄 것입니다.


참고문헌

  • Breslow, N. E., & Clayton, D. G. (1993). Approximate inference in generalized linear mixed models. Journal of the American Statistical Association, 88(421), 9-25.
  • Diggle, P. J., Heagerty, P., Liang, K. Y., & Zeger, S. L. (2002). Analysis of longitudinal data (2nd ed.). Oxford University Press.
  • Faught, E., Wilder, B. J., Ramsay, R. E., Reife, R. A., Kramer, L. D., Pledger, G. W., & Karim, R. M. (1996). Topiramate placebo-controlled dose-ranging trial in refractory partial epilepsy using 200-, 400-, and 600-mg daily dosages. Neurology, 46(6), 1684-1690.
  • Liang, K. Y., & Zeger, S. L. (1986). Longitudinal data analysis using generalized linear models. Biometrika, 73(1), 13-22.
  • Molenberghs, G., & Verbeke, G. (2005). Models for discrete longitudinal data. Springer.
  • Verbeke, G., & Molenberghs, G. (2000). Linear mixed models for longitudinal data. Springer.
  • Verbeke, G., & Molenberghs, G. (n.d.). Generalized Linear Mixed Models – Overview. In The SAGE Handbook of Multilevel Modeling (Chapter 8).