베이즈 정리를 r에 적용하는 방법
베이즈 정리는 두 사건 A 와 B 에 대해 다음과 같이 명시합니다 .
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에서 조건부 평균을 계산하는 방법