1 Objetivo

Encontrar probabilidades de acuerdo a la distribución binomial.

2 Descripción

Se identifican ejercicios casos de la literatura de distribuciones de probabilidad binomial y se realizan cálculos de probabilidades, se determinan el valor esperado y se calcula la varianza y la desviación.

Los ejercicios que se presenta utilizan funciones relacionadas con la distribución binomial dbinom() pbinom(), rbinom() en algunos ejercicios del caso se utiliza la función f.prob.binom() previamente codificada y que encapsula la fórmula para determinar probabilidad binomiales.

3 Fundamento teórico

El experimento de lanzar al aire una moneda es un ejemplo sencillo de una importante variable aleatoria discreta llamada variable aleatoria binomial. Muchos experimentos prácticos resultan en datos similares a que salgan cara o cruz al tirar la moneda [@mendenhall_introduccion_2006]

Un experimento binomial es el que tiene estas cinco características:

  • El experimento consiste en \(n\) intentos idénticos.

  • Cada intento resulta en uno de dos resultados, el resultado uno se llama éxito, ‘S’, y el otro se llama fracaso, ‘F’.

  • La probabilidad de éxito en un solo intento es igual a \(p\) y es igual de un intento a otro. La probabilidad de fracaso es igual a \(q= (1 - p)\).

  • Los intentos son independientes.

  • El interés es el valor de \(x\), o sea, el número de éxitos observado durante los \(n\) intentos, para \(x = 0, 1, 2, …, n.\) [@mendenhall_introduccion_2006].

Un experimiento de Bernoulli puede tener como resultado un éxito con probabilidad \(p\) y un fracaso con probabilidad \(q = 1 − p\). Entonces, la distribución de probabilidad de la variable aleatoria binomial \(x\), el número de éxito \(k\) en \(n\) ensayos independientes [@walpole_probabilidad_2012]:

Fórmula:

\[prob(x=k) = \binom{n}{k} \cdot p^{k} \cdot q^{(n-k)} \] Para \[x = 0,1,2,3...n\] y recordando las combinaciones cuantos éxitos \(k\) en \(n\) ensayos.\[\binom{n}{k} = \frac{n!}{k!\cdot(n-k)!}\]

El valor esperado está dado por: \[\mu = n \cdot p\]

La varianza y la desviación estándar se determinan mediante: \[\sigma^{2} = n \cdot p \cdot(1-p)\] y \[\sigma = \sqrt{\sigma^{2}}\]

En programación R, para calcular la función de probabilidad binomial para un conjunto de valores discretos, \(x\), un número de ensayos \(n\) y una probabilidad de éxito \(p\) se puede hacer uso de la función dbinom().

De semejante forma, para calcular la probabilidad acumulada de una distribución binomial se puede utilizar la función pbinom() o para calcular la probabilidad de que una variable aleatoria \(x\) que sigue una distribución binomial tome valores menores o iguales a \(x\) puedes hacer uso de la función pbinom() [@rcoderbinom].

En los siguientes ejercicios también se utilizan funciones de paqutes base de R para la comprensión de la distribución binomial.

4 Desarrollo

4.1 Cargar librerías

library(dplyr)
library(ggplot2)
library(mosaic) # Gráficos de distribuciones
options(scipen=999) # Notación normal
# options(scipen=1) # Notación científica

4.2 Cargar funciones

Se carga función de servicio github o de manera local

# source("../funciones/funciones.para.distribuciones.r")
# o
source("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/Enero%20Junio%202022/funciones/funciones.para.distribuciones.r")

Se determina una semilla porque algunos ejercicios calculan valores aleatorios.

set.seed(2022)

4.3 Ejercicios

4.3.1 Tienda de ropa MartinClothingStore

Tienda de ropa MartinClothingStore [@anderson_estadistica_2008]

De acuerdo con la experiencia, el gerente de la tienda estima que la probabilidad de que un cliente realice una compra es 0.30 o 30%

  • Identificar las probabilidad para cuando se compre 0,1,2,3, determinar la tabla de probabilidad incluyendo probabilidad acumulada

  • Encontrar la probabilidad de que compren dos clientes

  • Encontrar la probabilidad de que compren los tres próximos clientes.

  • Encontrar la probabilidad de que sean menor o igual que dos.

  • Calcular la probabilidad de que sean mayor que dos

  • Determinar el valor esperado y su significado

  • Determinar la varianza y la desviación estándar y si significado

  • Interpretar

4.3.1.1 Probabilidad para 0,1,2,3 y tabla de distribución

Identificar las probabilidad para cuando se compre 0,1,2,3, determinar la tabla de probabilidad incluyendo probabilidad cumulada

  • Inicializar valores
x1 <- c(0,1,2,3)
n1 <- 3
exito1 <- 0.30
  • Determinar tabla de probabilidad usando la función creada y conforme a la fórmula
tabla1 <- data.frame(x=x1, f.prob.x = f.prob.binom(x1,n1,exito1), f.acum.x = cumsum(f.prob.binom(x1,n1,exito1)))
tabla1
##   x f.prob.x f.acum.x
## 1 0    0.343    0.343
## 2 1    0.441    0.784
## 3 2    0.189    0.973
## 4 3    0.027    1.000
  • Determinar tabla de probabilidad usando función propia de los paquetes base de R dbinom()
tabla2 <- data.frame(x=x1, f.prob.x = dbinom(x = x1, size = n1, prob = exito1), f.acum.x = cumsum(dbinom(x = x1, size = n1, prob = exito1)))
tabla2
##   x f.prob.x f.acum.x
## 1 0    0.343    0.343
## 2 1    0.441    0.784
## 3 2    0.189    0.973
## 4 3    0.027    1.000

con pbinom() en lugar de cumsum()

tabla3 <- data.frame(x=x1, f.prob.x = dbinom(x = x1, size = n1, prob = exito1), f.acum.x = pbinom(q = x1, size = n1, prob = exito1))
tabla3
##   x f.prob.x f.acum.x
## 1 0    0.343    0.343
## 2 1    0.441    0.784
## 3 2    0.189    0.973
## 4 3    0.027    1.000

4.3.1.2 Visualizar tabla de distribución

plotDist(dist = "binom", size=3, prob=0.30,xlab = paste("Variables ",min(tabla1$x),"-",max(tabla1$x) )) 

plotDist(dist = "binom", size=3, prob=0.30,xlab = paste("Variables ",min(tabla1$x),"-",max(tabla1$x) ), kind = "histogram") 

4.3.1.3 Probabilidad de que compren dos clientes

Encontrar la probabilidad de que compren dos clientes

  • Identificar la probabilidad cuando \(P(x=2)\) de la tabla.
  • Se puede usar tabla1, tabla2 o tabla3 es la misma.
valor.x <- 2
la.probabilidad <- filter(tabla1, x == valor.x) 
la.probabilidad
##   x f.prob.x f.acum.x
## 1 2    0.189    0.973
paste("La probabilidad cuando x es ", valor.x, " es igual a : ", la.probabilidad$f.prob.x )
## [1] "La probabilidad cuando x es  2  es igual a :  0.189"

Usando dbinom()

dbinom(x = 2, size = 3, prob = exito1)
## [1] 0.189

4.3.1.4 Probabilidad de que compren los tres próximos clientes

Encontrar la probabilidad de que compren los tres próximos clientes

  • Identificar la probabilidad cuando \(P(x=3)\) de la tabla.
  • Se puede usar tabla1, tabla2 o tabla3 es la misma.
valor.x2 <- 3
la.probabilidad2 <- filter(tabla1, x == valor.x2) 
la.probabilidad2
##   x f.prob.x f.acum.x
## 1 3    0.027        1
paste("La probabilidad cuando x es ", valor.x2, " es igual a : ", la.probabilidad2$f.prob.x )
## [1] "La probabilidad cuando x es  3  es igual a :  0.027"

Usando dbinom()

dbinom(x = 3, size = 3, prob = exito1)
## [1] 0.027

4.3.1.5 Probabilidad de que sean menor o igual que dos

Encontrar la probabilidad de que sean menor o igual que dos

  • Ahora usar la función acumulada por la pregunta
  • \(P(x=0) + P(x=1) + P(x=2)\)
valor.x3 <- 2
la.probabilidad3 <- filter(tabla1, x == valor.x3) 
la.probabilidad3
##   x f.prob.x f.acum.x
## 1 2    0.189    0.973
paste("La probabilidad de que sea menor o igual a ", valor.x3, " es igual a : ", la.probabilidad3$f.acum.x )
## [1] "La probabilidad de que sea menor o igual a  2  es igual a :  0.973"

Usando pbinom()

pbinom(q = 2, size = 3, prob = exito1)
## [1] 0.973

4.3.1.6 Probabilidad de que sean mayor que dos

La expresión lower.tail = FALSE como atributo de la función pbinom() significa encontrar en la tabla de distribución la sumatoria de las probabilidades a partir de el valor de \(x\), o lo que es lo mismo, \(1 - prob.acum(x)\), \(1 - 0.97 = 0.27\).

pbinom(q = 2, size = 3, prob = exito1, lower.tail = FALSE)
## [1] 0.027

4.3.1.7 Valor esperado

Determinar el valor esperado y su significado

  • El valor esperado de la distribución binomial

\[\mu = n\cdot p\] Siendo \(p\) el éxito de la probabilidad y \(n1\) el número de experimentos

VE1 <- n1 * exito1
paste ("El valor esperado es: ", VE1)
## [1] "El valor esperado es:  0.9"

El valor esperado \(VE1\) significa el valor medio o el valor promedio de todos valores de la distribución de probabilidad.

4.3.1.8 Varianza y desviación estándar

Determinar la varianza y la desviación estándar y su significado.

  • La varianza en la distribución binomial \[\sigma^{2} = n \cdot p \cdot(1-p)\]
varianza1 <- n1 * exito1 *( 1 - exito1)
paste ("La varianza es: ", round(varianza1,2))
## [1] "La varianza es:  0.63"
  • La desviación \[\sigma = \sqrt{\sigma^{2}}\]
desviacion.std1 <- sqrt(varianza1)
paste("La desviación std es: ", round(desviacion.std1, 2))
## [1] "La desviación std es:  0.79"

4.3.1.9 Interpretar el ejercicio

En este ejercicio se determina que al menos 1 cliente decide comprar un articulo de esta tienda al visitarla. El valor esperado como tal muestra que la media de la distribución de datos es de 0.9, la varianza resulta en 0.63 y la desviación estandar es de 0.79.

4.3.2 Jugador de basquetbol

Un jugador encesta con probabilidad 0.55. [@noauthor_distribucion_nodate]:

  • Determinar las probabilidad de los tiros del 1 al 6 con la tabla de probabilidad

  • Determinar la probabilidad de encestar cuatro tiros \(P(x=4)\)

  • Determinar la probabilidad de encestar todos los tiros o sea seis \(P(x=6)\)

  • Determinar la probabilidad de encestar al menos tres \(P(x \leq 3)\) o, \(P.acum(x = 3)\)

  • Determinar el valor esperado VE2

  • Determinar la varianza y su desviación estándard

  • Interpretar el ejercicio

4.3.2.1 Tabla de probabilidad (0-6)

Se construye la tabla de probabilidades tal y como se construye usando el código de tabla3

Se inicializan valores:

x2 <- 0:6
n2 <- 6
exito2 <- 0.55
tabla4 <- data.frame(x=x2, f.prob.x = dbinom(x = x2, size = n2, prob = exito2), f.acum.x = pbinom(q = x2, size = n2, prob = exito2))
tabla4
##   x    f.prob.x    f.acum.x
## 1 0 0.008303766 0.008303766
## 2 1 0.060894281 0.069198047
## 3 2 0.186065859 0.255263906
## 4 3 0.303218437 0.558482344
## 5 4 0.277950234 0.836432578
## 6 5 0.135886781 0.972319359
## 7 6 0.027680641 1.000000000

4.3.2.2 Visualización de probabilidades

Dos formas de visualizar las probabilidades

plotDist(dist = "binom", size=n2, prob=exito2,xlab = paste("Variables ",min(tabla4$x),"-",max(tabla4$x) )) 

plot(x = tabla4$x, y=tabla4$f.prob.x, type = "h", xlab = paste(min(tabla4$x), '-', max(tabla4$x)), ylab= "f(x)")

4.3.2.3 Probabilidad de encestar cuatro tiros

Calcular la probabilidad de encestar cuatro tiros \(P(x=4)\)

dbinom(x = 4, size = n2, prob = exito2)
## [1] 0.2779502

4.3.2.4 Probabilidad de encestar todos los tiros

Determinar la probabilidad de encestar todos tiros o sea seis \(P(x=6)\)

dbinom(x = 6, size = n2, prob = exito2)
## [1] 0.02768064

4.3.2.5 Probabilidad de encestar al menos tres

Usando la función pbinom()

pbinom(q = 3, size = n2, prob = exito2)
## [1] 0.5584823

o utilizando el renglón de la tabla de distribución en la columna de probabilidad acumulada f.acum.x.

valor.x2 <- 3
la.probabilidad4 <- filter(tabla4, x == valor.x2) 
la.probabilidad4
##   x  f.prob.x  f.acum.x
## 1 3 0.3032184 0.5584823

4.3.2.6 Valor esperado

VE2 <- n2 * exito2
paste("El valor esperado es: ",VE2)
## [1] "El valor esperado es:  3.3"

El valor esperado de 3.3 significa que es lo que se espera encestar en promedio de los \(n=\) 6 tiros.

4.3.2.7 Varianza y desviación

Varianza

varianza2 <- n2 * exito2 *( 1 - exito2)
paste ("La varianza es: ", round(varianza2,2))
## [1] "La varianza es:  1.48"

Desviación

desviacion.std2 <- sqrt(varianza2)
paste("La desviación std es: ", round(desviacion.std2, 2))
## [1] "La desviación std es:  1.22"

De el valor esperado 3.3 hay una desviación aproximada de 1.2186058 hacia arriba o hacia abajo.

4.3.3 Recuperación de un paciente

La probabilidad de que un paciente se recupere de una rara enfermedad sanguínea es \(0.4\). Si se sabe que \(15\) personas contraen tal enfermedad,

  • Determine tabla de probabilidad de 1 al 15

  • Visualizar la gráfica de probabilidades

  • ¿Cuál es la probabilidad de que sobrevivan al menos diez,

  • ¿Cuál es la probabilidad de que sobrevivan de tres a ocho?, y

  • ¿Cuál es la probabilidad de que sobrevivan exactamente cinco?

  • ¿Cuál es el valor esperado ‘VE’ o la esperanza media?

  • ¿Cual es la varianza y la desviación estándar?

  • ¿Cómo se comportarían las probabilidades para un experimento de 100 personas?

  • Interpretación del ejercicio [@walpole_probabilidad_2012].

4.3.3.1 Tabla de distribución

Inicializar valores

x3 <- 0:15
n3 <- 15
exito3 <- 0.40

Se construye la tabla de probabilidades con las funciones construidas que se encuentran en enlace citado al principio del documento y con la función cumsum() para el acumulado de la probabilidad.

tabla5 <- data.frame(x=x3, f.prob.x = f.prob.binom(x3,n3,exito3), f.acum.x = cumsum(f.prob.binom(x3,n3,exito3)))
tabla5
##     x       f.prob.x    f.acum.x
## 1   0 0.000470184985 0.000470185
## 2   1 0.004701849846 0.005172035
## 3   2 0.021941965947 0.027114001
## 4   3 0.063387901624 0.090501902
## 5   4 0.126775803249 0.217277706
## 6   5 0.185937844765 0.403215550
## 7   6 0.206597605294 0.609813156
## 8   7 0.177083661681 0.786896817
## 9   8 0.118055774454 0.904952592
## 10  9 0.061214105272 0.966166697
## 11 10 0.024485642109 0.990652339
## 12 11 0.007419891548 0.998072231
## 13 12 0.001648864788 0.999721096
## 14 13 0.000253671506 0.999974767
## 15 14 0.000024159191 0.999998926
## 16 15 0.000001073742 1.000000000

4.3.3.2 Gráfica de probabilidades

La gráfica se presenta con la función plot() que requiere las coordenadas de x & y siendo estás las variables aleatorias discretas y las probabilidades respectivamente.

plot(x = tabla5$x, y=tabla5$f.prob.x, type = "h", xlab = paste(min(tabla5$x), '-', max(tabla5$x)), ylab= "f(x)")

4.3.3.3 Probabilidad de que sobrevivan al menos diez

Se requiere la suma de las probabilidades en donde \(P(x\leq 10)\) o bien \(P(x=0) + P(x=1) + P(x=2) ... + P(x=10)\) o mediante la función acumulada de la probabilidad.\(F(x=10)\). Como se necesita la probabilidad acumulada entonces se usa pbinom().

x = 10
prob <- pbinom(q = x, size = n3, prob = exito3)
paste ("La probabilidad de que se enfermen menos que diez es: ", prob, " o el ", round(prob * 100, 2), "%") 
## [1] "La probabilidad de que se enfermen menos que diez es:  0.990652339224576  o el  99.07 %"

4.3.3.4 La probabilidad de que sobrevivan de tres a ocho

Se requiere el valor acumulado entre tres y ocho es decir, \(F(x=8) - F(x=2)\) , o sumar las probabilidades de tres a ocho \(P(x=3) + P(x=4) + P(x=5) + P(x=6)+ P(x=6)+P(x=7)+P(x=8)\)

Se usa la resta usando la función pbinom()

x.s = 2  #
x.s2 = 8
prob2 <- pbinom(q = x.s2, size = n3, prob = exito3) - pbinom(q = x.s, size = n3, prob = exito3) 
paste ("La probabilidad de que se enfermen de tres a ocho es: ", prob2, " o el ", round(prob2 * 100, 2), "%")
## [1] "La probabilidad de que se enfermen de tres a ocho es:  0.877838591066112  o el  87.78 %"

Se comprueba sumando las probabilidades de tres a ocho

sum(dbinom(x = 3:8, size = n3, prob = exito3))
## [1] 0.8778386

o sumando los renglones de las probabilidades de tres a ocho de la tabla de probabilidad.

sum(filter(tabla5, x %in% 3:8) %>%
  select(f.prob.x))
## [1] 0.8778386

4.3.3.5 La probabilidad de que sobrevivan exactamente cinco

Aquí se calcula la probabilidad con la función dbinom() cuando \(P(x=5)\)

x.s3 = 5
prob3 <- dbinom(x = x.s3, size = n3, prob = exito3)
paste ("La probabilidad de que se enfermen menos que diez es: ", prob3, " o el ", round(prob3 * 100, 2), "%") 
## [1] "La probabilidad de que se enfermen menos que diez es:  0.185937844764672  o el  18.59 %"

Se comprueba la probabilidad extrayendo con la función filter() el registro de la tabla de distribución cuando \(x==5\).

filter(tabla5, x==5)
##   x  f.prob.x  f.acum.x
## 1 5 0.1859378 0.4032156

4.3.3.6 Valor esperado

Se determina el valor medio o el valor esperado de la tabla de distribución.

VE3 <- n3 * exito3
paste("El valor esperado es: ",VE3)
## [1] "El valor esperado es:  6"

Se espera que se recuperen 6 pacientes en promedio.

4.3.3.7 Varianza y desviación

Se calcula la varianza

varianza3 <- n3 * exito3 *( 1 - exito3)
paste ("La varianza es: ", round(varianza3,2))
## [1] "La varianza es:  3.6"

Se determina la desviación

desviacion.std3 <- sqrt(varianza3)
paste("La desviación std es: ", round(desviacion.std3, 2))
## [1] "La desviación std es:  1.9"

Siendo la desviación una medida de variabilidad significa que tanto estarían las probabilidades por encima o por debajo del valor esperado.

4.3.3.8 Probabilidades para un experimento de 100 personas

Con la función de aleatoriedad rbinom() se calculan las probabilidades de una muestra de \(100\), con ello las proporciones o frecuencias relativas siendo los elementos de la función \(n\) la cantidad de experimentos que serían \(100\), size el tamaño del estudio original es decir \(15\) y prob la probabilidad de éxito.

La variable llamada variables contiene los valores aleatorios de la muestra y la frecuencia es la cantidad de ocasiones de cada variable aleatoria.

muestra <- 100
variables <- rbinom(n = muestra, size = 15, prob = 0.4)
variables
##   [1]  8  7  4  6  4  7  3  3  5  7  1  4  4  6  6  4  7  6  6  8  8  6  6  4  4
##  [26]  9  6 11  6  7  6  7  5  6  4  3  8  6  8  7  7  6  7  6  8  4  8  7  5  8
##  [51]  4  5  7  5  7  6  5  6  6  4  6  6  8  8  3  8  6  6  4  6  8  8  8  7  6
##  [76]  3  6  7  6  6  5  6  8  7  4  5  3  5  6  8  4  4  7  6  5  5  4 10  7  7
frecuencia = table(variables)
frecuencia
## variables
##  1  3  4  5  6  7  8  9 10 11 
##  1  6 16 11 29 18 16  1  1  1

Las probabilidades relativas de la muestra

probs <- prop.table(frecuencia)
probs
## variables
##    1    3    4    5    6    7    8    9   10   11 
## 0.01 0.06 0.16 0.11 0.29 0.18 0.16 0.01 0.01 0.01
tablaexp <- data.frame(x=1:length(frecuencia), f.prob.x = as.vector(probs), f.acum.x = cumsum(as.vector(probs)))
tablaexp
##     x f.prob.x f.acum.x
## 1   1     0.01     0.01
## 2   2     0.06     0.07
## 3   3     0.16     0.23
## 4   4     0.11     0.34
## 5   5     0.29     0.63
## 6   6     0.18     0.81
## 7   7     0.16     0.97
## 8   8     0.01     0.98
## 9   9     0.01     0.99
## 10 10     0.01     1.00

4.3.3.9 Visualizando las probabilidades del experimento

A partir de la nueva tabla del experimento se compara con la tabla original en dos gráficas

Con la función par(mfrow=c(1,2)) se puede ver dos gráficas tipo plot() al mismo tiempo en el mismo renglón.

par(mfrow=c(1,2))
plot(x = tabla5$x, y=tabla5$f.prob.x, type = "h", xlab = "X", ylab= "f(x)", main = "15 pacientes")
plot(x = tablaexp$x, y=tablaexp$f.prob.x, type = "h", xlab = "X", ylab= "f(x)", xlim = c(0,15), ylim = range(0, 0.20), main="Simulando 100 pacientes")

¿Cómo se comportan las probabilidades del estudio con 15 y del experimento o simulación con 100 pacientes?, muy similares las probabilidades.

5 Interpretación

Como base fundamental se entiende que existen dos posibles resultados, 1: que un suceso se cumpla o se lleve a cabo, 2: que este no suceda o no se cumpla. Como tal se interpretaría como éxito o fracaso. A través de las formulas matemáticas demostradas con anterioridad, o bien con los diferentes métodos que pueden aplicarse para obtener cierto resultado, es posible determinar las probabilidades que existen de que ciertas cosas sucedan o no (de que se tenga éxito o no) pero va muy encaminado a los diferentes contextos. Dicho esto, podemos observar que en cada situación se tiene un valor o un resultado que normalmente es el esperado, pero a veces las mismas circunstancias que presentan los diferentes contextos, al igual que ciertos valores que se conozcan o no, pueden afectar los resultados.