베이즈 정리
베이즈 통계학을 알아보기 이전에 조건부확률의 개념을 이해해야한다. 그런데 이전의 '확률론' 강의로 조건부 확률에 대한 개념을 이해했으니 바로 수식으로 나타내보면 다음과 같다.
여기서 베이즈 정리는 A라는 새로운 정보가 주어졌을 때 P(B)로부터 P(B|A)를 계산하는 방법을 제공한다. 또한 두 확률변수의 사전 확률과 사후 확률 간의 관계를 나타내는 정리로 다음과 같이 사전확률 P(θ)와 가능도(likelihood)확률 P(D|θ)를 안다면 사후 확률 P(θ|D)를 알 수 있다.
각각의 의미를 좀 더 자세히 살펴보면 다음과 같이 정리할 수 있다.
- 사전확률 : 결과가 나타나기 전에 결정된 원인(θ)의 확률을 의미한다. 다시 말해 데이터가 주어지지 않았을때 원래있던 확률이라고 할 수 있다.
- 가능도확률 : 원인(θ)이 발생했다는 가정하에 결과(D)가 발생할 확률을 의미한다.
- 사후확률 : 결과(D)가 발생했다는 가정하에 원인(θ)이 발생했을 확률을 말한다. 다시 말해 데이터가 주어졌을때 결과가 성립할 확률이라고 할 수 있다.
- Evidence : 데이터 자체의 분포를 의미한다.
간단한 예로 바이러스의 발병률이 10%로 알려져있고 이 바이러스에 실제로 걸렸을 때 검진될 확률은 99%, 실제로 걸리지 않았을 때 걸렸다고 오진될 확률이 1%라고 해보자. 이때 바이러스에 걸렸다고 검진됐을 때 정말로 감염되었을 확률을 구하면 다음과 같이 수식에 대입할 수 있다.
0.1은 사전에 알고 있는 발병률 10%를 사전확률로, 0.99는 바이러스에 걸릴 가능도 확률 99%, evidence에는 바이러스로 검진될 확률과 오진될 확률에 각각 사전확률과 (1-사전확률)을 곱한뒤 더해주는 것으로 대입하였다. 이어서 계산하면 다음과 같이 약 91%의 확률이 나온다. 만약에 사전확률이 주어지지않으면 베이즈 정리를 구하기 힘들다. 임의로도 줄 수도 있겠지만 효과가 떨어지는 단점이 있다.
만약 오진률이 10% 늘어났다고 한다면 다음과 같이 계산되어 약 52% 확률로 현저히 떨어지는 것을 확인할 수 있는데 이는 오탐율(False alarm)이 오르면 정밀도(Precision)이 떨어진다고 말할 수 있다.
혼동 행렬을 바탕으로 시각화를 하여 좀 더 살펴보면 다음과 같은 그림이 그려진다. 혼동 행렬은 이전에 작성한 글이 있으니 참고하자.
각 케이스 별로 정리해보면 다음과 같다.
- TP(True Positive) : 양성의 결과가 나왔을 때 실제로도 양성일 때
- TN(False Positive) : 양성의 결과가 나왔는데 실제로는 양성이 아닐 때
- TN(True Nagative) : 음성의 결과가 나왔는데 실제로도 음성일 때
- TP(True Positive) : 음성의 결과가 나왔는데 실제로는 음성이 아닐 때
헷갈릴 수도 있으니 다시 간단히 정리하면 'Positive = 양성, Negative = 음성'이라고 했을 때 앞에 True, False가 옴에 따라 양성일 때와 아닐 때, 음성일 때와 아닐 때로 구분할 수 있다.
이를 바탕으로 정밀도를 나타내는 P(θ|D)는 다음과 같은 식으로도 표현할 수 있다.
이렇게 계산한 사후확률은 사전확률로 사용하여 다음으로 갱신된 사후확률을 계산할 수가 있다. 즉, 이전에 계산한 사후확률을 사전확률로서 또 한 번 사후확률을 계산한다는 것이다. 다시 위에 있는 수식을 가져와보면 P(θ)가 이전에 계산한 P(θ|D)가 들어가게 될 것이다.
다시 예시로 돌아와보면 바이러스를 판정받은 사람이 두 번째 검진 때도 양성이 나왔는데 진짜로 양성인 확률을 구할 수 있을 것이다. 그러니까 다음과 같이 대입할 수 있을 것이다.
결과적으로 두 번째 검진받았을 때 양성이 나왔는데 진짜로 양성일 확률은 약 91.7%가 나온다.
인과관계
지금까지 말한 조건부 확률과 베이즈 정리는 유용한 통계적 해석을 제공하지만 이 조건부 확률만으로 인과관계(causality)를 추론할 때 함부로 사용해서는 안된다. 만약 새로운 데이터가 들어올 때 조건부확률 기반으로 예측을 하면 확률이 많이 달라질 것이다. 따라서 인과관계 기반 예측을 통해 경건한 예측모형을 만들어야하는데 이 인과관계 기반 예측은 조건부확률 기반 예측만큼 높은 확률을 가지지 못하지만 데이터 분포에 따른 변화에 강건한 특징을 가지고 있다. 즉, 예측 정확도가 많이 바뀌지 않는다.
이 인과관계를 알아내기 위해서는 중첩요인(confounding factor)라는 녀석의 효과를 제거하고 원인에 해당하는 변수만의 인과관계를 계산해야한다. 여기서 '중첩요인'은 데이터가 변할 때 정확도를 떨어뜨릴 수 있는 요인이라고 말할 수 있다. 예를 들어서 키에 따른 지능지수를 판단했을 때 키가 클수록 높은 것으로 나타나는데 이 때 연령이라는 중첩요인 때문에 가짜 연관성(spurious correlation)이 관찰된다. 다음 그림으로 보면 Z가 중첩요인(연령)이 될 것이고 T가 키, R이 지능지수이라 할 수 있다.
'Boostcamp AI Tech' 카테고리의 다른 글
[Boostcamp 1주차] 피어세션과 학습 회고 (0) | 2021.08.04 |
---|---|
[Boostcamp Day-3] AI Math - CNN 첫걸음 (0) | 2021.08.04 |
[Boostcamp Day-3] AI Math - 통계학 (0) | 2021.08.04 |
[Boostcamp Day-2] Python - String and advanced function concept (0) | 2021.08.03 |
[Boostcamp Day-2] Python - Conditionals and Loops (0) | 2021.08.03 |