패널 데이터에서 FE·RE·IV·GMM으로 식별 전략 세우기

패널 데이터 분석에서 고정·무작위효과, 도구변수와 GMM을 선택하고 진단·표준오차·재현성을 관리하는 방법

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

패널 분석에서 먼저 분리해야 할 문제

지역·연도, 기업·공장, 은행·펀드처럼 동일 개체를 시점별로 관측하면 개체별로 고정된 특성과 내생성이 함께 나타난다. 패널 데이터 모형의 고정효과(Fixed Effects, FE)·무작위효과(Random Effects, RE), 도구변수(Instrumental Variables, IV), 일반화 적률법(Generalized Method of Moments, GMM)은 이 문제를 서로 다른 가정 아래 처리한다.

FE는 개체 불변 이질성인 α_i를 Within 변환으로 제거한다. α_i와 X의 상관을 허용하지만, 공적분 및 시점 불변 공변량은 추정할 수 없다. RE는 α_i를 확률효과로 두고 X_it와 독립이라고 가정하며, 이 조건이 성립하면 GLS로 효율적인 추정이 가능하다. 집단·시점·상호작용 고정효과는 Entity, Time, Two-way, High-dimensional FE로 확장할 수 있고, 이때 군집화 표준오차를 함께 사용한다.

내생성의 원인은 누락변수, 측정오차, 양방향 인과로 나뉜다. IV는 E[Z'u]=0인 외생성과 Cov(Z,X)≠0인 관련성을 만족하는 도구변수를 이용한다. 2SLS는 먼저 Z로 X를 예측한 뒤, 예측값 X̂로 y를 회귀한다. GMM은 E[g(W_t,θ)]=0이라는 적률조건을 이용하며, 가중행렬을 통해 효율적인 추정을 구성한다. 이분산·자기상관에 견고하게 만들기 쉽고 차분·시스템 GMM 같은 동태패널 모형으로도 확장되지만, 수렴과 초깃값의 민감성을 관리해야 한다.

가정과 진단이 모형 선택을 좌우한다

FE는 E[ε_it | X_it, α_i]=0을 가정하며 α_i와 X의 상관을 허용한다. 반면 RE는 E[α_i | X_it]=0이 필요하므로 가정이 어긋나면 유의한 편의가 발생한다. Hausman 검정은 FE와 RE 사이의 선택 규칙을 세우는 데 사용한다.

IV와 GMM에서는 도구의 관련성·외생성, 그리고 강건성 가정을 검증하는 체계가 핵심이다. 약한 도구는 1단계 F-통계로 확인하며 F>10이 권고된다. 과식별 상태에서는 Sargan/Hansen(J-test)을 사용한다. 동태패널에서는 Arellano–Bond AR(2), Hansen 과식별 검정, Difference-in-Hansen도 함께 점검한다. 잔차 진단과 영향점 분석도 추정 결과의 해석에서 빠질 수 없다.

분산 추정에는 군집화 표준오차(cluster-robust)를 사용해 군집 내부 상관에 대응한다. 시공간 상관이 있으면 Newey–West/HAC, Driscoll–Kraay 같은 견고한 방법을 적용할 수 있다. GMM에서는 최적가중행렬을 갱신하고 신뢰구간의 안정성을 확인한다.

데이터에서 추정치까지의 경로

FE는 개체 평균을 감산하는 Within 변환 뒤 OLS를 수행하고, 군집화 표준오차를 산출한다. RE는 분산 성분을 추정한 뒤 GLS 가중 회귀를 수행하며 Hausman 검정으로 FE와의 선택을 검토한다. 결과에는 계수, 표준오차, Hausman p-값, 사용한 군집화 방법을 남긴다.

IV/2SLS는 내생 변수 X_e, 도구 Z, 통제 W를 입력으로 둔다. 1단계에서 X_e를 Z와 W로 회귀해 X̂_e와 F-통계를 얻고, 2단계에서 y를 X̂_e와 W로 회귀한다. 과식별 검정과 함께 약한 도구 보정을 위한 LIML/Fuller도 고려한다. 산출물은 구조효과 추정치, 강건 표준오차, 진단 통계량이다.

GMM은 적률함수 g(W_t,θ)와 초기 가중행렬 W_0에서 시작한다. 1단계 추정치 θ̂_1로 잔차 기반 S를 계산하고 W_opt=S^{-1}을 구성한 뒤 2단계 추정치 θ̂_2를 얻는다. 필요하면 θ와 W를 교대로 갱신하며 수렴을 확인하고, 모멘트 수와 파라미터 사이의 제약도 검토한다. 최종적으로 θ̂, 강건 분산, Hansen J, 동태패널 AR(2) 통계를 보고한다.

개체 이질성 상관개체 이질성 무상관유의비유의내생성 존재아니오통과미통과모멘트 기반수렴미수렴입력: 패널 데이터 (i,t), 설계가정/식별 가설모형 선택FE: Within 변환 + OLSRE: GLS 추정군집화 표준오차 계산Hausman 검정RE 유지IV/2SLS1단계: X_e Z, W약한 도구? (F<10)LIML/Fuller, 강한 Z 탐색2단계: y X̂_e, WJ-test(Hansen/Sargan)식별 타당도구 재설계/제거GMM/동태패널가중행렬 업데이트수렴 여부추정치, SE, 진단 통계초깃값/제약/옵션 조정

정책·산업·금융 데이터에 적용하는 방식

정책 평가는 지역·연도 패널에서 보조금이나 규제 도입 효과를 추정할 때 사용한다. FE로 고정된 지역 특성을 제거하고, 정책 배분에서 생기는 내생성은 IV로 교정한다.

생산성과 산업조직 분석에서는 기업·공장 단위 패널의 가격·산출·투입 내생성을 도구변수 또는 시스템 GMM으로 처리해 수요·공급 구조를 식별한다. 금융·리스크 분석은 은행·펀드 패널의 레버리지와 성과 사이 내생성을 다루며, 기관 기준 군집화 표준오차와 Driscoll–Kraay로 공통충격에 대응한다. 광고노출·전환 패널에서는 동태패널 GMM으로 동태효과와 자기상관을 처리하고, FE로 이질성을 제어한다.

기대할 수 있는 분석상의 변화

약한 도구를 F>10 기준으로 배제하고 Hansen J 통과율을 개선하면 과대식별 리스크를 완화할 수 있다. RE와 FE를 적절히 선택하면 분산을 최소화할 수 있고, GMM의 최적가중은 추정 효율을 높인다. 데이터→검정→추정→진단의 파이프라인을 표준화하면 분석 반복 시간을 줄이고 모형 오남용을 방지하는 데 도움이 된다.

방법별 선택 기준

방법 성능(효율) 확장성 일관성(가정) 안정성(진단) 운영 편의
FE 중간, 시간불변 변수 손실 고차원 FE도 확장 가능 α_i–X 상관 허용 시 일관 Hausman 대비 기준 구현 용이, 해석 명확
RE 높음(가정 충족 시) 불균형 패널에 유리 E[α_i | X]=0 필요 Hausman 필수 빠른 계산, GLS 필요
IV/2SLS 내생성 하 고효율 도구 수 증가시 복잡 Z 외생·관련 필수 F-통계, J-test 단계 명확, 진단 풍부
GMM 최적가중 시 최고 대규모·동태에 적합 적률조건 타당 필요 J-test, AR(2) 튜닝 필요, 반복 최적화

Python으로 FE·RE·IV·GMM 실행하기

Python 3.10+, pandas>=1.5, linearmodels>=5 환경에서 실행할 수 있는 예시다.

# pip install pandas linearmodels
import pandas as pd
import numpy as np
from linearmodels.panel import PanelOLS, RandomEffects
from linearmodels.iv import IV2SLS, IVGMM

# 예시 데이터: MultiIndex (entity, time)
np.random.seed(0)
n, t = 200, 8
idx = pd.MultiIndex.from_product([range(n), range(t)], names=["id", "year"])
df = pd.DataFrame(index=idx)
alpha = np.random.normal(size=n).repeat(t)
x_endog = np.random.normal(size=n*t)
z = x_endog + np.random.normal(scale=0.2, size=n*t)  # 강한 도구
u = np.random.normal(size=n*t)
y = 1.0 + 0.8*x_endog + alpha + u

df["y"] = y
df["x"] = x_endog
df["z"] = z
df["const"] = 1.0

# FE (개체 고정효과)
fe_mod = PanelOLS.from_formula("y ~ 1 + x + EntityEffects", data=df)
fe_res = fe_mod.fit(cov_type="clustered", cluster_entity=True)
print(fe_res.summary)

# RE
re_mod = RandomEffects.from_formula("y ~ 1 + x", data=df)
re_res = re_mod.fit()
print(re_res.summary)

# Hausman 검정 (간단 비교)
from linearmodels.panel.results import compare
print(compare({"FE": fe_res, "RE": re_res}))

# IV/2SLS (x는 내생, z는 도구)
iv_mod = IV2SLS.from_formula("y ~ 1 + [x ~ z]", data=df.reset_index())  # IV는 단면 형태 필요
iv_res = iv_mod.fit(cov_type="robust")
print(iv_res.summary)

# GMM (적률 기반 IV)
gmm_mod = IVGMM.from_formula("y ~ 1 + [x ~ z]", data=df.reset_index())
gmm_res = gmm_mod.fit()
print(gmm_res.summary)

R에서 같은 추정 흐름 구성하기

R 4.2+, plm, AER, gmm 조합으로도 FE, RE, IV/2SLS, 간단한 GMM 적률조건을 구성할 수 있다.

# install.packages(c("plm","AER","gmm"))
library(plm); library(AER); library(gmm)

# 예시 데이터
set.seed(1)
n <- 200; t <- 8
id <- rep(1:n, each=t); year <- rep(1:t, times=n)
alpha <- rnorm(n)[id]
x <- rnorm(n*t); z <- x + rnorm(n*t, sd=0.2)
u <- rnorm(n*t); y <- 1 + 0.8*x + alpha + u
df <- data.frame(id, year, y, x, z)

# FE
fe <- plm(y ~ x, data=df, index=c("id","year"), model="within")
coeftest(fe, vcov=vcovHC(fe, type="HC1", cluster="group"))

# RE
re <- plm(y ~ x, data=df, index=c("id","year"), model="random")
phtest(fe, re) # Hausman

# IV/2SLS
iv <- ivreg(y ~ x | z, data=df)
summary(iv, diagnostics=TRUE)

# 간단 GMM (모멘트 예시)
g <- function(theta, data){
  u <- data$y - theta[1] - theta[2]*data$x
  cbind(data$z*u, u) # 적률조건 예시
}
gmm_fit <- gmm(g, x=df, t0=c(0,0))
summary(gmm_fit)

운영에서 놓치기 쉬운 제약

시간불변 변수가 중요하면 FE 대신 RE+도구변수 또는 Mundlak(집단평균 X 추가) 접근을 검토한다. 동태효과가 있으면 Arellano–Bond/Blundell–Bond GMM을 고려하되, 도구 축소·Collapsing으로 도구 폭주를 막아야 한다.

군집 수는 일반적으로 30+ 확보가 권장되며, 적은 군집에서는 와일드 부트스트랩을 고려한다. 시공간 상관 구조에는 Driscoll–Kraay 또는 HAC를 적용한다. 단일 내생 변수에서는 1단계 F>10을 확보하고, 다중 내생 변수에서는 Sanderson–Windmeijer 통계를 사용한다. 과도한 도구 사용은 과식별 J-test p-value의 힘을 떨어뜨릴 수 있다.

데이터 정제→기술통계→모형적합→진단→견고성 검증→보고서 생성으로 흐름을 자동화하고, 시드와 군집 기준·가중행렬·도구 세트 같은 세부 옵션을 명시한다. 패널 이질성, 내생성, 시공간 상관을 함께 관리하려면 모형 자체보다 식별 가정과 진단 절차를 분석 설계의 중심에 둬야 한다.

경제계량패널 데이터도구변수GMM고정효과