Encontrar probabilidades de acuerdo a la distribución binomial.
Identificar ejercicios casos de la literatura de distribuciones de probabilidad binomial y realizar cálculos de probabilidades, determinar el valor esperado y calcualr 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.
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, Beaver, and Beaver 2006)
Un experimento binomial es el que tiene estas cinco características:
El experimento consiste en nn 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 pp 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 xx, o sea, el número de éxitos observado durante los nn intentos, para x=0,1,2,…,n.x=0,1,2,…,n. (Mendenhall, Beaver, and Beaver 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, Myers, and Myers 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ándard 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() (R CODER Binom, n.d.).
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
library(mosaic) # Gráficos de distribuciones
## Warning: package 'mosaic' was built under R version 4.0.5
## Registered S3 method overwritten by 'mosaic':
## method from
## fortify.SpatialPolygonsDataFrame ggplot2
##
## The 'mosaic' package masks several functions from core packages in order to add
## additional features. The original behavior of these functions should not be affected by this.
##
## Attaching package: 'mosaic'
## The following object is masked from 'package:Matrix':
##
## mean
## The following object is masked from 'package:ggplot2':
##
## stat
## The following objects are masked from 'package:dplyr':
##
## count, do, tally
## The following objects are masked from 'package:stats':
##
## binom.test, cor, cor.test, cov, fivenum, IQR, median, prop.test,
## quantile, sd, t.test, var
## The following objects are masked from 'package:base':
##
## max, mean, min, prod, range, sample, sum
options(scipen=999) # Notación normal
# options(scipen=1) # Notación científica
Se carga función de servicio github o de manera local
#source("../funciones/funciones.distribuciones.r")
# o
source("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/funciones/funciones.distribuciones.r")
##
## Attaching package: 'gtools'
## The following object is masked from 'package:mosaic':
##
## logit
Se determina una semilla porque algunos ejercicios calculan valores aleatorios.
set.seed(2021)
Tienda de ropa MartinClothingStore (Anderson, Sweeney, and Williams 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.
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
Identificar las probabilidad para cuando se compre 0,1,2,3, determinar la tabla de probabilidad incluyendo probabilidad cumulada
x <- c(0,1,2,3)
n <- 3
exito <- 0.30
tabla1 <- data.frame(x=x, f.prob.x = f.prob.binom(x,n,exito), f.acum.x = cumsum(f.prob.binom(x,n,exito)))
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
tabla2 <- data.frame(x=x, f.prob.x = dbinom(x = x, size = n, prob = exito), f.acum.x = cumsum(dbinom(x = x, size = n, prob = exito)))
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=x, f.prob.x = dbinom(x = x, size = n, prob = exito), f.acum.x = pbinom(q = x, size = n, prob = exito))
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
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")
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 = exito)
## [1] 0.189
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.x <- 3
la.probabilidad <- filter(tabla1, x == valor.x)
la.probabilidad
## x f.prob.x f.acum.x
## 1 3 0.027 1
paste("La probabilidad cuando x es ", valor.x, " es igual a : ", la.probabilidad$f.prob.x )
## [1] "La probabilidad cuando x es 3 es igual a : 0.027"
Usando dbinom()
dbinom(x = 3, size = 3, prob = exito)
## [1] 0.027
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.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 de que sea menor o igual a ", valor.x, " es igual a : ", la.probabilidad$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 = exito)
## [1] 0.973
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−prob.acum(x), 1−0.97=0.271−0.97=0.27.\)
pbinom(q = 2, size = 3, prob = exito, lower.tail = FALSE)
## [1] 0.027
Determinar el valor esperado y su significado
\[\mu = n \cdot p\]
Siendo p el éxito de la probabilidad y n el número de experimentos
VE <- n * exito
paste ("El valor esperado es: ", VE)
## [1] "El valor esperado es: 0.9"
El valor esperado \(VE\) significa el valor medio o el valor promedio de todos valores de la distribución de probabilidad.
Determinar la varianza y la desviación estándar y su significado.
\[\sigma^{2} = n \cdot p \cdot(1-p)\]
varianza <- n * exito *( 1 - exito)
paste ("La varianza es: ", round(varianza,2))
## [1] "La varianza es: 0.63"
\[\sigma = \sqrt{\sigma^{2}}\]
desviacion.std <- sqrt(varianza)
paste("La desviación std es: ", round(desviacion.std, 2))
## [1] "La desviación std es: 0.79"
Como podemos observar en este caso de una tiendas de ropa llamada “MartinClothingStore” la cual se estima que la probabilidad de que un cliente realice una compra es del 30%. tenemos la probabilidad con 1,2 o incluso hasta 3 clientes compraran algo en la tienda. Entonces con esto podemos ver el indice de probabilidad de que la ienda pueda salir adelante con sus ventas. Gracias a la tabla de distribución podemos notar que lo más probable es que compre 1 cliente, seguido de que no compre nadie, de ahí se disminuye hasta que la probabilidad de que 3 clientes compren es bastante baja, por lo que la probabilidad de fracaso aumenta; esto es debido a que la suma de la probabilidad de éxito y fracaso debe de ser 1, así que mientras una suba la otra baja y viceversa. Nuestro valor esperado es de 0.9 con una desviación estándar de 0.79, lo cual concuerda bastante con nuestra probabilidad máxima de vender a un cliente.
Un jugador encesta con probabilidad 0.55. (“La Distribución Binomial o de Bernoulli,” n.d.):
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)P(x=4)
Determinar la probabilidad de encestar todos tiros o sea seis P(x=6)P(x=6)
Determinar la probabilidad de encestar al menos tres P(x≤3)P(x≤3) o, P.acum(x=3)P.acum(x=3)
Determinar el valor esperado VE
Determinar la varianza y su desviación estándard
Interpretar el ejercicio
Se construye la tabla de probabilidades tal y como se construye usando el código de tabla3
Se inicializan valores:
x <- 0:6
n <- 6
exito <- 0.55
tabla <- data.frame(x=x, f.prob.x = dbinom(x = x, size = n, prob = exito), f.acum.x = pbinom(q = x, size = n, prob = exito))
tabla
## 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
Dos formas de visualizar las probabilidades
plotDist(dist = "binom", size=n, prob=exito,xlab = paste("Variables ",min(tabla$x),"-",max(tabla$x) ))
plot(x = tabla$x, y=tabla$f.prob.x, type = "h", xlab = paste(min(tabla$x), '-', max(tabla$x)), ylab= "f(x)")
Calcular la probabilidad de encestar cuatro tiros \(P(x=4)\)
dbinom(x = 4, size = n, prob = exito)
## [1] 0.2779502
Determinar la probabilidad de encestar todos tiros o sea seis \(P(x=6)\)
dbinom(x = 6, size = n, prob = exito)
## [1] 0.02768064
Usando la función pbinom()
pbinom(q = 3, size = n, prob = exito)
## [1] 0.5584823
o utilizando el renglón de la tabla de distribución en la columna de probabilidad acumulada f.acum.x.
valor.x <- 3
la.probabilidad <- filter(tabla, x == valor.x)
la.probabilidad
## x f.prob.x f.acum.x
## 1 3 0.3032184 0.5584823
VE <- n * exito
paste("El valor esperado es: ",VE)
## [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.
Varianza
varianza <- n * exito *( 1 - exito)
paste ("La varianza es: ", round(varianza,2))
## [1] "La varianza es: 1.48"
Desviación
desviacion.std <- sqrt(varianza)
paste("La desviación std es: ", round(desviacion.std, 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.
Ahora en este ejercicio, del jugador de basquetbol, vemos que tiene una probabilidad de encestar del 55%. y ente caso veremos las probabilidades que tiene para anotar de 0 a 6 canastas. Podemos observar que las probabilidades de éxito tienen un pico máximo de probabilidad a las 3 canastas, antes de eso la probabilidad de éxito solo subía y después de las 3 canastas, la probabilidad de éxito comienza a bajar. Esto concuerda un poco con el valor esperado, cuyo valor es de 3.3 en donde hay una desviación estándar de aproximadamente 1.22 hacia arriba o hacía abajo.
Un estudio refleja que al aplicar un examen de estadística la probabilidad de aprobar (éxito) es del 60%. Se pide lo siguiente:
Encuentre la tabla de distribución binomial para 30 estudiantes que presentan el examen
¿Cuál es la probabilidad de que aprueben 5 alumnos?
¿Cuál es la probabilidad de que aprueben 10 alumnos?
¿Cuál es la probabilidad de que aprueben 15 o menos alumnos?
¿Cuál es la probabilidad de que aprueben entre 10 y 20 alumnos?
¿Cuál es la probabilidad de que aprueben mas de 25 alumnos?
Determinar el valor esperado VE y su significado.
Determinar la varianza y su desviación estándard y su significado.
Se incializan valores
x <- 0:30
n <- 30
exito <- 0.60
Se construye la tabla
tabla <- data.frame(x=x, f.prob.x = dbinom(x = x, size = n, prob = exito), f.acum.x = pbinom(q = x, size = n, prob = exito))
tabla
## x f.prob.x f.acum.x
## 1 0 0.000000000001152922 0.000000000001152922
## 2 1 0.000000000051881468 0.000000000053034389
## 3 2 0.000000001128421923 0.000000001181456312
## 4 3 0.000000015797906917 0.000000016979363229
## 5 4 0.000000159953807533 0.000000176933170762
## 6 5 0.000001247639698760 0.000001424572869522
## 7 6 0.000007797748117251 0.000009222320986774
## 8 7 0.000040102704603007 0.000049325025589781
## 9 8 0.000172942913600469 0.000222267939190250
## 10 9 0.000634124016535054 0.000856391955725303
## 11 10 0.001997490652085418 0.002853882607810724
## 12 11 0.005447701778414773 0.008301584386225485
## 13 12 0.012938291723735080 0.021239876109960601
## 14 13 0.026871836656988245 0.048111712766948846
## 15 14 0.048945131053800175 0.097056843820749084
## 16 15 0.078312209686080117 0.175369053506829159
## 17 16 0.110126544871050142 0.285495598377879189
## 18 17 0.136038673076003175 0.421534271453882614
## 19 18 0.147375229165670141 0.568909500619552144
## 20 19 0.139618638156950664 0.708528138776503003
## 21 20 0.115185376479484264 0.823713515255987683
## 22 21 0.082275268913917302 0.905988784169904804
## 23 22 0.050487096833540038 0.956475881003445050
## 24 23 0.026341094000107985 0.982816975003552917
## 25 24 0.011524228625047248 0.994341203628600123
## 26 25 0.004148722305017007 0.998489925933617184
## 27 26 0.001196746818754908 0.999686672752372107
## 28 27 0.000265943737501089 0.999952616489873214
## 29 28 0.000042740957812675 0.999995357447685862
## 30 29 0.000004421478394415 0.999999778926080274
## 31 30 0.000000221073919721 1.000000000000000000
plot(x=tabla$x, y=tabla$f.prob.x,
type='h', las=1, lwd=6, xlab = paste(min(tabla$x), '-', max(tabla$x)), ylab = "f(x)")
Se calcula la probabilidad de \(P(x=0)+P(x=1)+P(x=2)...+P(15)\) o la probabilidad acumulada cuando \(F(x=15)\)
prob <- pbinom(q = 15, size = n, prob = exito)
paste("La probabilida de que aprueben 15 o menos es de ", prob)
## [1] "La probabilida de que aprueben 15 o menos es de 0.175369053506829"
Se calcula la probabilidad acumulada de \(F(x=20)−F(x=10)\)
prob <- pbinom(q = 20, size = n, prob = exito) - pbinom(q = 10, size = n, prob = exito)
paste ("La probabilidad de que aprueben entre 10 y 20 estudiantes es de: ", prob)
## [1] "La probabilidad de que aprueben entre 10 y 20 estudiantes es de: 0.820859632648177"
# Se comprueba sumando los valores
sum(tabla$f.prob.x[11:21])
## [1] 0.8228571
Se debe calcular \(P(x≥26)\) o restar del el valor acumulado de 25 a 1. \(1−F(x=26)\) Con pbinom() y con lower.tail() = TRUE se encuentra la probabilidad.
prob <- pbinom(q = 25, size = n, prob = exito, lower.tail = FALSE)
paste ("La probabilidad de que aprueben mas de 25 alumnos es de ", prob)
## [1] "La probabilidad de que aprueben mas de 25 alumnos es de 0.00151007406638281"
# Se puede comprobar sumando los renglones 27 al 31 de la tabla
sum(tabla$f.prob.x[27:31])
## [1] 0.001510074
El valor esperado es la cantidad de alumnos que aprueben el examen.
VE <- n * exito
paste("El valor esperado es: ",VE)
## [1] "El valor esperado es: 18"
Varianza
varianza <- n * exito *( 1 - exito)
paste ("La varianza es: ", round(varianza,2))
## [1] "La varianza es: 7.2"
Desviación
desviacion.std <- sqrt(varianza)
paste("La desviación std es: ", round(desviacion.std, 2))
## [1] "La desviación std es: 2.68"
La desviación como parte de la varianza significa la cantidad de alumnos que puede variar con respecto al valor medio \(VE\) previamente calculado.
El caso es sobre las probabilidades de aprobar un examen, la cual es de 60% Se quisieron obtener las probabilidades de éxito de un grupo de 30 estudiantes, por lo que al obtener la tabla de distribución podemos notar que la probabilidad de éxito tiene como punto máximo a 18 estudiantes que aprueben, antes de eso estaban aumentando las probabilidades de éxito y por consiguiente después de eso comenzaron a disminuir. Durante el ejercicio se nos pide obtener varias probabilidades de éxito en rangos de alumnos, las cuales varían dependiendo del rango que se elija. También podemos recalcar que el valor esperado es el mismo que nuestra probabilidad máxima, la cual es de 18 estudiantes aprobados, y este valor esperado tiene una desviación estándar de 2.68.
Anderson, David R., Dennis J. Sweeney, and Thomas A. Williams. 2008. Estadística Para Administración y Economía. 10th ed. Australia • Brasil • Corea • España • Estados Unidos • Japón • México • Reino Unido • Singapur: Cengage Learning,.
Hernández, Freddy. 2021. “Manual de r. Distribuciones Discretas.” https://fhernanb.github.io/Manual-de-R/.
“La Distribución Binomial o de Bernoulli.” n.d. https://www.profesor10demates.com/2014/04/la-distribucion-binomial-o-de-bernoulli_3.html.
Mendenhall, William, Robert J. Beaver, and Barbara M. Beaver. 2006. Introducción a La Probabilidad y Estadística. 13a Edición.
R CODER Binom. n.d. “La Función Dbinom.” https://r-coder.com/distribucion-binomial-r/.
Walpole, Ronald E., Raymond H. Myers, and Sharon L. Myers. 2012. Probabilidad y Estadística Para Ingeniería y Ciencias. Novena Edición. México: Pearson.