1 개요 — 왜 모델을 점검해야 하는가
베이즈 분석의 흐름을 Gelman BDA 는 세 단계로 정리한다 (Gelman et al., 2013, Ch.1).
- 확률 모형 구성 — 사전분포 \(p(\theta)\) 와 표집분포 \(p(y|\theta)\) 지정
- 사후분포 계산 — \(p(\theta|y) \propto p(y|\theta)p(\theta)\)
- 모델 점검 — 구성한 모형이 현실의 어떤 측면을 놓치고 있는지 진단
세 번째 단계는 종종 생략되는데, 이것이 바로 Ch.6이 정면으로 교정하려는 습관이다. 확률 모형에는 분석자의 모든 지식을 담을 수 없고, 사후분포는 지정된 모형이 참이라는 전제 하에서만 유의미하다. 모형이 현실에서 어긋나면 사후 추론도 어긋난다. 따라서 “모델을 쓴다 = 동시에 모델을 점검할 의무가 생긴다”는 원칙이 선다.
1.1 핵심 프레임 — “참 / 거짓”이 아니라 “문제에 적절한가”
Gelman의 입장은 명확하다.
“모델이 참인가 거짓인가”가 아니라 “모델의 결함이 우리 관심 추론에 눈에 띄는 영향을 주는가”를 묻는다 (Gelman et al., 2013, Ch.6).
이 프레임이 직관적으로 익숙하지 않을 수 있다. 확률 모형이 “참이다 / 참이 아니다”는 이분법을 떼어놓고, “이 목적에 충분히 좋은가”라는 실용주의적 질문을 먼저 던진다는 것이다. 동전 던지기조차 완벽히 교환 가능(exchangeable)하지는 않다 — 던지는 사람의 손 습관, 동전의 미세한 비대칭 등이 있기 때문이다. 그러나 동전이 “공정하다”는 가정은 대부분의 추론에서 쓸 만하다. 모델 점검이 찾는 것은 이 “쓸 만함”이 깨지는 지점이다.
2 정의 — 모델 점검의 수학적 도구 상자
Ch.6은 네 가지 핵심 도구를 정의한다. 아래 callout 네 개를 먼저 한 번에 본 뒤, 이어지는 절에서 각각을 직관과 함께 풀어낸다.
\(y\) 를 관측된 데이터, \(\theta\) 를 모수 벡터라 하자. 복제 데이터 \(y^{rep}\) 는 오늘 관측한 실험을 같은 모형과 같은 \(\theta\) 로 다시 한 번 수행했을 때 나올 수 있는 가상의 데이터다. 이는 일반 예측 표기 \(\tilde{y}\) (임의의 미래 관측) 와 구분된다. 회귀 모형이라면 \(y^{rep}\) 는 같은 설명변수 \(x\) 에 대한 가상의 반복 관측이다.
복제 데이터 \(y^{rep}\) 의 분포는 다음으로 정의한다:
\[ p(y^{rep} \mid y) = \int p(y^{rep} \mid \theta) \, p(\theta \mid y) \, d\theta \tag{6.1} \]
즉, 모수의 사후 불확실성을 평균 낸 예측 분포다. 이 분포는 \(\theta\) 에 대한 우리의 현재 지식(=사후분포)을 반영해 “이 모형이 만들어낼 법한 데이터”의 범위를 준다.
관측 데이터와 모형의 불일치 정도를 요약하는 스칼라 함수 \(T(y, \theta)\) 를 검정량이라 한다. 데이터 \(y\) 와 모수 \(\theta\) 모두에 의존할 수 있으며, 후자를 허용할 때 특히 불일치 측도(discrepancy measure) 라 구분해 부른다. 데이터에만 의존하는 특수형 \(T(y)\) 는 검정 통계량(test statistic) 이다.
모형-데이터 불일치의 확률적 크기를 다음과 같이 정의한다:
\[ p_B = \Pr\!\left(T(y^{rep}, \theta) \geq T(y, \theta) \,\middle|\, y\right) \tag{6.3} \]
여기서 확률은 결합 분포 \(p(\theta, y^{rep} \mid y) = p(y^{rep} \mid \theta)\, p(\theta \mid y)\) 위에서 취한다. 적분 형태로는
\[ p_B = \iint I_{\{T(y^{rep}, \theta) \geq T(y, \theta)\}} \; p(y^{rep} \mid \theta)\, p(\theta \mid y) \; dy^{rep} \, d\theta . \]
\(p_B\) 가 0.5 근처이면 모형이 해당 측면을 잘 재현하는 것이고, 0 또는 1 근처로 치우치면 데이터의 그 측면이 모형 예측의 꼬리에 있다는 신호다.
3 개념과 원리
3.1 6.1 모델 점검의 자리매김 — 감도 분석과의 관계
감도 분석(sensitivity analysis) 은 다음 질문에 답한다: “합리적으로 생각할 수 있는 다른 모형을 쓰면 사후 추론이 얼마나 바뀌는가?” 대안 모형은 사전분포의 변경일 수도, 표집분포의 변경일 수도, 변수 선택의 변경일 수도 있다.
이론적으로는 모든 대안을 하나의 초거대 결합 모형(super-model) 에 포함시키면, 감도 분석이 자동으로 사후 계산 안에 녹아든다. 그러나 실제로 그런 초거대 모형을 구성하는 것은 개념적으로도 계산적으로도 거의 불가능하다. 따라서 모델 바깥에서 모델을 들여다보는 별도 절차가 필요하다. 이것이 모델 점검이다.
- 감도 분석: “다른 합리적 모형을 고르면 결론이 뒤집히는가?” → 모형 간 비교
- 모델 점검: “지금 모형이 관측 데이터를 재현하는가?” → 모형-데이터 비교
둘은 방향이 다르다. 감도 분석은 모형 공간 위의 민감도를, 모델 점검은 데이터 공간 위의 적합도를 본다. 실무에서는 두 축을 동시에 굴린다 — 한 축만 굴리면 “이 모형이 데이터에는 잘 맞지만 다른 합리적 모형과 결론이 다르다” 같은 상황을 놓친다.
3.2 6.2 “추론이 말이 되는가” — 외부 검증
사후분포에 표기된 수치가 분석자의 실무 지식과 어긋날 때가 있다. Gelman BDA Ch.6은 1992년 미국 대선 예측 모형 예시를 든다. 선거 한 달 전, 계층 선형 회귀로 주별 Clinton 승리 확률을 추정했는데, Texas·Florida에서 모형 예측이 주별 여론조사와 어긋났다. 모형을 폐기할 정도는 아니지만, 어디가 약점인지를 알아두는 것이 중요하다.
더 엄격한 점검 방식이 외부 검증(external validation) 이다.
- 모형으로 미래 데이터를 예측한다.
- 실제 데이터를 수집한다.
- 예측 구간의 명목 수준이 지켜지는지 확인한다 (예: 50% 구간이 절반 정도의 실제값을 포함하는가).
외부 검증은 원칙적으로 가장 신뢰할 만하지만, 현실에서는 “새 데이터를 기다릴 시간이 없다”는 제약이 크다. 그래서 Ch.6·Ch.7은 이미 가진 데이터만으로 외부 검증을 흉내내는 방법을 체계화한다. 그 핵심이 바로 사후 예측 점검이다.
3.3 6.3 사후 예측 점검의 철학 — 자기 일관성 검사
사후 예측 점검의 작동 논리는 한 문장으로 요약된다.
모형이 적절하다면, 그 모형에서 생성된 복제 데이터는 관측 데이터와 비슷하게 보여야 한다 (Gelman et al., 2013, Ch.6.3).
이것이 바로 자기 일관성 검사(self-consistency check) 다. 외부에서 새로운 기준을 들여오는 것이 아니라, 모형 자체가 만든 세계와 실제로 관측된 세계를 나란히 놓고 비교한다. 차이가 크게 나면, 차이는 두 출처 중 하나에서 온다:
- 모형 부적합(model misfit) — 모형이 진짜 데이터 생성 과정의 어떤 축을 놓쳤다.
- 우연(chance) — 해당 측면에서는 큰 불일치도 충분히 일어날 수 있다.
사후 예측 p-값은 “우연으로 설명되는 부분”을 수치로 정량화한다. \(p_B \approx 0.02\) 이면 “관측된 불일치 수준은 이 모형 하에서 일어날 확률이 2% 정도”라는 뜻이다.
\(y^{rep}\) 와 \(\tilde{y}\) 는 수식상으로는 같은 예측 분포에서 뽑힌다. 그러나 개념적으로 다르다.
- \(y^{rep}\) 는 같은 실험을 다시 한 번 수행했을 때의 결과. 회귀에서라면 같은 \(x\), 같은 처리, 같은 표본 크기.
- \(\tilde{y}\) 는 일반적인 미래 관측. 설명변수가 다를 수도, 표본 크기가 다를 수도 있다.
모델 점검에서 우리가 궁금한 것은 “이 데이터를 다시 뽑으면 비슷한 모양이 나오는가”다. 설명변수가 바뀌면 모양 비교가 무의미해진다. 그래서 Ch.6의 전용 언어가 \(y^{rep}\) 다. 미래 예측 언어 \(\tilde{y}\) 와는 용도가 다른 두 개념이다.
3.4 검정량 선택 — 무엇을 보고 점검하는가
검정량 \(T(y, \theta)\) 는 데이터의 어떤 측면을 보고 싶은지 에 맞춰 고른다. 대표적 예시:
| 관심 축 | 검정량 | 의미 |
|---|---|---|
| 중심 경향 | \(\bar{y}\) | 평균이 잘 맞는가 |
| 산포 | \(s^2(y)\) | 분산이 잘 맞는가 |
| 꼬리 | \(\min(y_i)\), \(\max(y_i)\) | 극단값을 재현하는가 |
| 비대칭 | \(\|y_{(q_{0.9})} - \theta\| - \|y_{(q_{0.1})} - \theta\|\) | 좌·우 꼬리 대칭이 잘 맞는가 |
| 이상치 | \(\#\{i : \|y_i - \bar{y}\| > 3s\}\) | 3시그마 밖 개수 |
검정량의 선택은 모형을 어디서 부수고 싶은가와 직결된다. 모형이 “데이터의 어떤 부분”을 놓쳤는지 진단하고 싶다면 그 부분을 노리는 \(T\) 를 설계한다. Ch.6의 Newcomb 광속 측정 데이터 예시에서, 정규 모형은 평균과 분산은 잘 맞추지만 최솟값(\(\min y_i\))은 심하게 어긋났다. 이것이 “정규 모형이 꼬리의 이상치를 잡지 못한다”는 진단으로 이어진다.
3.5 충족 통계량을 \(T\) 로 쓰면 안 되는 이유 — 함정 하나
예를 들어 정규 모형에서 분산 \(\sigma^2\) 에 대해 표본 분산은 충족 통계량이다. 이를 \(T(y) = s^2(y)\) 로 쓰면, 무정보 사전 하에서 사후분포는 관측된 표본 분산 근처에 자동으로 중심을 잡는다. 결과적으로 사후 예측 분포의 분산도 같은 위치에 중심이 잡힌다. 그러면 \(T(y^{rep})\) 과 \(T(y)\) 가 구분이 안 되고, \(p_B\) 는 0.5 근처에 박힌다.
즉, “모형이 잘 맞는다”는 진단이 자동으로 나온다 — 진짜 적합해서가 아니라, \(T\) 가 모형이 이미 맞추기로 약속한 양이라서. 충족 통계량은 모형에 의해 “예약된 정보”이므로 점검의 재료로는 쓸모가 없다.
이 함정은 Ch.6에서 Newcomb 데이터의 표본 분산 검정 예시로 드러난다 (\(p_B = 0.48\)). 같은 데이터를 최솟값으로 점검하면 \(p_B \approx 0\) 으로 분명한 부적합이 드러난다. 무엇으로 점검하는지가 결론을 바꾼다.
3.6 Bayesian p-value vs Classical p-value — 수학적 차이
고전 p-값 (6.2)과 Bayesian p-값 (6.3)을 나란히 놓는다.
\[ p_C = \Pr\!\left(T(y^{rep}) \geq T(y) \,\middle|\, \theta\right) \tag{6.2} \]
\[ p_B = \Pr\!\left(T(y^{rep}, \theta) \geq T(y, \theta) \,\middle|\, y\right) \tag{6.3} \]
세 가지 구조적 차이가 있다.
| 항목 | Classical \(p_C\) | Bayesian \(p_B\) |
|---|---|---|
| 확률 계산 조건 | \(\theta\) 고정 (보통 MLE 또는 null 값) | \(y\) 고정, \(\theta\) 는 사후분포 위에서 적분 |
| 검정량 의존성 | \(T(y)\) — 데이터만 | \(T(y, \theta)\) — 데이터와 모수 모두 가능 |
| nuisance parameter | 별도 처리 필요 (profile, plug-in 등) | 사후분포 위 적분으로 자동 제거 |
고전적 검정에서는 관심 모수 외의 모수(=방해 모수)가 있을 때 이들을 어떻게 제거할지가 늘 문제였다. 프로파일 가능도, 플러그인 추정, 조건부 분포 등 기법이 필요했다.
Bayesian은 이 단계를 사후분포의 구조 안에 녹인다. \(T(y, \theta)\) 는 \(\theta\) 에 의존할 수 있고, 그 \(\theta\) 는 이미 사후분포 \(p(\theta|y)\) 에서 뽑히므로, 불확실성이 통계량 자체에 흡수된다. 방해 모수를 따로 처리할 필요가 없다. 계산 관점에서는 “사후에서 \(\theta\) 를 뽑고, 그 \(\theta\) 로 \(y^{rep}\) 을 뽑고, 그 쌍에서 \(T\) 를 평가한다”는 한 줄 루프로 끝난다.
3.7 계산 절차 — 시뮬레이션
\(p_B\) 의 실제 계산은 사후 시뮬레이션으로 이뤄진다. \(\theta^{(s)} \sim p(\theta|y)\) 를 \(S\) 개 뽑았다면:
- 각 \(\theta^{(s)}\) 마다 복제 데이터 \(y^{rep,(s)} \sim p(y^{rep} \mid \theta^{(s)})\) 를 한 개 뽑는다.
- 쌍 \((y, \theta^{(s)})\) 와 \((y^{rep,(s)}, \theta^{(s)})\) 에서 각각 \(T\) 를 계산한다.
- \(p_B \approx \dfrac{1}{S} \sum_{s=1}^{S} I\!\left[\, T(y^{rep,(s)}, \theta^{(s)}) \geq T(y, \theta^{(s)}) \,\right]\).
MCMC로 뽑힌 사후 표본이 이미 있다면, 각 표본마다 \(y^{rep}\) 를 하나씩 뽑는 추가 한 줄이면 점검이 완성된다. 이것이 Bayesian p-value 가 “비용이 거의 공짜”인 이유다.
3.8 6.4 시각적 점검 — 숫자 하나로 다 말할 수 없다
\(p_B\) 는 스칼라 요약이다. 하나의 숫자로 불일치의 모든 측면을 담을 수 없다. Ch.6.4는 시각적 점검을 강조한다.
- 히스토그램 비교 — 관측 \(y\) 의 히스토그램과 복제 \(y^{rep,(s)}\) 의 히스토그램을 나란히 놓는다. 분포 모양, 비대칭, 극단값이 한눈에 보인다.
- 산점도 — \(T(y, \theta^{(s)})\) 을 가로축, \(T(y^{rep,(s)}, \theta^{(s)})\) 을 세로축에 놓고 \(S\) 점을 찍는다. 대각선에서 벗어난 패턴이 부적합의 구조를 드러낸다.
- 잔차 그림 — 관측값과 모형 예측의 잔차가 체계적 패턴(예: 분산의 이질성, 비선형성)을 보이면 모형 확장이 필요하다.
좋은 모델 점검 워크플로는 스칼라 \(p_B\) + 시각적 플롯 + 도메인 해석의 세 축으로 작동한다. \(p_B\) 만으로 판단하면 미묘한 부적합을 놓치고, 플롯만으로 판단하면 정량 근거가 부족해진다.
3.9 6.5 실전 사례 — 8 학교 예시의 점검 결과
Ch.5의 정규 계층 모형(8개 학교 SAT 코칭 효과)을 Ch.6.5에서 점검한다. 다양한 검정량(평균, 최댓값, 범위 등)에 대해 \(p_B\) 가 모두 0.5 근처로 나오며, 시각적 점검에서도 관측치가 \(y^{rep}\) 분포의 중심 영역에 놓인다. 결론: 이 계층 모형은 8학교 데이터의 관측 패턴을 충분히 재현한다. 모형이 “참”이라는 말이 아니라, 관심 추론(각 학교 효과의 shrinkage 추정) 에 영향을 줄 만한 체계적 부적합이 발견되지 않았다는 뜻이다.
4 왜 필요한가 — 점검이 없으면 어떤 일이 생기는가
점검 없이 사후분포를 그대로 보고하는 분석에서 흔히 벌어지는 사고:
- 꼬리 이상치 누락 — 정규 가정 하에서 3시그마 밖 관측이 “희박”하다고 보고하지만, 실제로는 t-분포나 혼합 모형이 필요한 상황. 이상 탐지·리스크 모형에서는 치명적.
- 분산 구조 오인 — 등분산을 가정했는데 실제로는 그룹별·시점별 분산이 다른 상황. 계층 모형의 shrinkage 강도가 왜곡된다.
- 독립성 위반 — 시계열·공간 구조가 있는 데이터에 i.i.d. 가정을 쓰면 과신(overconfidence) 한 사후 구간이 나온다.
- 회귀 함수 형태 오인 — 선형성을 가정했지만 실제는 비선형. 외삽 예측이 실무 지식과 충돌한다.
네 경우 모두, 사후 예측 점검을 간단히 돌렸다면 잔차 패턴이나 꼬리 불일치로 즉시 감지할 수 있다. 비용은 시뮬레이션 몇 개 추가일 뿐인데, 놓친 비용은 의사결정 품질 전체에 영향을 준다.
5 응용 분야
| 분야 | 점검 대상 | 검정량 예시 |
|---|---|---|
| 임상시험 | 처치 반응 분포의 꼬리 | \(\max(y_i)\), 3시그마 이탈 비율 |
| 역학 | 발생 건수의 과분산 | 관측 분산 / 모형 예측 분산 |
| 금융 리스크 | 수익률 꼬리 | VaR 초과 비율, 최솟값 |
| 생태학 | 종 풍부도의 희소성 | 관측 제로 비율 |
| 품질관리 | 공정 이탈 빈도 | \(\#\{\|y_i - \mu\| > k\sigma\}\) |
| NLP / 검색 | 길이 분포 재현 | 평균 길이, 상위 백분위 길이 |
데이터 사이언스 실무에서 사후 예측 점검은 “모형이 맞다고 주장하기 전에 반드시 통과해야 할 자기 일관성 게이트” 다. 특히 의사결정 자동화 파이프라인(예: 이상 탐지, A/B 분석, 수요 예측)의 모형 교체 시 배포 전 점검 스텝으로 넣으면, 데이터 드리프트로 인한 모형 적합도 저하를 조기에 포착한다.
6 간단한 예시 — Newcomb 광속 측정 데이터의 정규 모형 점검
Gelman BDA Ch.6 의 대표 예시를 축약한다.
- 데이터: Simon Newcomb이 광속을 측정한 66회 관측.
- 모형: \(y_i \sim \mathcal{N}(\mu, \sigma^2)\), \(\mu, \sigma^2\) 에 무정보 사전.
- 사후분포: \(\mu, \sigma^2\) 의 joint posterior.
세 가지 검정량으로 점검한다.
- \(T_1(y) = s^2(y)\) (표본 분산) — \(s^2\) 는 \(\sigma^2\) 의 충족 통계량에 가까움 → \(p_B \approx 0.48\). “잘 맞는다”처럼 보이지만, 이는 함정: 모형이 자동으로 이 양을 맞추도록 되어 있다.
- \(T_2(y) = \min(y_i)\) (최솟값) — 데이터에는 -44 같은 극단 이상치가 하나 있다. 정규 모형의 복제에서는 이 정도 최솟값이 거의 나오지 않음 → \(p_B \approx 0\). 정규 꼬리가 너무 가볍다는 진단.
- \(T_3(y, \theta) = \|y_{(61)} - \theta\| - \|y_{(6)} - \theta\|\) (비대칭) — 중심 주변의 좌·우 편차 차이. \(p_B \approx 0.26\). “중심 근처의 비대칭은 심각하지 않지만, 꼬리는 확실히 부적합”이라는 결론.
이 세 검정량의 조합이 모형의 구체적 약점을 국소화한다. 평균·분산 같은 중심 요약은 잘 맞지만, 극단 꼬리는 분명히 빗나간다. 해석: t-분포로 표집분포를 바꾸거나 이상치를 별도 성분으로 분리하는 혼합 모형이 필요하다.
7 코드 예시 — 정규 모형의 사후 예측 점검
간단한 합성 데이터로 사후 예측 점검을 돌린다. Step 1은 numpy 로 직접 구현해 원리를 확인하고, Step 2는 pymc 로 실무 워크플로를 보인다.
7.1 Step 1: numpy 로 사후 예측 분포 직접 시뮬레이션
import numpy as np
rng = np.random.default_rng(42)
# 합성 데이터: 정규에 이상치 3개 섞음
y = np.concatenate([rng.normal(0, 1, size=60), np.array([-6, -5.5, 5.5])])
n = len(y)
# 무정보 사전 하에서 사후: (mu, sigma^2) ~ Normal-Inverse-Chi-squared
# (Gelman Ch.3 참조) — 여기서는 간단히 mu|sigma^2 ~ N(ybar, sigma^2/n),
# sigma^2 ~ scaled inv-chi^2(n-1, s^2)
ybar = y.mean()
s2 = y.var(ddof=1)
S = 2000 # 사후 표본 수
sigma2_samples = (n - 1) * s2 / rng.chisquare(df=n - 1, size=S)
sigma_samples = np.sqrt(sigma2_samples)
mu_samples = rng.normal(loc=ybar, scale=sigma_samples / np.sqrt(n))
# 각 (mu, sigma^2) 쌍에서 y^rep 을 한 세트씩 뽑는다 — 샘플 크기는 n
y_rep = rng.normal(
loc=mu_samples[:, None],
scale=sigma_samples[:, None],
size=(S, n),
)
# 검정량 3개
T_var_obs = y.var(ddof=1)
T_min_obs = y.min()
T_asym_obs = np.abs(np.sort(y)[60] - mu_samples) - np.abs(np.sort(y)[5] - mu_samples)
T_var_rep = y_rep.var(axis=1, ddof=1)
T_min_rep = y_rep.min(axis=1)
y_rep_sorted = np.sort(y_rep, axis=1)
T_asym_rep = np.abs(y_rep_sorted[:, 60] - mu_samples) - np.abs(y_rep_sorted[:, 5] - mu_samples)
# Bayesian p-value
p_var = np.mean(T_var_rep >= T_var_obs)
p_min = np.mean(T_min_rep <= T_min_obs) # 최솟값은 <= 방향이 자연스러움
p_asym = np.mean(T_asym_rep >= T_asym_obs)
print(f"p_B (variance) = {p_var:.3f}") # 0.5 근처 (분산은 충족 통계량)
print(f"p_B (min) = {p_min:.3f}") # 0에 가까움 (꼬리 부적합)
print(f"p_B (asymmetry) = {p_asym:.3f}") # 중간값결과 해석:
- \(p_B\)(분산) ≈ 0.5 — 예상대로, 표본 분산은 모형이 자동으로 맞추는 양.
- \(p_B\)(최솟값) ≈ 0 — 정규 꼬리가 이상치를 재현하지 못함. 진단 성공.
- \(p_B\)(비대칭) — 중간 영역 비대칭은 검정 가능.
7.2 Step 2: pymc 로 확률 프로그램 작성 + sample_posterior_predictive
import numpy as np
import pymc as pm
y = np.concatenate([
np.random.default_rng(42).normal(0, 1, size=60),
np.array([-6, -5.5, 5.5]),
])
with pm.Model() as normal_model:
mu = pm.Normal("mu", mu=0, sigma=10)
sigma = pm.HalfNormal("sigma", sigma=10)
y_obs = pm.Normal("y_obs", mu=mu, sigma=sigma, observed=y)
idata = pm.sample(1000, tune=1000, target_accept=0.95)
# 사후 예측 표본 — 각 사후 표본마다 y^rep 을 뽑는다
idata.extend(pm.sample_posterior_predictive(idata))
# arviz 로 시각적 점검
import arviz as az
az.plot_ppc(idata, kind="kde") # 관측 KDE vs 복제 KDE 50개
az.plot_bpv(idata, kind="t_stat", t_stat="min") # 최솟값 기준 Bayesian p-value
az.plot_bpv(idata, kind="t_stat", t_stat="std")arviz.plot_bpv 는 Bayesian p-value의 시각적 점검을 자동화한다. plot_ppc 의 KDE 겹침이 “관측과 복제가 얼마나 닮았는지”를 한 눈에 보여주고, plot_bpv 는 각 검정량의 \(p_B\) 와 참조 분포를 함께 그려 어디가 어긋나는지를 정량+시각 양쪽으로 제시한다.
실무 파이프라인에서는 (1) 모델 피팅 → (2) sample_posterior_predictive → (3) 관심 검정량 3~5개에 대해 \(p_B\) 계산 → (4) KDE·잔차 플롯을 함께 보고서에 포함하는 것이 권장 흐름이다.
8 점검 결과를 어떻게 해석할 것인가 — 체크리스트
사후 예측 점검의 결과를 의사결정에 연결하는 실무 체크리스트.
- 관심 추론과 검정량이 정렬되어 있는가 — 관심이 평균 처치효과라면 평균·분산 계열 검정량이 우선이다. 꼬리 위험이 관심이면 극단 검정량이 우선이다.
- \(p_B\)가 극단(0 또는 1 근처)인 검정량이 있는가 — 있다면 그 축에서 모형이 데이터를 재현하지 못한다. 확장(t-분포, 혼합, 계층화 추가, 비선형 함수 등)을 고려한다.
- 시각적 점검이 스칼라와 일치하는가 — 일치하면 진단이 확고하다. 불일치하면 검정량이 불일치의 방향을 포착하지 못하는 것일 수 있다.
- 모형 확장 후에도 점검을 반복했는가 — 한 번의 점검 통과로 끝내지 않는다. 확장 후 새 잔재 패턴이 생길 수 있다.
- 도메인 지식과 충돌하지 않는가 — \(p_B\) 가 모두 0.5 근처여도, 도메인 전문가가 “이 예측은 말이 안 된다”고 하면 외부 검증이 필요하다. 수치 진단과 실무 지식은 서로 보완하는 두 축이다.
9 관련 주제
선행 지식
- Ch.1 Probability and Inference — 사후분포와 예측분포의 정의
- Ch.3 Multiparameter Models — 정규 \((\mu, \sigma^2)\) 의 joint posterior
- Ch.5 Hierarchical Models — 8 학교 예제의 원판
Ch.6 세부 절
후속 주제
- Part II 개관 — Ch.6~9 의 큰 그림
- Ch.7 Evaluating, Comparing, and Expanding Models — WAIC, LOO-CV, 모형 비교 (후속 작성)
관련 개념
- 고전적 p-value (Casella & Berger, Ch.8) — \(p_C\) 와 \(p_B\) 의 수학적 차이
- MCMC 수렴 진단 — 사후 시뮬레이션의 품질이 점검 결과의 신뢰도를 좌우한다