C.W.K.
Stream
Lesson 04 of 06 · published

CLT 가 조용히 실패할 때

~12 min · clt, failure-modes, dependence, fat-tails, preview-track-07

Level 0통계 초심자
0 XP0/55 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete
"CLT 는 *전제조건이 성립할 때만* 신뢰할 만해. *대부분 실제 데이터에서 전제조건이 조용히 실패*하고, *종은 청중이 기대해서 여전히 등장*해."

두 전제조건, 복습

표준 CLT 요구:

  1. 합해지는 X 들 사이의 독립성.
  2. 각 X 의 유한 분산.

둘 다 성립하면 N 이 커질수록 표준화된 합이 정규로 수렴. *어느 한쪽이 실패하면 결론이 더는 따라오지 않아*. *종은 여전히 등장할 수도 있지만 잘못된 이유로*, 또는 *전혀 등장 안 할 수도 있어* — 그리고 *어느 쪽이든, 정규를 가정한 하류 도구들은 이제 틀린 거*.

실패 모드 1: 숨겨진 의존

가장 깨끗한 실패는 *X 들이 상관*될 때. CLT 증명은 *합의 분산이 분산의 합*이라는 항등식에 결정적으로 의존 — *오직 독립성 아래서만 성립*. *양의 상관이 있으면* 합의 분산이 *독립 가정 분산보다 크고*; *표준화 단계가 참 퍼짐을 과소평가*; *결과 꼬리 확률이 엄청나게 저평가*.

이게 정확히 *위기 중 금융 수익률에 일어나는 일*. 정상 거래일에는 자산 수익률이 *약하게 상관*돼서 CLT 유도 위험 모델이 *그럭저럭 작동*. 위기일에는 *상관이 1 쪽으로 튀어* — *모두 한꺼번에 매도* — *종이 예측한 '희귀한' 큰 변동이 화요일 오후가 됨*. *CLT 가 거짓말 안 했어; 사용자가 독립 전제조건을 잊은 거*.

실패 모드 2: 무한 분산

표준 CLT 는 *각 X 가 유한 분산을 가져야 함*. 꼬리 지수 α ≤ 2 인 멱법칙-꼬리 변수는 *무한 분산*이고, *표준 CLT 가 적용되지 않음*. 대신, 그런 변수의 합은 *안정 분포 (stable distributions)* 로 수렴, *두꺼운 꼬리이고 비대칭일 수 있음*. *종은 절대 등장 안 함*; *평균을 마치 종 모양인 것처럼 다루는 건 수학적으로 무의미*.

이게 *진짜 멱법칙 구조를 가진 자연 현상*에 중요: 지진 규모, 웹 파일 크기, 소셜 미디어 바이럴리티, 일부 자산 수익률. *누가 이 양에 대해 '평균' 을 계산했다는 사실이 평균을 의미 있게 만들지 않음* — *기저 수학이 협력을 거부*.

실패 모드 3: 느린 수렴

독립성과 유한 분산이 *기술적으로 다 성립*해도, 개별 X 가 *매우 비대칭이거나 두꺼운 꼬리* (기술적으로 유한 분산, lognormal 같은) 일 때 CLT 가 *느리게 수렴*. *'N 이 충분히 크다' 가 X 가 얼마나 비정규인지의 함수*가 됨. *고도로 비대칭인 X 에서는 N=30 이 *엄청나게 부족*; N=10,000 이어도 *꼬리에서는 여전히 틀릴 수 있어*. *CLT 는 점근적* — *유한 샘플은 늘 근사*.

시민의 테스트

종 모양 가정을 믿기 전에 *전제조건 체크 돌려*: 기저 X 들이 *그럴듯하게 독립*이야? 분산이 *그럴듯하게 유한*이야? *N 이 X 의 비정규성에 비해 충분히 큰가*? 어느 답이라도 '아니' 또는 '몰라' 면 *종은 추측이지 유도가 아니야*. 트랙 07 이 *이 테스트를 건너뛴 최악의 실제 결과들*을 분해할 거.

Code

숨겨진 상관 아래의 CLT·python
import numpy as np
rng = np.random.default_rng(60)

# 상관 아래에서 CLT 가 실패하는 걸 보임.
# N=100 의 고도로 상관된 변수 합 vs N=100 의 독립된 변수 합.
N = 100
M = 10_000

# 독립 draw.
independent = rng.normal(size=(M, N))
sum_indep = independent.sum(axis=1)

# 상관된 draw — 모두 공통 요인을 공유.
common = rng.normal(size=(M, 1))
idiosync = rng.normal(size=(M, N))
correlated = 0.7 * common + 0.3 * idiosync
sum_corr = correlated.sum(axis=1)

# 둘 다 표준화.
def stats(x, label):
    z = (x - x.mean()) / x.std()
    p4 = (np.abs(z) > 4).mean()
    print(f"{label:>25s}: std={x.std():>7.2f}  P(|z|>4)={p4:.4f}")

stats(sum_indep, "독립 (CLT 성립)")
stats(sum_corr, "상관 (CLT 깨짐)")

# 독립 합은 *종 같은 P(|z|>4) ~ 0.0001*.
# 상관 합의 표준편차는 *훨씬 커*, *분산이 독립 가정 경계 너머로 누적*
# 됐기 때문 — 근데 *표준화하면 z 의 종은 여전히 괜찮아 보임*.
# 문제는 *원시 값*: *극단 결과가 독립이 예측한 것보다 훨씬 자주 일어남*.

External links

Exercise

*독립이라고 추정되는 관측 사이 숨겨진 상관*을 의심하는 일이나 인생의 양 하나 골라 (단일 이메일에 대한 응답, 사이트 다른 부분의 트래픽, 바이럴 순간 동안의 답글). 추정: *CLT 의 '희귀 사건' 예측이 실제 빈도를 저평가할까 과평가할까*? *거의 항상: 저평가*, *상관이 꼬리 행동을 증폭*하니까.
Hint
관측이 *공통 원인을 공유*하면 (뉴스 사건, 셀럽 트윗, 시스템 장애) *독립성은 환영*이고 *종-유도 '백만 분의 1 사건' 이 백만 분의 1 보다 훨씬 자주 발생*.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고
💛 by 똘이warm

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.