또르르's 개발 Story

[11] 조건부 확률과 베이즈 정리 본문

부스트캠프 AI 테크 U stage/이론

[11] 조건부 확률과 베이즈 정리

또르르21 2021. 2. 1. 23:47

1️⃣ 조건부 확률과 베이즈 정리

 

조건부 확률 P(A|B)사건 B가 일어난 상황에서 사건 A가 발생할 확률을 의미합니다.

 

P(A|B)=P(AB)P(B)

 

따라서 아래와 같이 표현도 가능합니다.

만약 P(B|A) 즉, 사건 A가 일어난 상황에서 사건 B가 발생할 확률을 구하고 싶다면, 베이즈 정리를 이용하면 됩니다.

 

 

이 식을 베이즈 통계학에 적용하면 아래와 같이 표현이 가능합니다.

베이즈 통계학에서 P(θ|D)의 의미데이터가 주어져있을 때 모수 θ가 성립할 확률을 의미합니다.

 

 

  • 사후확률(posterior) : 데이터가 관찰된 이후에 측정을 하는 확률
  • 사전확률(prior) : θ에 대한 모델링을 하기 이전(데이터가 주어지기 이전) 사전에 주어지는 확률
                          즉, 데이터를 분석하기 전의 어떤 모수나 가설 (모델링하고자 하는 타겟)에 대한 가정 확률
  • 가능도 (likelihood) : 현재 주어진 모수(가정)에서 데이터가 관찰될 확률
  • Evidence : 데이터 전체 분포(확률분포)

아래와 같은 예시에서 베이즈 정리를 사용할 수 있습니다.

 

예제) COVID-99의 발병률이 10%로 알려져있다. COVID-99에 실제로 걸렸을 때 검진될 확률은 99%, 실제로 걸리지 않았을 때 오검진될 확률이 1%라고 할 때, 어떤 사람이 질병에 걸렸다고 검진결과가 나왔을 때 정말로 COVID-99에 감염되었을 확률은?

 

이 문제는 사전확률, 민감도(Recall), 오탐율(False alarm)을 가지고 정밀도(Percision)를 계산하는 문제입니다.

 

P(θ|D)=P(θ)P(D|θ)P(D)

 

  • 발병률이 10% (사전확률)
    P(θ)=0.1  

  • 실제로 걸렸을 때 검진될 확률 99% (가능도)
    P(D|θ)=0.99

  • 실제로 걸리지 않았을 때 오검진될 확률 1% (가능도)
    P(D|¬θ)=0.01

이 위의 3 공식을 가지고 P(D)를 구할 수 있습니다.

(만약, P(D|¬θ)를 모른다면 문제를 풀기 어렵습니다.)

 

 

따라서, P(θ|D)는 다음과 같습니다.

 

 

어떤 사람이 질병에 걸렸다고 검진결과가 나왔을 때 정말로 COVID-99에 감염되었을 퍼센트는 91.6%로 매우 높습니다.

 

하지만 P(D|¬θ) 즉, 실제로 걸리지 않았을 때 오검진 될 확률이 0.01에서 0.1로 늘어나게 된다면,

 

 

퍼센트가 52.4%정밀도가 엄청나게 떨어지게 됩니다.

즉, 오탐율(False alarm)이 오르면 테스트의 정밀도(Precision)가 떨어집니다.

 

조건부 확률을 시각화하면 다음과 같습니다.

https://www.edwith.org/bcaitech1

 

여기서 정밀도 P(θ|D)True Postive와 False Postive(1종 오류)의 True Postive 비율로 측정합니다.

주의할 점은 1종오류보다 2종오류(질병인데 질병이 아니라고 판단을 내렸을 때)가 더 심각한 문제이기 떄문에 주의해야 합니다.

 

여기서 FP (False Postive, 1종오류)의 값이 감소하면 정밀도(Precision)은 증가합니다.

 

베이즈 정리를 통해 새로운 데이터가 들어왔을 때 앞서 계산한 사후확률을 사전확률로 사용하여 갱신된 사후확률 계산이 가능합니다.

 

하지만, 조건부 확률은 유용한 통계적 해석을 제고하지만 인과관계(causality)를 추론할 때 함부로 사용해서는 안됩니다.

 

인과관계는 A와 B가 있을 때, "A가 B의 원인이다"와 같이 서로 연관이 있는 관계를 뜻합니다.

조건부확률을 가지고 인과관계를 추론하기도 하지만, 이 경우에는 실제로 A가 B의 원인일 때만 해석할 수 있습니다.

즉, A가 B의 원인인지 모를 경우 조건부확률만 가지고 해석하면 안 되고 여러 가지 방법을 사용해야 합니다.

 

인과관계는 데이터 분포의 변화에 강건한 예측모형을 만들 때 필요합니다.

여기서 데이터분포의 변화는 새로운 데이터가 들어왔을 때, 정책이 변경되었을 때를 뜻합니다.

 

 

위의 사진에서 조건부확률 기반 예측모형은 어떤 시나리오에서는 높은 예측정확도를 보이지만, 다른 시나리오에서는 낮은 예측정확도를 보입니다.

하지만 인과관계 기반 예측모형은 높은 예측정확도를 얻기 어렵지만, 시나리오의 예측정확도의 변동이 심하지 않습니다.

이렇게 데이터 분포 변화에 보수적인 태도를 보여 변화율이 심하게 변동되지 않습니다.

 

 

그렇다면 인과관계 기반 예측모형을 만들기 위해서 인과관계를 어떻게 만드는지 알아야 합니다.

인과관계를 알아내기 위해서는 중첩 요인(confounding factor)의 효과를 제거하고 원인에 해당하는 변수만의 인과관계를 계산해야 합니다.

아래 그림과 같이 Z가 T와 R 둘에다 효과를 제공한다면 가짜 연관성(spurious correlation)이 나오게 되며, 완전히 다른 값이 나오게 됩니다.

 

예를 들어, R지능지수, T라고 했을 때,

지능지수는 연관이 없을 것처럼 보이지만, 실제 데이터를 가지고 와보면 키가 클수록 지능지수가 높다고 나오게 됩니다.

바로, 연령이라는 중첩효과 Z를 제거하지 않았기 때문입니다.

이렇게 연령에 따른 키의 효과를 제거하지 않으면 "키가 크면 지능지수가 높다"라는 가짜 연관성이 나오게 됩니다.

 

 

인과관계 추론 예시는 다음과 같습니다.

 

예제) 신장 결석의 크기 Z에 따라 치료법 a,b를 사용했을 때 어느 것이 더 나은가?

 

 

ab를 비교했을 때,

전체적으로 봤을 때는 b가 낮지만 각각의 경우로 봤을 때 a가 높습니다. (a는 93%, 87% / b는 73%, 69%)

하지만 표에서 Overall을 보면 b가 83%로 더 높은 아이러니한 상황이 발생합니다.

 

위의 인과관계는 신장 결석의 크기 Z가 치료법 a,b와 완치 R에 효과를 미치고 있기 때문에 Z의 중첩효과를 제거해야 합니다.

따라서 do(T=a)라는 조정(intervention) 효과를 통해 Z의 개입을 제거합니다.

(즉, 치료법 a만 가지고 계산을 수행합니다.)

 

  • Pϑa(R=1) : 치료제 a로 완치될 확률
  • Pϑ(R=1|T=a,Z=z) : 신장결석 크기(0, 1)과 치료법 a일 때, 완치될 확률
  • Pϑ(Z=z) : 신장결석 크기(0, 1)의 전체 확률

치료법 do(T=a)에서는 83.25%가 나옵니다.

 

조정효과 do(T=b)를 사용했을 때는 77.89%가 나옵니다. 

 

 

 

Comments