¿Cómo calcular la probabilidad condicional en R?

En este artículo, discutiremos cómo calcular la probabilidad condicional en el lenguaje de programación R.

La probabilidad de ocurrencia de un evento condicionado a la ocurrencia de otro evento (es decir, un evento ocurre dependiendo de la condición de otro evento) se denomina probabilidad condicional. En términos simples, significa que si A y B son dos eventos, entonces la probabilidad de ocurrencia del Evento B condicionada a la ocurrencia del Evento A viene dada por P(B|A). De otra manera, también es la probabilidad condicional del Evento B dado que el evento A ya ocurrió.

De manera similar, la probabilidad de ocurrencia del Evento A condicionada a la ocurrencia del Evento B está dada por P(A|B), que también representa la probabilidad condicional del Evento A dado que el Evento B ya ocurrió.

La fórmula para la probabilidad condicional se puede representar como

PAG(A|B) = PAG(A ∩ B) / PAG(A)          

Esto es válido sólo cuando P(A)≠ 0, es decir, cuando el evento A no es un evento imposible.

Similarmente,

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

Esto es válido solo cuando P(B)≠ 0, es decir, cuando el evento B no es un evento imposible.

La siguiente figura muestra la representación del diagrama de Venn

Ejemplo 1: Cálculo de probabilidad condicional

De un paquete de 50 cartas Pokémon, se extrae una carta al azar. Estas 50 cartas tienen 5 juegos iguales de cartas rojas, azules, verdes, amarillas y negras respectivamente y cada juego tiene 2 Pokémon de tipo agua con un tipo de agua de fuerza alta y el otro de fuerza media.

Considerando que A es el evento de sacar una carta de Pokémon de tipo agua de alta potencia y B como el evento de sacar una carta roja, ¿cuál es la probabilidad de sacar una carta de Pokémon de alta potencia de tipo agua con la carta roja ya puesta? ¿dibujado?

Pasos de solución

Paso 1. Probabilidad de sacar una tarjeta roja (Evento B).

P(B) = 10/50 (ya que hay 10 cartas rojas dentro de un paquete de 50 cartas Pokémon).

Paso 2: Probabilidad de sacar una carta de Pokémon de tipo agua de alta resistencia (Evento A)

P(A) = 5/50 (ya que hay 5 cartas de Pokémon de tipo agua de alta resistencia en un paquete de 50 cartas).

Paso 3:  P(A � B) = 1/50 (ya que hay una carta Pokémon roja de tipo agua de alta resistencia en un paquete de 50 cartas)

Paso 4: dado que el evento B ya ocurrió, hay 10 casos exhaustivos y no 50 como antes. Entre estas 10 cartas de Pokémon rojas, hay 1 carta de Pokémon de tipo agua de alta resistencia.

Hence, P(A|B) = P( A Ո B) / P(B)  = (1/50) / (10/50) = 1/10.

Esta es la probabilidad condicional de A dado que B ya ha ocurrido.

Similarmente,

P(B|A) = P( A Ո B) / P(A)  = (1/50) / (5/50)  = 1 / 5

Como solo puede haber 1 carta de Pokémon de tipo agua de alta resistencia roja dentro de la carta de Pokémon de tipo agua de alta resistencia ya extraída del paquete de 50 cartas.

Ejemplo 2: Cálculo de probabilidad condicional

El dueño de una tienda tiene una lista de 15 clientes. Él observa ciertos patrones en sus compras que se muestran en la siguiente tabla.

Clientes

Dinero gastado Frecuencia

1

Alto

Menos

2

Bajo

Más

3

Alto

Más

4

Alto

Menos

5

Bajo

Menos

6

Bajo

Más

7

Alto

Más

8

Bajo

Menos

9

Bajo

Menos

10

Alto

Más

11

Bajo

Más

12

Bajo

Menos

13

Alto

Menos

14

Alto

Más

15

Alto

Menos

Con base en la tabla anterior, él está interesado en averiguar

  • ¿Cuál es la probabilidad de que el cliente gaste mucho dado que compra con menos frecuencia?
  • ¿Cuál es la probabilidad de que el cliente gaste menos dado que compra con más frecuencia?
  • ¿Cuál es la probabilidad de que el cliente gaste menos dado que compra con menos frecuencia?
  • ¿Cuál es la probabilidad de que el cliente gaste mucho dado que compra con más frecuencia?

Pasos de solución

1. P (Alto gasto | Menos frecuencia)

P (menor frecuencia) = 8/15 (según la tabla, 8 veces de 15, la frecuencia es menor)

P(Gasto alto ?? Menos frecuencia) = 4/15 (según la tabla, hay 4 combinaciones de 15 con gasto alto y menor frecuencia)

P(Gasto alto | Menos frecuencia) = P(Gasto alto � Menos frecuencia)/ P(Menos frecuencia) = (4/15)/(8/15) = 0,5

2. P (Gasto bajo | Más frecuencia)

P (más frecuencia) = 7/15 (según la tabla, 7 veces de 15, la frecuencia es menor)

P(Gasto bajo ?? Más frecuencia) = 3/15 (según la tabla, hay 3 combinaciones de 15 con gasto bajo y más frecuencia)

P (Gasto bajo | Más frecuencia) = P (Gasto bajo – Más frecuencia)/ P (Más frecuencia) = (3/15)/(7/15) = 0,4285714

Similarmente,

3. P (Gasto bajo | Menos frecuencia) = 0.5

4. P(Alto gasto | Más frecuencia) = 0,5714286

Para hacer el trabajo, primero instale los paquetes «prob» y «tidyverse» y cree un marco de datos. Representar el marco de datos en forma de tabla para representar cada combinación. Ahora, cuente la frecuencia de las combinaciones únicas del marco de datos, representado como «n» en la salida. Calcule las probabilidades individuales de cada fila representada como «probs» en la salida. Calcule la probabilidad condicional final según el problema en cuestión.

A continuación se muestra el código R utilizado para el cálculo

R

# Library for calculation of conditional probability
library(prob)
library(tidyverse)
  
Money_Spent < - c("High", "Low", "High", "High",
                  "Low", "Low", "High", "Low", 
                  "Low", "High", "Low", "Low",
                  "High", "High", "High")
Frequency < - c("Less", "More", "More", "Less", 
                "Less", "More", "More", "Less",
                "Less", "More", "More", "Less",
                "Less", "More", "Less")
Customer < - c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
               11, 12, 13, 14, 15)
  
# Customer Data Frame
Customer_Data < - as.data.frame(cbind(Customer, Money_Spent, Frequency))
Customer_Data % >%
count(Money_Spent, Frequency, sort=T)
  
# Creating two-way table from data frame
Customer_Data_Table < - addmargins(table("Money_Spent"=Customer_Data$Money_Spent,
                                         "Frequency"=Customer_Data$Frequency))
# view table
Customer_Data_Table
  
Customer_Data < - probspace(Customer_Data)
Customer_Data
  
# Probability of the customer spending high 
# given that they are purchasing less often
Prob(Customer_Data, event=Money_Spent == "High", given=Frequency == "Less")
  
# Probability of the customer spending less
# given that they are purchasing more often
Prob(Customer_Data, event=Money_Spent == "Low", given=Frequency == "More")
  
# Probability of the customer spending less
# given that they are purchasing less often
Prob(Customer_Data, event=Money_Spent == "Low", given=Frequency == "Less")
  
# Probability of the customer spending high 
# given that they are purchasing more often
Prob(Customer_Data, event=Money_Spent == "High", given=Frequency == "More")

Producción:

Publicación traducida automáticamente

Artículo escrito por ghoshsupriya2211 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *