Chap32. 시장 조사와 선호도 자료(Market Research and Preference Data)


안녕하세요!

오늘은 다층분석(Multilevel Analysis)을 활용한 선호도 및 상호작용 데이터 분석에 대해 살펴보겠습니다. “학교 현장의 데이터”를 예시로 들어 직관적인 설명과 수리적 엄밀함을 모두 갖춘 형태로 재구성해 드리겠습니다.

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


1. 다층 데이터(Nested Data)란 무엇일까요? 🪆

초등학생 친구들에게 러시아의 전통 인형 ‘마트료시카(큰 인형 안에 작은 인형이 계속 들어있는 장난감)’를 보여주며 다층 데이터를 설명하곤 합니다. 교육 현장의 데이터는 대부분 이 마트료시카처럼 ‘내포된(Nested)’ 구조를 가집니다. 예를 들어, 여러 번의 시험 점수(반복 측정)는 한 명의 ‘학생’ 안에 쏙 들어가 있고 , 그 학생들은 다시 하나의 ‘학급’ 안에 들어가 있죠.

이러한 데이터 구조에서는 같은 반 친구들끼리, 혹은 한 학생이 낸 여러 답변끼리 서로 영향을 주고받아 독립성 가정이 깨지게 됩니다. 이를 무시하고 일반적인 회귀분석(OLS)이나 분산분석을 하면, 1종 오류(Type I error)가 크게 나타나고 잘못된 결과를 얻게 됩니다.

얼마나 내포되어 있는지 어떻게 알까요? (ICC)

이때 확인하는 것이 급내상관계수(Intraclass Correlation Coefficient, ICC)입니다. 전체 데이터의 변동 중에서 ‘집단 간의 차이’가 차지하는 비율을 의미합니다. 수식으로는 다음과 같이 표현됩니다.

ICC=δα2δα2+δϵ2ICC = \frac{\delta_{\alpha}^{2}}{\delta_{\alpha}^{2}+\delta_{\epsilon}^{2}}

보통 ICC 값이 0.05에서 0.2 사이이거나, 설계효과(Design effect, deff)가 2 이상이면 다층분석을 도입하여 집단 간 변량(수식에서 분자에 해당)을 분리해야 합니다.

샘플 사이즈는 어느 정도가 적당할까요?

다층분석은 일반 분석보다 더 많은 샘플을 필요로 합니다.

  • 기본 규칙 (30/30 법칙): 최소 30개의 집단이 있어야 하고, 각 집단 안에는 최소 30개의 관측치가 있어야 합니다.
  • 수준 간 상호작용 분석 시 (50/20 법칙): 더 엄격하게 50개 집단, 각 집단당 20명 이상이 권장됩니다.
  • 무선 효과(Random effects) 분석 시 (100/10 법칙): 100개 집단과 각 집단당 10명이 권장되기도 합니다.

2. 교육 선호도 분석에서의 다층모형 (Multilevel Preference Models) 📊

교육학에서 새로운 교재나 프로그램을 개발할 때, 학생들의 선호도를 측정하는 것은 매우 중요합니다. 마케팅 분야에서 상품 개발 시 널리 쓰이는 ‘컨조인트 분석(Conjoint Analysis)’이나 이산선택모형을 다층모형으로 재구성할 수 있습니다.

  • 1수준 (Within-level): 개별 학생 안에서 측정된 반복 측정치입니다. 예를 들어, 하나의 교육 프로그램이 가진 속성(비용, 접근성, 복잡성 등)에 대한 여러 번의 평가가 여기에 해당합니다.
  • 2수준 (Between-level): 학생 개인의 특성입니다. 예를 들어, 학생의 성별, 연령, 혹은 사전 학습 동기 수준 등이 선호도 평균(절편)에 어떤 영향을 미치는지 설명합니다.

Muthén의 분해 방식에 따르면, 학생의 특정 응답 점수(YijY_{ij})는 학생들 간의 평균적 차이(YBY_{B})와 그 학생 내에서의 변동(YWY_{W})으로 나누어집니다.

3. 교사와 학생의 상호작용 분석 (LS-T 및 APIM 모형) 🤝

요즘 교육 현장에서는 상황과 맥락에 따른 상호작용이 강조됩니다. 수업 시간에 학생의 기분이나 몰입도는 계속 변하죠.

  • 잠재상태-특성 모형 (LS-T): 학생의 반응을 비교적 안정적인 개인적 성향인 ‘특성(Trait)’과 특정 수업 상황에 따른 일시적 기분인 ‘상태(State)’, 그리고 오차로 분리해 냅니다. 이를 통해 특정 수업 기법이 학생의 일시적 몰입도(상태)를 얼마나 끌어올렸는지 정확히 파악할 수 있습니다.
  • 행위자-상대방 상호의존성 모형 (APIM): 교사와 학생을 하나의 ‘짝(Dyad)’으로 봅니다.
    • 행위자 효과 (Actor effect): 교사의 열정이 교사 스스로의 만족도에 영향을 주는 것입니다.
    • 상대방 효과 (Partner effect): 교사의 열정이 짝꿍인 학생의 몰입도에 영향을 주는 것입니다.

4. 실전! 모의 데이터 기반 jamovi 및 R 분석 💻

📖 스토리보드: “미래형 AI 튜터링 시스템, 학생들의 선택은?”

A 교육청에서는 새로운 ‘AI 수학 튜터’를 도입하려 합니다. 50명의 학생에게 AI 튜터의 3가지 속성(1. 피드백 속도, 2. 게임화 여부, 3. 아바타 유무)을 조합한 8개의 프로필을 보여주고 선호도 점수(0~100점)를 매기게 했습니다. 또한, 학생들의 수학 불안 수준(Math Anxiety)도 2수준 변인으로 함께 조사했습니다.

⌨️ R 코드 (모의 데이터 생성 및 분석)

R

# 패키지 로드
library(lme4)
library(lmerTest)
library(ggplot2)

# 1. 재현성을 위한 시드 설정
set.seed(2026)

# 2. 2수준(학생 단위) 데이터 생성 (50명)
n_students <- 50
students <- data.frame(
  StudentID = factor(1:n_students),
  MathAnxiety = rnorm(n_students, mean = 50, sd = 10), # 수학 불안도
  StudentRandomEffect = rnorm(n_students, mean = 0, sd = 8) # 학생별 선호도 편차(랜덤 효과)
)

# 3. 1수준(반복 측정 단위) 데이터 생성 (각 학생당 8개 프로필 평가)
n_profiles <- 8
total_obs <- n_students * n_profiles

# 요인설계 (피드백 속도, 게임화, 아바타)
profiles <- expand.grid(
  FeedbackSpeed = c("Fast", "Slow"),
  Gamification = c("Yes", "No"),
  Avatar = c("Yes", "No")
)

# 데이터 병합을 위한 기초 프레임
df <- data.frame(
  StudentID = rep(students$StudentID, each = n_profiles),
  FeedbackSpeed = rep(profiles$FeedbackSpeed, times = n_students),
  Gamification = rep(profiles$Gamification, times = n_students),
  Avatar = rep(profiles$Avatar, times = n_students)
)

# 학생 정보 병합
df <- merge(df, students, by="StudentID")

# 4. 종속변수(선호도) 생성 
# 수학 불안도가 높을수록 선호도가 낮아지고, 피드백이 빠르고 게임화 요소가 있을 때 선호도가 올라감
df$Preference <- 60 + 
  ifelse(df$FeedbackSpeed == "Fast", 15, -5) + 
  ifelse(df$Gamification == "Yes", 10, -5) + 
  ifelse(df$Avatar == "Yes", 5, 0) - 
  (df$MathAnxiety * 0.3) + 
  df$StudentRandomEffect + 
  rnorm(total_obs, mean = 0, sd = 5) # 1수준 오차

# 점수를 0~100 사이로 제한
df$Preference <- pmax(0, pmin(100, round(df$Preference, 1)))

# 5. 다층분석(선형 혼합 모형) 실행
# 학생 내 반복측정이므로 StudentID를 무선 절편(Random Intercept)으로 설정
model <- lmer(Preference ~ FeedbackSpeed + Gamification + Avatar + MathAnxiety + (1 | StudentID), data=df)

# 결과 요약
summary(model)

📊 jamovi를 이용한 분석 가이드

위에서 생성한 데이터(CSV 저장 후 불러오기)를 jamovi에서 분석하는 방법은 아주 간단합니다.

  1. 모듈 설치 및 선택: 우측 상단의 + Modules를 클릭하고 GAMLj 모듈(선형 혼합 모형 지원)을 설치합니다.
  2. 분석 메뉴 진입: Linear Models -> Mixed Model을 클릭합니다.
  3. 변수 투입:
    • Dependent Variable: Preference(선호도)
    • Factors: FeedbackSpeed, Gamification, Avatar (명목형 변수)
    • Covariates: MathAnxiety (연속형 변수)
    • Cluster Variables: StudentID (학생을 기준으로 군집화)
  4. 랜덤 효과 설정 (Random Effects): StudentID를 투입하여 랜덤 절편(Random Intercept) 모형을 구성합니다.
  5. 해석: Fixed Effects Estimate 표에서 학생의 수학 불안도(MathAnxiety)와 각 AI 속성이 선호도에 미치는 영향을 파악합니다. Random Components 표에서는 급내상관계수(ICC)를 확인하여 다층분석 도입의 타당성을 입증합니다.

참고문헌 (APA Style)

  • Hox, J. (2010). Multilevel analysis: Techniques and applications. New York, NY: Routledge.
  • Muthén, B., & Satorra, A. (1995). Complex sample data in structural equation modeling. Sociological Methodology, 25, 87-99.
  • Peugh, J. L. (2010). A practical guide to multilevel modeling. Journal of School Psychology, 48(1), 85-112.
  • Snijders, T. A. B., & Kenny, D. A. (1999). The social relations model for family data: A multilevel approach. Personal Relationships, 6(4), 471-486.
  • Steyer, R., & Schmitt, M. J. (1990). Latent state-trait models in attitude research. Quality and Quantity, 24, 427-445.