Як застосувати теорему байєса в r


Теорема Байєса стверджує наступне для двох подій A і B :

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

золото:

  • P(A|B): ймовірність того, що подія A, враховуючи подію B, сталася.
  • P(B|A): ймовірність того, що подія B, враховуючи, що подія A сталася, відбулася.
  • 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:

 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *