Tae Hyun Kim (Lowell)

Endogeneity

정의

내생성(endogeneity)은 설명 변수가 오차항과 상관될 때 발생하는 문제다.

Y=β0+β1X+uwhereCov(X,u)0Y = \beta_0 + \beta_1 X + u \quad \text{where} \quad Cov(X, u) \neq 0

이때 OLS 추정량 β^1\hat{\beta}_1은 편향(bias)되고 일치성(consistency)을 잃는다.

직관적 이해

가격 탄력성을 추정할 때 내생성은 가장 근본적인 난관이다.

기업은 가격을 무작위로 정하지 않는다. 수요가 높을 것으로 예상되면 가격을 올리고, 낮을 것으로 예상되면 내린다. 이 최적화 행동이 가격과 미관측 수요 요인 사이에 허위 상관관계를 만든다.

핵심 성질

내생성의 원천

원천설명예시
동시성가격과 수량이 동시에 결정시장 균형
누락 변수가격과 수요 모두에 영향을 미치는 변수 누락품질, 브랜드
역인과수요가 가격에 영향수요 예측 기반 프라이싱
측정 오차설명 변수의 측정 오차가격 할인 기록 누락

편향의 방향

가격 내생성은 거의 언제나 탄력성을 **과소추정(양의 편향)**하게 만든다.

β^OLS=β+Cov(X,u)Var(X)\hat{\beta}_{OLS} = \beta + \frac{Cov(X, u)}{Var(X)}

품질이 높을수록 가격도 수요도 높으므로 다음이 성립한다.

  • Cov(price,quality)>0Cov(\text{price}, \text{quality}) > 0
  • Cov(quality,demand)>0Cov(\text{quality}, \text{demand}) > 0

그 결과 실제 탄력성은 음수인데도 추정값은 0에 가까워지거나 심지어 양수가 되기도 한다.

예시

시뮬레이션

import numpy as np
from sklearn.linear_model import LinearRegression

np.random.seed(42)
n = 5000

# 미관측 품질 (교란 변수)
quality = np.random.randn(n)

# 가격: 품질에 의존 (내생적!)
true_price_effect = -2.0
price = 20 + 3 * quality + np.random.randn(n) * 2

# 수요: 가격과 품질 모두에 의존
demand = 100 + true_price_effect * price + 10 * quality + np.random.randn(n) * 5

# 단순 OLS (품질 미통제) - 편향됨!
naive_model = LinearRegression()
naive_model.fit(price.reshape(-1, 1), demand)
print(f"진짜 가격 효과: {true_price_effect}")
print(f"단순 OLS 추정치: {naive_model.coef_[0]:.3f}")  # 약 -0.5로 편향

# 품질 통제 후 - 일관적
X_controlled = np.column_stack([price, quality])
controlled_model = LinearRegression()
controlled_model.fit(X_controlled, demand)
print(f"품질 통제 후: {controlled_model.coef_[0]:.3f}")  # 약 -2.0

해결 방법

접근법핵심 아이디어가정
실험가격 무작위 할당윤리적/비용 제약
도구변수외생적 가격 변동 활용배제 제한
통제 전략충분한 공변량 통제비교란성
구조적 모형경제 구조 명시적 모형화함수형 가정

관련 개념

참고 문헌

  • Wooldridge, J. M. (2010). Econometric Analysis of Cross Section and Panel Data.
  • Comprehensive Personalized Pricing Guide, Part I, §3

연결 그래프