베이즈 정리를 r에 적용하는 방법


베이즈 정리는 두 사건 AB 에 대해 다음과 같이 명시합니다 .

P(A|B) = P(A)*P(B|A) / P(B)

금:

  • P(A|B): 사건 B가 주어졌을 때 사건 A가 발생할 확률입니다.
  • P(B|A): 사건 A가 발생한 경우 사건 B가 발생할 확률입니다.
  • P(A): 사건 A의 확률입니다.
  • P(B): 사건 B의 확률입니다.

예를 들어 날씨가 흐릴 확률이 40%라고 가정해보자. 또한 특정일에 비가 올 확률이 20%이고 비오는 날 구름이 올 확률이 85%라고 가정해 보겠습니다.

특정 날짜에 밖이 흐리면 그날 비가 올 확률은 얼마나 됩니까?

해결책 :

  • P(흐림) = 0.40
  • P(비) = 0.20
  • P(흐림 | 비) = 0.85

따라서 우리는 다음을 계산할 수 있습니다.

  • P(비 | 흐림) = P(비) * P(흐림 | 비) / P(흐림)
  • P(비 | 흐림) = 0.20 * 0.85 / 0.40
  • P(비 | 흐림) = 0.425

날씨가 흐린 경우 그날 비가 올 확률은 42.5% 입니다.

R에 Bayes의 정리를 적용하기 위해 다음과 같은 간단한 함수를 만들 수 있습니다.

 bayesTheorem <- function (pA, pB, pBA) {
  pAB <- pA * pBA / pB
  return (pAB)
}

다음 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.

예: R의 베이즈 정리

다음과 같은 확률을 알고 있다고 가정합니다.

  • P(비) = 0.20
  • P(흐림) = 0.40
  • P(흐림 | 비) = 0.85

P(비 | 흐림)를 계산하려면 다음 구문을 사용할 수 있습니다.

 #define function for Bayes' Theorem
bayesTheorem <- function (pA, pB, pBA) {
  pAB <- pA * pBA / pB
  return (pAB)
}

#define probabilities
pRain <- 0.2
pCloudy <- 0.4
pCloudyRain <- .85

#use function to calculate conditional probability
bayesTheorem(pRain, pCloudy, pCloudyRain)

[1] 0.425

이는 특정 날짜에 밖이 흐리면 그 날 비가 올 확률이 0.425 , 즉 42.5% 라는 것을 알려줍니다.

이는 이전에 수동으로 계산한 값과 일치합니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 확률을 계산하는 방법을 설명합니다.

R에서 조건부 확률을 계산하는 방법
R에서 조건부 평균을 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다