모델의 설명력을 비교하는 방법
[♪ 밝은 음악]
이지은: 안녕하세요, '안개 속을 걷다'의 이지은입니다! 오늘도 불확실성과 친해지는 시간, 함께해요!
[띠링!]
오늘은 고민 사연 하나로 시작해 볼게요. "지은님, 저희 회사에서 매출이 떨어진 원인을 분석하고 있어요. 경쟁사 때문인지, 제품 문제인지, 마케팅 문제인지... 다 가능성이 있는데, 예산은 한정되어 있어서 하나에만 집중해야 해요. 어떻게 선택하죠?"
[잠시 멈춤]
아, 정말 어려운 상황이시네요. 지난 시간에 우리가 여러 모델을 동시에 고려하는 법을 배웠잖아요? '경쟁사 모델 30%, 제품 모델 45%, 마케팅 모델 25%...' 이렇게 확률을 부여하는 거 말이에요.
그런데 이 청취자분의 사연처럼 현실에서는 여러 가능성을 계속 고려할 수만은 없어요. 예산은 한정되어 있고, 시간도 촉박하고... 결국 하나를 선택해서 올인해야 할 때가 있죠.
오늘은 바로 그 선택의 기준을 알아볼게요. 여러 모델을 어떻게 비교하고, 최종적으로 하나를 어떻게 골라야 하는지 함께 배워봅시다.
베이지안 추론에서는 여러 모델을 동시에 고려하는 것이 이상적입니다. 하지만 현실에서는 모델 하나를 골라야 할 때가 있습니다. 의사가 치료 방침을 정하려면 진단을 확정해야 하고, 연구자는 논문에 보고할 모델을 선택해야 합니다. 오늘 사연을 보내주신 분도 마찬가지죠. 세 가지 원인에 모두 조금씩 대응하기보다, 가장 유력한 원인 하나를 골라 예산을 집중해야 하는 상황입니다.
어떤 모델을 선택해야 할까요? 먼저 떠오르는 생각은 '데이터에 가장 잘 맞는 모델을 고르자'일 겁니다. 직관적으로 맞는 말 같지만, 여기에는 함정이 있습니다. 학생의 시험 점수를 설명하는 상황을 생각해 보세요. 단순한 모델은 '공부 시간이 길수록 점수가 높다'고 가정합니다. 복잡한 모델은 공부 시간뿐 아니라 수면 시간, 아침 식사 여부, 교실 온도, 시험 전날 날씨, 심지어 학생이 입은 옷 색깔까지 20개의 요인을 고려합니다.
어떤 모델이 더 좋을까요? 현재 데이터(이미 수집된 학생들의 시험 점수)만 보면 복잡한 모델이 무조건 더 정확합니다. 복잡한 모델은 단순한 모델이 고려하는 공부 시간을 이미 포함하고 있으니, 추가 요인만큼 데이터를 더 정밀하게 맞출 수 있습니다. 20개 요인을 모두 고려하면 각 학생의 점수를 거의 완벽하게 설명할 수 있죠. 하지만 다음 시험 점수를 예측할 때는 어떨까요? 옷 색깔이 정말 점수에 영향을 미칠까요? 아마 아닐 겁니다. 복잡한 모델은 잡음(노이즈)까지 신호로 착각할 수 있습니다. 이러한 현상을 과적합(overfitting)이라고 합니다.
14세기 철학자 오컴의 윌리엄(William of Ockham)은 "필요 없이 다수를 상정하지 말라"고 했습니다. 이로부터 유래한 오컴의 면도날(Occam's razor)이라는 원리는, 같은 현상을 설명하는 여러 이론이 있다면 가장 간단한 것을 선택하라고 합니다[1]. 불필요한 복잡성을 잘라내는 면도날이죠. 베이지안 추론은 이 원리를 자동으로 구현합니다.
어떻게 그럴 수 있을까요? 동물 맞추기 게임으로 설명해 보겠습니다. 아이들 파티에서 동물 소리를 듣고 어떤 동물인지 맞추는 게임을 한다고 상상해 보세요. '꽥꽥'이라는 소리가 들립니다.
두 개의 모델을 생각해 봅시다. 단순한 '조류' 모델은 오리, 거위, 앵무새 등 약 10종의 새만 고려합니다. 복잡한 '동물' 모델은 포유류, 조류, 파충류, 곤충 등 약 10,000종을 모두 고려합니다. 참고로 '조류' 모델은 '동물' 모델에 포함됩니다. 모든 새는 동물이니까요. 이런 관계에 있는 모델을 중첩 모델(nested models)이라고 부릅니다.
먼저 조류 모델을 살펴봅시다. 10종의 새를 오리, 거위, 앵무새, 까마귀, 나머지 6종(기타)으로 묶고, 경험에 비추어 사전 확률을 오리 40%, 거위 20%, 앵무새 15%, 까마귀 10%, 기타 15%로 설정합니다. 오리는 정확히 '꽥꽥' 소리를 내므로 이 소리를 낼 가능성이 90%(가설 데이터 지지도 = 90점)로 높습니다. 거위는 비슷하지만 다른 소리를 내므로 30점, 앵무새는 흉내를 낼 수 있어 40점, 까마귀는 20점, 기타 새들은 평균 5점으로 해봅시다. 이 모델의 데이터 지지도는 40% × 90점 + 20% × 30점 + 15% × 40점 + 10% × 20점 + 15% × 5점 = 50.8점입니다.
동물 모델은 어떨까요? 10,000종 중에서 오리는 겨우 0.01%의 사전 확률을 갖습니다(이 수치들은 원리를 보여주기 위해 대략적으로 설정한 것입니다). 전체 동물 중에서 오리가 차지하는 비율이 그만큼 작으니까요. 거위는 0.005%, 앵무새류는 0.02% 정도입니다. 나머지 9,970종은 '꽥꽥' 소리를 전혀 낼 수 없습니다(즉, 가설 데이터 지지도가 0에 근접). 계산해 보면 전체 모델 데이터 지지도는 약 0.02점에 불과합니다.
왜 이런 차이가 날까요? 복잡한 모델은 두 가지 불리함을 안고 있습니다.
첫째, 사전 확률이 분산됩니다. 케이크를 10명이 나눠먹는 것과 10,000명이 나눠먹는 것을 비교해 보세요. 10,000종에 확률을 분산시키면 각 동물의 사전 확률이 매우 작아지는 것도 같은 이치입니다. 오리의 사전 확률이 단순 모델에서는 40%였지만 복잡 모델에서는 0.01%로 줄어듭니다.
둘째, 대다수 가설의 데이터 지지도는 작습니다. 10,000종 중 9,970종은 '꽥꽥' 소리를 전혀 낼 수 없어 데이터 지지도가 0점에 가깝습니다. 모델 데이터 지지도는 가설 데이터 지지도의 가중 평균인데, 대부분의 항이 0에 가까우면 가중 평균도 매우 작아집니다.
이것이 베이지안 추론에서 오컴의 면도날(Occam's razor)이 자연스럽게 구현되는 방식입니다[2]. 복잡성이 정당화되려면, 그만큼 데이터를 훨씬 더 잘 설명해야 합니다. 단순히 조금 더 잘 맞는다고 해서 복잡한 모델을 선택하지 않는 거죠.
앞서 본 학생 성적 예시에도 같은 원리가 적용됩니다. 20개 요인 모델은 가설이 폭발적으로 많지만 대부분은 쓸모없으니, 모델 데이터 지지도가 오히려 낮아질 수 있습니다.
이제 모델을 비교하는 도구를 소개하겠습니다. 두 모델을 비교할 때는 베이즈 인수(Bayes Factor)를 사용합니다[3]. 이것을 유도하는 과정을 보면, 모델 1과 모델 2에 각각 베이즈 정리를 적용한 후 첫 번째 식을 두 번째 식으로 나눕니다:
이를 풀어쓰면, 모델 사후 확률 비율 = 모델 데이터 지지도 비율 × 모델 사전 확률 비율입니다. 이 중 모델 데이터 지지도의 비율을 베이즈 인수라고 부르며, 이는 '데이터가 모델1을 모델2보다 얼마나 더 지지하는가?'를 나타냅니다.
동물 맞추기 예시에서 베이즈 인수는 50.8점 / 0.02점 = 약 2,500입니다. 데이터가 조류 모델을 동물 모델보다 2,500배 더 강하게 지지한다는 뜻입니다. 실용적인 팁을 하나 드리면, 베이즈 인수를 계산할 때는 설명력이 큰 모델을 분자에 놓는 것이 해석하기 편합니다.
베이즈 인수의 크기는 어떻게 해석할까요? 일반적으로 1-3은 언급할 정도의 약한 증거, 3-20은 긍정적 증거, 20-150은 강한 증거, 150 이상은 매우 강한 증거로 봅니다[3]. 2,500은 압도적으로 강한 증거입니다. 하지만 이런 기준을 절대적으로 맹신하기보다는 상황과 맥락에 맞게 해석해야 합니다[4,5]. 참고로, 베이즈 인수가 모델 안 가설의 사전 확률 설정에 민감하고 계산이 어려울 수 있어서, 교차 검증(cross-validation) 같은 다른 도구를 선호하는 전문가들도 있습니다.
이 사례에서는 한 모델이 다른 모델에 포함되는 중첩 모델을 다뤘지만, 지난 시간의 친구 연락 예시처럼 서로 겹치지 않는 독립적인 모델들도 같은 방식으로 베이즈 인수를 계산해 비교할 수 있습니다.
앞의 수식을 다시 보면, 모델 사후 확률 비율은 베이즈 인수에 모델 사전 확률 비율을 곱한 것이었습니다. 지금까지는 베이즈 인수에 집중했는데, 모델을 선택할 때는 베이즈 인수와 사후 확률 비율 중 무엇을 사용해야 할까요? 베이즈 인수는 순전히 데이터가 말하는 것에 집중합니다. '이 데이터만 보면 어느 모델이 더 그럴듯한가?'라는 질문에 답합니다. 반면 사후 확률 비율은 사전 믿음까지 고려합니다. '모든 것을 고려했을 때 어느 모델이 옳을 가능성이 높은가?'라는 질문이죠. 과학적 발견을 평가할 때는 베이즈 인수를, 실제 의사결정을 할 때는 사후 확률 비율을 주로 사용합니다. 이 구분이 실제로 어떤 차이를 만드는지는 오늘의 미션에서 확인해 보겠습니다.
하지만 모델 선택이 이런 수치만으로 결정되는 것은 아닙니다. 모델을 선택하는 목적이 무엇인지에 따라 최선의 선택이 달라질 수 있습니다.
예측이 목적인 경우, 모델 하나를 골라 그 모델을 사용하여 예측하기보다, 모델의 사후 확률을 가중치로 사용하여 여러 모델의 예측을 가중 평균하는 것이 원칙힙니다. 이를 모델 평균화(model averaging)라고 합니다[4,5,6]. 하지만 현실에서는 계산 자원 부족 때문에, 혹은 해석의 편의를 위해 하나의 모델을 선택해야 할 때가 있죠. 이 경우 모델 데이터 지지도가 높은 모델이 자연스러운 출발점이 됩니다.
이해가 목적일 때는 다릅니다. 아이가 수학을 어려워하는 이유를 이해하고 싶다면, '추상적 사고가 아직 발달 중이다'라는 단순 명료한 설명이 좋습니다. 뇌과학, 유전자, 환경, 교육과정, 교사, 교재, 조명, 의자 높이까지 모두 포함한 모델은 오히려 핵심을 흐립니다. 이해가 목적이면 핵심을 짚는 단순 명료한 설명이 좋습니다[7].
개입이 목적일 때는 또 다릅니다. 직원들의 생산성을 높이고 싶다면, 근무 환경, 인센티브, 교육 같이 개입해서 바꿀 수 있는 요인을 중점적으로 고려하는 모델이 좋습니다. 성격, IQ, 가정환경 같은 바꿀 수 없는 요인을 포함한 모델은 실용적이지 않죠. 개입이 목적이면 실제로 조작 가능한 변수를 포함한 모델이 유용합니다[8,9].
때로는 여러 목적을 동시에 달성해야 할 수도 있습니다. 의사가 환자를 진단할 때는 정확한 예측(이 환자가 어떤 질병인가?)과 명확한 설명(왜 이 증상이 나타나는가?), 그리고 효과적인 개입(어떤 치료를 해야 하는가?)이 모두 필요합니다. 이런 경우에는 각 목적에 맞는 모델을 따로 사용하거나, 적절한 균형점을 찾아야 합니다. 상황은 다양하지만 기본 원리는 같습니다. 모델이 데이터를 얼마나 잘 설명하는지 비교하고, 목적에 맞게 선택하는 것입니다.
[♪ 차분한 음악]
이지은: 오늘은 여러 모델을 비교하고 그중 하나를 골라야 할 때 어떻게 접근하면 좋은지 알아봤어요.
핵심을 정리하면:
각 모델의 전체 설명력(모델 데이터 지지도)을 계산 (모든 가설 데이터 지지도의 가중 평균)
복잡한 모델은 자동으로 페널티를 받음
베이즈 인수로 객관적 비교
사전 믿음까지 고려해 최종 선택
가장 인상적인 건 복잡한 모델이 저절로 불리해진다는 점이에요. 별도의 페널티를 매기지 않아도, 사전 확률과 데이터 지지도를 함께 고려하는 과정에서 단순한 설명이 자연스럽게 유리해지는 거죠.
오늘 사연을 보내주신 분도 이 틀을 활용할 수 있어요. 경쟁사/제품/마케팅 세 모델의 데이터 지지도를 비교하고, 업계 경험에 따른 사전 믿음을 반영한 뒤, '한정된 예산으로 개입할 수 있는 원인은 무엇인가'라는 목적까지 고려하면 답이 좁혀질 거예요.
[띠링!]
오늘의 미션! '나만의 모델 선택 연습'
현재 고민 중인 문제에 대해:
2-3개의 경쟁 모델 설정하기
각 모델이 현재 상황을 설명하는 정도 평가하기
베이즈 인수 계산하기
사전 믿음까지 고려해 최종 선택하기
예시: '왜 요즘 살이 안 빠질까?'
모델 A: 대사량 감소 (모델 데이터 지지도 60점)
모델 B: 숨은 칼로리 섭취 (모델 데이터 지지도 80점)
베이즈 인수 = 80점/60점 = 1.33 (데이터는 모델 B를 약하게 지지)
하지만 40대라서 대사량 감소 가능성이 높다고 보고, 모델 사전 확률을 A 60%, B 40%로 놓으면? 사전 믿음은 A를 1.5배(= 60/40) 지지하고, 데이터는 B를 겨우 1.33배 지지합니다. 사전 믿음의 힘이 더 세니 최종적으로 모델 A가 유력해집니다. 베이즈 인수가 약하면 사전 믿음이 결론을 뒤집을 수 있죠. 물론 이렇게 엎치락뒤치락하는 상황이라면, 하나를 성급하게 고르기보다 데이터를 더 모으는 것이 나을 수도 있어요.
다음 시간에는 지금까지 배운 모든 것을 종합해서, 하나의 사례를 베이지안 현미경으로 들여다볼 거예요. 한 학생에게 온라인 학습이 왜 도움이 되지 않았는지, 그 미스터리를 함께 풀어봐요!
선택의 순간이 올 때 기억하세요. 복잡한 설명일수록 더 강한 증거가 필요합니다. 증거가 부족하다면, 간결한 답이 이깁니다. 저는 이지은이었습니다.
[♪ 밝은 음악]
참고문헌
1. Gabbay, D. M., & Woods, J. (Eds.). (2004). Handbook of the history of logic (Vol. 1). Elsevier.
2. MacKay, D. J. C. (1992). Bayesian interpolation. Neural Computation, 4(3), 415-447. https://doi.org/10.1162/neco.1992.4.3.415
3. Kass, R. E., & Raftery, A. E. (1995). Bayes factors. Journal of the American Statistical Association, 90(430), 773--795. https://doi.org/10.1080/01621459.1995.10476572
4. Gelman, A., Carlin, J. B., Stern, H. S., Dunson, D. B., Vehtari, A., & Rubin, D. B. (2013). Bayesian data analysis (3rd ed.). CRC Press.
5. McElreath, R. (2020). Statistical rethinking: A Bayesian course with examples in R and Stan (2nd ed.). CRC Press.
6. Hoeting, J. A., Madigan, D., Raftery, A. E., & Volinsky, C. T. (1999). Bayesian model averaging: A tutorial. Statistical Science, 14(4), 382-401.
7. Lombrozo, T. (2007). Simplicity and probability in causal explanation. Cognitive Psychology
, 55(3), 232--257. https://doi.org/10.1016/j.cogpsych.2006.09.006
8. Pearl, J., & Mackenzie, D. (2018). The book of why: The new science of cause and effect. Basic Books.
9. Gelman, A., Hill, J., & Vehtari, A. (2020). Regression and other stories. Cambridge University Press.