Chap18. 페널티 스플라인(Penalized Splines)과 다층모형

안녕하세요!

오늘은 패널 데이터 분석을 위한 페널티 스플라인(Penalized Splines)과 다층 모형의 결합에 대해 살펴보겠습니다. “학교 현장의 데이터”를 예시로 들어 직관적인 설명과 수리적 엄밀함을 모두 갖춘 형태로 재구성해 드리겠습니다.

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


1. 들어가며: 왜 ‘스플라인’이 필요한가요?

우리가 학교에서 학생들의 성장을 관찰하다 보면, 학습 시간과 성적의 관계가 항상 곧은 직선(선형)으로 나타나지 않는다는 것을 알게 됩니다.

  • 선형 모델의 한계: “공부 시간이 늘어날수록 성적도 일정하게 오른다”고 가정합니다.
  • 비선형의 현실: 처음에는 성적이 확 오르다가, 어느 정도 수준에 도달하면 정체기(plateau)가 오고, 너무 과도한 학습은 오히려 효율을 떨어뜨리기도 합니다.

이처럼 구불구불한 관계를 수식으로 나타낼 때 유용한 것이 바로 스플라인(Splines)입니다. 특히 데이터의 ‘꿈틀거림(wiggliness)’을 적절히 조절해주는 페널티 스플라인(Penalized Splines)은 복잡한 데이터 구조에서도 매우 안정적인 결과를 보여줍니다.


2. 시나리오: “학생들의 자기주도학습 시간과 학업 성취도”

우리는 서울시 소재 50개 초등학교에서 5학년 학생 1,000명을 대상으로 3년간 추적 조사를 했다고 가정해 봅시다.

  • 연구 질문: “자기주도학습 시간(Experience)이 늘어남에 따라 국어 성적(Score)은 어떻게 변화하는가? 학생 개인별로 성적의 기초선(Intercept)은 다른가?”

모의 데이터 생성 (R 코드)

실제 분석을 위해 학교 현장과 유사한 데이터를 생성해 보겠습니다.

R

# 필요한 라이브러리 로드
library(mgcv)
library(ggplot2)

set.seed(2026)
n_students <- 200 # 학생 수
obs_per_student <- 5 # 학생당 측정 횟수
total_obs <- n_students * obs_per_student

# 학생 ID 및 학교 배경 생성
student_id <- rep(1:n_students, each = obs_per_student)
# 학습 시간 (0~20시간)
study_time <- runif(total_obs, 0, 20)

# 다층 모형 성분: 학생별 랜덤 효과 (기초 실력 차이)
u_i <- rnorm(n_students, 0, 5) 
student_effect <- rep(u_i, each = obs_per_student)

# 비선형 함수: m(x) - 처음엔 상승하다가 완만해지는 곡선
m_x <- 10 * sin(study_time / 5) + 2 * study_time

# 성적 생성 (절편 + 비선형 곡선 + 학생별 차이 + 오차)
score <- 50 + m_x + student_effect + rnorm(total_obs, 0, 3)

# 데이터 프레임 구축
df <- data.frame(student_id = factor(student_id), study_time, score)

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

3. 이론적 배경: 다층 페널티 스플라인

이 모델의 핵심은 우리가 흔히 아는 다층 모형(HLM)의 회귀 계수 자리에 ‘함수’를 집어넣는 것입니다.

수리적 모델

yit=β0i+m(xit)+ϵity_{it} = \beta_{0i} + m(x_{it}) + \epsilon_{it}

β0i=β0+ui\beta_{0i} = \beta_{0} + u_{i}

  • yity_{it}: ii번째 학생의 tt시점 성적.
  • β0i\beta_{0i}: 학생 ii의 개인적인 성적 수준(랜덤 절편).
  • m(xit)m(x_{it}): 학습 시간에 따른 공통적인 성적 변화 곡선(비선형 함수).
  • uiN(0,σu2)u_{i} \sim N(0, \sigma_u^2): 학생들 간의 편차.

여기서 m(x)m(x)기저 함수(basis functions)들의 합으로 표현됩니다. 마치 레고 블록을 조합해 곡선을 만드는 것과 같습니다. 이때 너무 복잡한 곡선이 되지 않도록 페널티(λ\lambda)를 주어 부드럽게 만듭니다.


4. jamovi 및 R을 이용한 분석 실습

1) jamovi 활용법

‘Rj’ 모듈 사용

  1. 모듈 설치: jamovi 라이브러리에서 Rj – Editor to run R code inside jamovi를 설치합니다.
  2. Rj Editor 실행: 분석 메뉴에서 Rj 아이콘을 클릭합니다.
  3. 코드 입력: 아래 코드를 복사해서 붙여넣고 실행(삼각형 버튼)합니다.
# jamovi의 현재 데이터를 'data'라는 이름으로 가져옵니다.
# 'score'는 성적, 'study_time'은 학습시간, 'student_id'는 학생번호입니다.

library(mgcv)

# 다층 GAM 모델 (페널티 스플라인 + 랜덤 절편)
# s(study_time)이 페널티 스플라인을 의미합니다.
model <- gam(score ~ s(study_time) + s(student_id, bs="re"), 
             data = data, 
             method = "REML")

# 결과 출력
summary(model)

# 그래프 그리기
plot(model, pages=1, shade=TRUE, main="학습 시간에 따른 성적 변화 곡선")

2) R (gamm4) 활용법

본문에서 추천하는 방식은 gamm4 패키지를 사용하는 것입니다. 이는 혼합 모형의 안정성과 스플라인의 유연성을 동시에 확보합니다.

R

# GAMM 모델 적합
library(gamm4)
model <- gamm4(score ~ s(study_time), random = ~(1|student_id), data = df)

# 결과 확인
summary(model$gam) # 비선형 부분 확인
summary(model$mer) # 다층 모형(랜덤 효과) 부분 확인

5. 결과 해석 및 시각화

분석 결과, 우리는 다음과 같은 사실을 발견할 수 있습니다.

  • 분산 성분: 학생 간 편차(σ^u\hat{\sigma}_u)가 잔차(σ^ϵ\hat{\sigma}_\epsilon)보다 크다면, 학생의 개인적 배경이 성적에 큰 영향을 미치고 있음을 의미합니다.
  • 곡선의 형태: 학습 초기에는 성적이 급격히 상승하지만, 특정 시간(예: 15시간) 이후에는 상승 폭이 줄어드는 ‘수확 체감’의 형태를 보일 수 있습니다.

다층 모형의 장점

단순한 곡선 회귀와 달리, 이 모델은 반복 측정된 데이터의 상관관계를 고려합니다. 즉, ‘철수’가 첫 번째 시험에서 잘 봤다면 두 번째 시험에서도 잘 볼 가능성이 높다는 점을 모델이 인지하고 분석하므로 훨씬 정확합니다.


6. 결론 및 교육적 시사점

페널티 스플라인 다층 모형은 학교 현장의 복잡한 데이터를 분석하는 데 강력한 도구입니다.

  1. 개별화된 교육 과정: 학생 개개인의 기초선이 다르다는 것을 인정하면서도(uiu_i), 보편적인 성장의 패턴(m(x)m(x))을 찾아낼 수 있습니다.
  2. 적정 지점의 발견: 성적이 정체되는 시점을 시각적으로 확인하여 교육적 개입의 시기를 결정할 수 있습니다.

7. 참고문헌 (APA Style)

  • Becker, G. S. (1993). Human capital: A theoretical and empirical analysis, with special reference to education (3rd ed.). University of Chicago Press.
  • Eilers, P. H. C., & Marx, B. D. (1996). Flexible smoothing with B-splines and penalties. Statistical Science, 11(2), 89–121.
  • Kauermann, G., & Kuhlenkasper, T. (2011). Penalized splines and multilevel models. In J. J. Hox & J. K. Roberts (Eds.), The SAGE Handbook of Multilevel Modeling (pp. 325–333). SAGE Publications.
  • Ruppert, D., Wand, M. P., & Carroll, R. J. (2009). Semiparametric regression during 2003–2007. Electronic Journal of Statistics, 3, 1193–1256.
  • Wood, S. N. (2006). Generalized additive models: An introduction with R. Chapman & Hall/CRC.