공간 상관과 교차 분류를 다루는 고급 다층 모델

공간 다층 모델과 교차분류 모델의 구조, 추정 방식, 검증 항목과 R 구현 예시를 실무 관점에서 정리합니다.

2026-08-14 · 최초 발행 2024-04-29

공간과 분류 축이 동시에 데이터 구조를 만들 때

다층 모델은 집단별 이질성을 반영하면서 편향과 분산을 함께 제어하는 통계적 프레임워크다. 지역 간 인접성이 결과에 영향을 주거나 관측치가 하나의 계층이 아닌 여러 분류 축에 걸쳐 있을 때는 표준 다층 구조만으로 상관을 충분히 설명하기 어렵다.

공간 다층 모델은 지역·격자 수준의 공간 상관을 랜덤효과에 포함한다. 교차분류 모델은 학생과 교사, 매장과 카테고리처럼 서로 중첩되지 않는 분류 축을 병렬로 배치한다. 두 접근 모두 부분 풀링을 통해 희소한 그룹이나 영역에서 추정치를 안정화한다.

공간 효과와 교차분류 효과의 모형화

인접한 지역의 정보를 함께 쓰는 공간 다층 모델

Spatial Multilevel Models는 공간적으로 가까운 단위의 상관구조를 다층 모형에 통합하는 방식이다. CAR/ICAR, BYM/BYM2, GP(Gaussian Process) 구조를 지역 또는 격자 수준 랜덤효과와 결합해 추정 정확도와 예측 안정성을 높인다.

BYM2는 공간 효과 u_spatial과 비공간적 이질성 u_iid를 분리한다. 연속 공간에서는 GP를 이용해 커널 기반 공분산을 설정하고 부분 풀링을 수행할 수 있다.

중첩되지 않는 분류 축을 병렬로 다루는 모델

Cross-Classified Models는 관측치가 단일한 계층에 속하지 않고 둘 이상의 분류 축에 동시에 연결되는 경우를 위한 모형이다. 학생이 여러 교사와 여러 과목에 속하는 구조가 이에 해당한다.

랜덤절편과 랜덤기울기를 복수 축에 병렬로 배치해 교차 분류에서 생기는 상관을 모형화한다. 각 축의 식별성을 유지하려면 sum-to-zero 같은 제약과 충분한 관측 분포가 필요하다.

빈도주의와 베이지안 추정의 역할

빈도주의 접근에서는 REML/ML로 랜덤효과 분산과 고정효과를 추정하며 계산 효율성이 장점이다. 베이지안 접근은 PC priors 같은 구조적 사전분포를 통해 과적합을 제어하고 불확실성을 전파하는 데 적합하다. 복잡한 공간 구조에는 INLA/HMC를 적용할 수 있다.

데이터 구조에 맞춰 설계할 항목

격자형 또는 행정구역 데이터에서는 인접행렬 W를 바탕으로 ICAR/BYM2 조건부 자기회귀 구조를 설정한다. 이때 경계를 공유하는지에 따라 가중치를 어떻게 정의할지 결정해야 한다. 연속공간 데이터는 GP/Matérn 커널로 거리 기반 상관을 표현하며, 관측 수가 대규모라면 희소 근사나 메시 기반 SPDE 기법을 사용한다.

교차분류 구조에서는 (1|A) + (1|B)처럼 각 축의 이질성을 분리한다. 이분산 또는 헤테로지니어스 반응을 다뤄야 하면 (0 + x|A) 같은 기울기 랜덤효과를 추가할 수 있다. 레벨별 표본 수, 중심화·스케일링, 약정보 사전분포는 식별성과 수치안정성에 직접 영향을 준다.

부분 풀링은 그룹 간 정보 공유를 통해 변동성을 줄이고 극단값을 안정화한다. 희소 그룹에서도 견고한 추정을 제공하며, 계층 간 shrinkage 강도는 분산 성분과 사전분포에 따라 자동으로 조절된다.

대규모 공간 문제에서는 INLA/SPDE와 BYM2로 근사추정을 수행하고 WAIC/LOO로 모형을 비교할 수 있다. 교차분류는 lme4/glmmTMB로 1차 적합을 한 뒤, brms/Stan으로 완전 베이지안 추정과 사후진단을 보강하는 흐름을 사용할 수 있다.

적합부터 진단까지의 흐름

결측/이상치 처리W 누락/불일치식별자 중복/누락공간 잔차 존재과적합입력: 원시 데이터- 관측치 y, 공변량 X- 지역 경계/인접행렬 W- 교차 식별자 A,B전처리/검증모델 명세오류/조건 점검경계 소스 동기화·재생성 정규화·레벨 재코딩추정/학습- REML/ML- INLA/HMC진단공간 효과 강화/커널 변경사전 강화/랜덤효과 단순화출력/배포- 효과 추정치- 예측/지도화- 불확실성 지표

잔차의 공간 자기상관은 Moran’s I로 확인하고, 사후예측검증(PPC)과 캘리브레이션 곡선으로 타당성을 점검한다. 운영 단계에서는 경계 갱신과 코드북 관리, 누락 레벨 및 신규 레벨 처리 정책을 데이터 파이프라인에 포함해야 한다.

적용 맥락별 모델 구성

공중보건 질병 지도화

시군구별 표준화발생비(SIR)를 안정적으로 추정하고 위험요인 효과를 분리하려면 인접행렬 W를 공유 경계 기준으로 생성하고 row-standardized한다. BYM2로 공간 효과(u_spatial)와 비공간 효과(u_iid)를 분해한 뒤, WAIC/LOO로 ICAR와 BYM2를 비교한다. Moran’s I는 잔차 점검에 사용하며, 사후 예측분포로 고위험 지역과 신뢰구간을 지도화한다.

매장과 카테고리가 교차하는 리테일 데이터

매출 로그 변환 예측에서는 매장 효과와 카테고리 효과를 분리할 수 있다. (1|store) + (1|category) + (0 + promotion|store) 구조를 사용하고, 신규 매장이나 카테고리가 생기면 랜덤효과 사전분포 기반 예측으로 콜드스타트를 완화한다. 재적합은 주 단위로 수행하며 drift를 모니터링한다.

학생·교사·학교 효과의 분해

학생 성취도에서는 기초 성취도와 SES 같은 학생 레벨 공변량을 통제한 뒤, (1|teacher) + (1|school) 교차 랜덤절편과 교사별 기울기를 허용할 수 있다. 공변량 분포 차이를 보정한 후 효과를 비교해야 공정성 점검이 가능하다.

R-INLA로 BYM2 공간 다층 모델 적합

환경은 R 4.3+, INLA 24.05+, sf 1.0+, spdep 1.3+이며, 지역 폴리곤(shp), 케이스/노출(pop), 공변량 X를 준비한다.

# install.packages("INLA", repos=c(getOption("repos"),
#   INLA="https://inla.r-inla-download.org/R/stable"))
library(INLA); library(sf); library(spdep)

# 1) 데이터/경계 로드
shp <- st_read("regions.shp")              # 지역 폴리곤
dat <- read.csv("disease.csv")             # columns: region_id, cases, pop, x1, x2
shp <- merge(shp, dat, by="region_id")

# 2) 인접행렬(W) 생성
nb <- poly2nb(shp)
W <- nb2mat(nb, style="B", zero.policy=TRUE)
graph_path <- "adjacency.graph"
INLA::inla.write.graph(nb2INLA("adjacency.graph", nb))

# 3) 인덱스/오프셋 정의
shp$idx <- 1:nrow(shp)
E <- shp$pop * mean(shp$cases / shp$pop)   # 기대값(표준화)

# 4) BYM2 모델: 공간+비공간 분해
formula <- cases ~ x1 + x2 +
  f(idx, model="bym2", graph=graph_path, scale.model=TRUE)

fit <- inla(formula, family="poisson",
            data=shp,
            E=E,
            control.predictor=list(compute=TRUE),
            control.compute=list(waic=TRUE, cpo=TRUE, dic=TRUE),
            control.family=list(link="log"))

summary(fit)
# 출력: 고정효과, 지역 상대위험(RR=exp(eta)), 불확실성(크레덴셜 구간)

경계 겹침이나 슬리버가 있으면 st_make_valid로 정합성을 확보한다. 고립 노드는 zero.policy=TRUE로 처리하거나 병합한다. 과적합이 나타나면 PC prior를 강화(control.inla=list(strategy="adaptive"))하거나 공변량을 정규화한다.

lme4로 교차분류 랜덤효과 적합

환경은 R 4.3+, lme4 1.1+, performance 0.10+이며, 매출 로그 변환 y, 공변량 x, 교차 축 store, category를 전제로 한다.

install.packages(c("lme4","performance"))
library(lme4); library(performance)

fit_cc <- lmer(log_sales ~ price_index + promotion + (1|store) + (1|category) +
                 (0 + promotion|store), data=df)

summary(fit_cc)
check_model(fit_cc)        # 잔차/정규성/이분산 진단
VarCorr(fit_cc)            # 랜덤효과 분산 확인

완전 베이지안 추정이 필요하면 brms::brm(..., family=gaussian(), prior=...)로 사전분포를 설정하고 LOO를 비교한다. 신규 레벨은 ranef를 적용할 수 없을 때 사전 평균 0과 분산 기반 shrinkage를 적용하며, 베이지안 접근이 권장된다.

표준 다층 모델과 비교할 때 보는 지점

항목 표준 다층 공간 다층(Spatial) 교차분류(Cross-Classified)
성능(예측) 기준선 공간 패턴 존재 시 RMSE 5~20% 개선 축 분리로 3~15% 개선
확장성 대규모 OK INLA/SPDE로 수십만 격자 처리 레벨 수 증가 시 계산량 선형 증가
일관성 부분 풀링 공간 스무딩으로 극단값 안정화 희소 레벨에도 견고
안정성 단순 경계·인접행렬 품질 민감 식별자 관리·누락 레벨 민감
운영 편의 높음 경계 갱신 파이프라인 필요 레벨 증감 자동화 필요

개선 폭은 데이터 구조와 신호 강도에 의존하므로 검증을 통해 보수적으로 추정해야 한다.

공간 상관이 존재하면 RMSE는 520% 감소하고 Expected Calibration Error는 1030% 감소할 수 있다. 불확실성 측면에서는 사후 95% 구간 피복률을 목표치에 ±3%p 범위로 가깝게 둘 수 있다. 지역별 또는 분류 축별 효과를 분해하면 정책·운영 의사결정의 근거가 강화되고, 희소 그룹이나 작은 영역에서도 분산 폭을 제한해 추정 안정성을 확보할 수 있다.

운영에서 놓치기 쉬운 조건

공간 다층과 교차분류 모델은 공간 자기상관과 복수 분류 축이 공존하는 데이터를 구조적으로 포착한다. 데이터와 경계의 정합성, 인접행렬 품질, 교차 축 식별자 관리, 진단·검증 자동화가 모델 운영의 핵심이다.

구조 탐색은 1차선 빈도주의 적합으로 시작하고, 불확실성 전파가 필요할 때 베이지안 프레임으로 확장할 수 있다. INLA는 공간 문제에, lme4/brms는 교차분류 문제에 조합해 표준화함으로써 재현성과 확장성을 함께 확보한다.

다층 모델공간 통계교차분류 모델베이지안 추정R