Posts 결합, 조건부 확률과 베이즈 정리
Post
Cancel

결합, 조건부 확률과 베이즈 정리

1. 결합확률과 조건부 확률


1.1 결합확률(Joint Probabilit)

  • 사건 A와 B가 동시에 발생할 확률
  • P(A,B)


1.2 주변확률(Marginal Probability)

  • 결합확률과 대비되는 개념으로 결합되지 않는 개별 사건의 확률
  • P(A) or P(B)


1.3 조건부확률(Conditional Probability)

  • B가 사실일 경우의 사건 A에 대한 확률을 사건 B에 대한 사건 A의 조건부확률이라고함
  • P(A | B)
  • 사건 B가 진실이라면 사건 A에 대한 확률이 달라진다.


1.3.1 조건부확률 P(A | B) 요약

  • 사건 B가 발생한 경우의 사건 A의 확률
  • 표본이 이벤트 B에 속한다는 새로운 사실을 알게 되었을때
  • 이 표본이 사건 A에 속한다는 사실의 정확성 (신뢰도)이 어떻게 변하는지 알려줌


1.4 독립

  • 사건 A와 사건B의 결합확률의 값이 다음과 같은 관계가 성립하면 두 사건 A와 B는 서로독립 이라고 정의함
  • P(A,B) = P(A)P(B)
  • 독립의 경우에는 조건부확률과 원래의 확률이 같아짐


1.5 원인과 결과, 근거와 추론, 가정과 조건부 결론

  • 조건부 확률 P(A | B)에서 사건(주장/명제) B,A는 각각
    • 가정(B)과 그 가정에 따른 조건부 결론(A)
    • 원인(B)과 결과(A)
    • 근거(B)와 추론(A)
  • P(A,B) = P(A | B)P(B)


1.6 사슬 법칙

  • 조건부확률과 결합확률의 관계를 확장한것
    • P(X1,X2) = P(X1)P(X2 | X1)
    • P(X1,X2,X3) = P(X3 | X1,X2)P(X1,X2) = P(X1)P(X2 | X1)P(X3 | X1,X2)


1.7 확률변수(Random Variable)

  • 확률적인 숫자 값을 출력하는 변수
  • 결합확률의 확률분포는 각 확률변수가 가질 수 있는 값의 조합으로 표시


1.8 pgmpy 패키지를 사용한 결합확률과 조건부확률

1
JointProbabilityDistribution(variables, cardinality, values)
  • 결합확률 모형을 만드는데 쓰는 클래스
  • variables: 확률변수의 이름 문자열의 리스트. 정의하려는 확률변수가 하나인 경우에도 리스트로 넣어야 한다.
  • cardinality: 각 확률변수의 표본 혹은 배타적 사건의 수의 리스트
  • values: 확률변수의 모든 표본(조합)에 대한 (결합)확률값의 리스트


1
marginal_distribution(values, inplace = False)
  • 인수로 받은 확률변수에 대한 주변확률분포를 구함
  • values: 주변확률을 구할 확률변수의 이름 문자열 리스트
  • inplace: True이면 객체 자신을 주변확률 모형으로 변화시킨다. False면 주변확률 모형 객체를 반환한다.


1
marginalize(values, inplace=True)
  • 인수로 받은 확률변수를 주변화하여 나머지 확률변수에 대한 주변확률분포를 구함
  • values: 어떤 확률변수의 주변확률을 구하기 위해 없앨 확률변수의 이름 문자열 리스트
  • inplace: True이면 객체 자신을 주변확률 모형으로 변화시킨다. False면 주변확률 모형 객체를 반환한다.


1
conditional_distribution(values, inplace=True)
  • 어떤 확률변수가 어떤 사건이 되는 조건에 대해 조건부확률값을 계산
  • values: 주변확률을 구할 확률변수의 이름 문자열과 값을 묶은 튜플의 리스트
  • inplace: True이면 객체 자신을 조건부확률 모형으로 변화시킨다. False면 조건부확률 모형 객체를 반환한다.


1
check_independence()
  • 두 확률변수 같의 독립을 확인


2. 베이즈 정리


2.1 베이즈 정리란 (Bayesian Rule)

  • 조건부 확률을 구하는 공식
    • P(A | B) : 사후확률. 사건 B가 발생한 후 갱신된 사건 A의 확률
    • P(A) : 사전확률. 사건 B가 발생하기 전에 가지고 있던 사건 A의 확률
    • P(B | A) : 가능도. 사건 A가 발생한 경우 사건B의 확률
    • P(B) : 정규화 상수 또는 증거, 확률의 크기 조정
  • 사건 B가 발생함으로써 사건 A의 확률이 어떻게 변화하는지를 표현한 정리


2.2 베이즈 정리의 확장 1

  • 서로 베타적
  • 완전(합집합이 표본공간)


2.3 베이즈 정리의 확장의 증명


2.4 검사시약문제

2.4.1 사건

  • 병에 걸리는 경우 : 사건 D
  • 양성 반응을 보이는 경우 : 사건 S
  • 병에 걸린 사람이 양성 반응을 보이는 경우 : 조건부 사건 S | D
  • 양성 반응을 보이는 사람이 병에 걸려 있을 경우 : 조건부 사건 D | S


2.4.2 문제

  • P(S | D) = 0.99가 주어졌을때, P(D | S)를 구하라
  • 이 병은 전체 인구 중 걸린 사람이 0.2%인 희귀병
    • P(D) = 0.002
  • 이 병에 걸리지 않은 사람에게 시약 검사를 했을때, 양성 반응, 즉 잘못된 결과(False Positive)가 나타난 확률은 5%


2.4.3 문제 해결 및 결과

  • 시약반응에서 양성 반응을 보이는 사람이 실제로 병에 걸려 있을 확률은 약 3.8%이다.


2.5 Pgmpy를 사용한 베이즈 정리

  • 피지엠파이 패키지는 베이즈 정리에 적용하는 BayesianModel 클래스를 제공함
  • 베이즈 정리를 적용하려면 조건부확률을 구현하는 TabularCPD 클래스를 사용하여 사전확률과 가능도를 구하면 됨
1
TabularCPD(variable, variable_card, value, evidence=None, evidence_card=None)
  • variable: 확률변수의 이름 문자열
  • variable_card: 확률변수가 가질 수 있는 경우의 수
  • value: 조건부확률 배열. 하나의 열(column)이 동일 조건을 뜻하므로 하나의 열의 확률 합은 1이어야 한다.
  • evidence: 조건이 되는 확률변수의 이름 문자열의 리스트
  • evidence_card: 조건이 되는 확률변수가 가질 수 있는 경우의 수의 리스트
  • evidence=None, evidence_card=None으로 인수를 주면 일반적인 확률도 구현가능
  • 조건부확률을 구현하는 클래스(사전확률과 가능도를 구현하기 위한 선행작업)


1
BayesianModel(variables)
  • variables: 확률모형이 포함하는 확률변수 이름 문자열의 리스트
  • BayesianModel 클래스는 다음 메서드를 지원함
    • add_cpds(): 조건부확률을 추가
    • check_model(): 모형이 정상적인지 확인. True면 정상적인 모형
  • 확률변수들이 어떻게 결합되어 있는지 나타내는 확률 모형


1
VarialbeElimination(model).query(variables, evidences)
  • variables: 사후확률을 계산할 확률변수의 이름 리스트
  • evidences: 조건이 되는 확률변수의 값을 나타내는 딕셔너리
  • 사후확률을 계산함


2.6 베이즈 정리의 확장 2

  • 베이즈정리에 추가적인 사건 C가 발생했을때의 베이즈정리
  • 중복되는 조건 B를 삭제하여 외우면 쉽다


2.7 몬타 홀 문제

2.7.1 문제 요약

  • 세 문중에 하나를 선택하여 문뒤에 있는 자동차를 찾는 게임
  • 세 문중에 하나를 선택하면 선택한 문을 제외한 다른 문을 열어주어 염소를 보여줌
  • 위의 상황에서 선택했던 문을 바꾸는것이 유리한가?


2.7.2 확률변수 설정

  • 자동차가 있는 문을 나타내는 확률변수 C로 값은 0,1,2를 가질 수 있다.
  • 참가자가 선택한 문을 나타내는 확률변수 X로 값은 0,1,2를 가질 수 있다.
  • 진행자가 열어준 문을 나타내는 확률변수 H로 값은 0,1,2를 가질 수 있다.
  • 참가자 선택 :
  • 진행자가 열어준 문 :


2.7.3 문제를 풀기 위한 핵심 사실(1)

  • 자동차를 놓는 진행자는 참가자의 선택을 예측할 수 없고, 참가자는 자동차를 볼 수 없으므로 자동차의 위치와 참가자의 선택은 서로 독립적이다


2.7.4 문제를 풀기 위한 핵심 사실(2)

  • 진행자가 어떤 문을 여는가가 자동차 위치 및 참가자 선택에 좌우 된다. 예를 들어 자동차가 0번 문 뒤에 있고 참가자가 1번 문을 서낵하면 진행자는 2번 문을 열어야 한다.


2.7.5 문제 해결 및 결과

  • 자동차가 1번 문 뒤에 있는데, 참가자가 1번 문을 선택한 경우에는 0번 문과 2번문 둘다 열어도 된다. 따라서 진행자가 0번 문이나 2번 문을 열 확률은 0.5다

  • 이 사실을 이용하여 참가자가 1번문을 선택하고 진행자가 2번문을 열어서 자동차가 없다는걸 보였다면 0번문 뒤에 차가 있을 확률은 다음과 같다.
  • 0번 문뒤에 자동차가 있을 확률이 2/3이기 때문에 보다 1번 문뒤에 자동차가 있을 확률(1/3)보다 2배 더 높다 (2/3 > 1/3)
This post is licensed under CC BY 4.0 by the author.

확률(Probability)의 수학적 정의와 의미, 성질, 분포 함수

확률변수와 상관관계, 분산과 표준편차