Calcular la función de densidad y la función de probabilidad probabilidad acumulada bajo la fórmula de distribución de hipergeométrica.
Realizar distribuciones de probabilidad conforme a la distribución de probabilidad de Hipergeométrica a partir de valores iniciales de los ejercicios.
Se generan las tablas de probabilidad conforme a distribución hipergeométrica, se identifican los valores de probabilidad cuando la variable discreta \(x\) tenga algún exactamente algún valor, \(\leq\) a algún valor o \(\gt\) o \(\geq\), entre otros.
Se utilizan las funciones base dhyper() y phyper() para la probabilidad y función acumulada de la distribución hipergeométrica.
Se utiliza también de manera alternativa la función del enlace f.prob.hiper() https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/funciones/funciones.distribuciones.r que permite calcular la probabilidad de una variable aleatoria discreta bajo la distribución hipergeométrica y conforme a la fórmula.
La distribución de probabilidad hipergeométrica está estrechamente relacionada con la distribución binomial. Pero difieren en dos puntos: en la distribución hipergeométrica, los ensayos no son independientes y la probabilidad de éxito varía de ensayo a ensayo (anderson2008?).
La distribución de probabilidad de la variable aleatoria hipergeométrica \(x\), el número de éxitos en una muestra aleatoria de tamaño \(n\) que se selecciona de \(N\) artículos, en los que \(k\) se denomina éxito y \(N-k\) se le llama fracaso (Camacho Avila 2019).
La distribución hipergeométrica es especialmente útil en todos aquellos casos en los que se extraigan muestras o se realicen experiencias repetidas sin devolución del elemento extraído o sin retornar a la situación experimental inicial.
Es una distribución fundamental en el estudio de muestras pequeñas de poblaciones pequeñas y en el cálculo de probabilidades de juegos de azar. Tiene grandes aplicaciones en el control de calidad para procesos experimentales en los que no es posible retornar a la situación de partida. (Cañas, n.d.).
Como en el caso de la distribución binomial, la distribución hipergeométrica se aplica en el muestreo de aceptación, donde se toman muestras del material o las partes de los lotes con el fi n de determinar si se acepta o no el lote completo (Walpole, Myers, and Myers 2012a).
La fórmula de la distribución hipergeométrica
$$f(x) =
$$
Dónde:
\(f(x)\) es la probabildiad de xx o la función de distribución
\(n\) número de ensayos o longitud de la muestra casos exitosos
\(N\) número de elementos de la población
\(r \text{ o }k\)número de elementos de la población que se extraen de la población
\(x\) Valor de la variable aleatoria discreta \(0,1,2,3,...,n\) (Anderson, Sweeney, and Williams 2008).
\(\binom{r}{x}\) Parte izquierda del numerador, representan el número de formas (combinaciones) en que se toman \(x\) éxitos de un total de \(r\) éxitos que hay en la población,
\(\binom{N-r}{n-x}\) parte derecha del numerador representa el número de maneras en que se puede tomar \(n-x\) fracasos de un total de \(N-r\) elementos que hay en la población.
\(\binom{N}{n}\)como denominador representan el número de maneras (cantidad de combinaciones) en que es posible tomar una muestra de tamaño \(n\) de una población de tamaño \(N\); (Anderson, Sweeney, and Williams 2008).
Recordando la fórmula para determinar el número de combinaciones en grupos de nn elementos de una población total de \(N\) está dada por:
$$C_{n}^{N} = =
$$
Entonces desarrollando la fórmula con las combinaciones la función de probabilidad hipergeométrica queda de la siguiente manera:
$$(x)==
$$
\[E(x)= \mu = n \cdot\left(\frac{r}{n}\right)\]
$$Var(x) = ^{2} = n ()(1 - )( )
$$
$$= =
$$
\(N=15\) Total de canicas o bolitas
\(n=m=9\)Canicas rojas
\(k=r=5\) Cantidad que se extrae \(5\)
\(x=3\) Variable aleatoria
En alguna literatura de la fórmula de hipergeométrica la variable \(m\) es igual a la literal \(n\) y \(r\) es lo mismo que la literal \(k\).
$$(x) = =
$$
Entonces, sustituyendo valores de literales:
$$P(x=3) = = ==0.4195
$$
N <- 15
m <- 9 # Canicas rojas
n <- (N-m) # Canicas negras
k <- 5 # Extracción de canicas
x <- 3
# Haciendo operaciones sería
numerador <- factorial(m) / (factorial(x) * (factorial(m-x))) * factorial(N-m) / (factorial(k-x) * (factorial((N-m)-(k-x))))
denominador<- factorial(N) / (factorial(k) * factorial(N-5))
prob <- numerador / denominador
prob
## [1] 0.4195804
Directamente con la función dhyper()
prob <- dhyper(x=x, m = m, n = n, k = k)
prob
## [1] 0.4195804
Ejemplo2: Suponga la extracción aleatoria de 8 elementos de un conjunto formado por 40 elementos totales (cartas baraja española) de los cuales 10 son del tipo A (salir oro) y 30 son del tipo complementario (no salir oro).
Si se realizan las extracciones sin devolver los elementos extraídos y se identifica a \(x\) al número de elementos del tipo A (oros obtenidos) que se extraen en las 8 cartas; \(x\)seguirá una distribución hipergeométrica de parámetros
\(N=40-\) Total de barajas
\(m=n=10\) - Cantidad de oros \(10\)
\(k=8\) - Cuantas cartas se extraen \(8\)
Para calcular la probabilidad de obtener \(4\) oros:
\(x=4\)
Calculando con la función dhyper()
N <- 40 # Total de casos
m <- n <- 8 # Cantidad de oros
k <- r <- 10 # Cantidad de extracción
x <- 4 # Variable aleatoria
dhyper(x = x, m = m, n = (N-m), k = k)
## [1] 0.07483354
Ejemplo 3:
Solución con dhyper()
N <- 40 # Tamaño de lote
m <- 3 # Casos de Exito
k <- 5 # Extracción
x <- 1 # Variable aleatoria
dhyper(x = x, m = m, n = (N - m), k = k)
## [1] 0.3011134
Se presentan ejercicios de distribuciones hipergeométricas, mostrando tablas de distribución y gráfica de la misma, se calculan probabilidades, valores esperados, varianza y desviaciones. Al final se busca la interpretación de cada ejercicio.
Para nuevas librerías se requiere instalar con anticipación, ejemplo, install.packages(“cowplot”).
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
## 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
library(cowplot) #Imágenes en el mismo renglón
##
## Attaching package: 'cowplot'
## The following object is masked from 'package:mosaic':
##
## theme_map
options(scipen=999) # Notación normal
# options(scipen=1) # Notación científica
#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
Una empresa fabrica fusibles que empaca en cajas de 12 unidades cada una.
Asuma que un inspector selecciona al azar 33 de los 1212 fusibles de una caja para inspeccionarlos.
Si la caja contiene exactamente 5 fusibles defectuosos,
En este ejercicio::
n=5n=5 Número de casos exitosos
N=12N=12 Total de elementos
r=3r=3 Extracción de la muestra
xx es la cantidad de fusible defectuosos como variable aleatoria discreta, desde 00 hasta nn o hasta un valor específico(Anderson, Sweeney, and Williams 2008).
Primero inicializar valores
N <- 12
n <- N - 5
r <- 3
x <- 0:r
Distribución de la probabilidad por medio de la función creada llamada f.prob.hiper() y con cumsum()
tabla1 <- data.frame(x=x, f.prob.x = f.prob.hiper(x = x, N = N, n = n, r = r))
tabla1 <- cbind(tabla1, f.acum.x = cumsum(tabla1$f.prob.x))
tabla1
## x f.prob.x f.acum.x
## 1 0 0.04545455 0.04545455
## 2 1 0.31818182 0.36363636
## 3 2 0.47727273 0.84090909
## 4 3 0.15909091 1.00000000
Deben generarse los mismos datos en tabla1 y tabla2
m <-n; N <-N; k <- r; n <- N - m
tabla2 <- data.frame(x=x, f.prob.x = round(dhyper(x = x,m = m, n = n, k = k), 8))
tabla2 <- cbind(tabla2, f.acum.x = round(phyper(q = x,m = m, n = n, k = k), 8))
tabla2
## x f.prob.x f.acum.x
## 1 0 0.04545455 0.04545455
## 2 1 0.31818182 0.36363636
## 3 2 0.47727273 0.84090909
## 4 3 0.15909091 1.00000000
Se presentan la gráfica de probabilidad y la probabilidad acumulada en g1 y g2 respectivamente.
g1 <- ggplot(data = tabla2, aes(x,f.prob.x) ) +
geom_point(colour = "red") +
geom_line(colour = 'blue') +
ggtitle("Función de densidad P(x)")
#g1
g2 <- ggplot(data = tabla2, aes(x,f.acum.x) ) +
geom_point(colour = "red") +
geom_line(colour = 'blue') +
ggtitle("Función acumulada F(x)")
#g2
plot_grid(g1, g2)
¿Cuál es la probabilidad de que el inspector encuentre que uno de los tres fusibles está defectuoso?
Utilizando la tabla de distribución.
x <- 1
prob <- tabla2$f.prob.x[x+1]
paste("La probabilidad de que el inspector encuentre que uno de los tres fusibles está defectuoso es: ", round(prob * 100,4), "%")
## [1] "La probabilidad de que el inspector encuentre que uno de los tres fusibles está defectuoso es: 31.8182 %"
Utilizando dhyper()
prob <- dhyper(x = 1, m = m, n = n, k = k)
paste("La probabilidad de que el inspector encuentre que uno de los tres fusibles está defectuoso es: ", round(prob * 100,4), "%")
## [1] "La probabilidad de que el inspector encuentre que uno de los tres fusibles está defectuoso es: 31.8182 %"
Probabilidad de menos de tres fusibles
¿Cuál es la probabilidad de encontrar menos de tres fusibles defectuosos
\(P(x\leq2)=P(x=0)+P(x=1)+P(x=2)\) o la función acumulada hasta tres \(F(x=3)\)
Utilizando la tabla de distribución
x <- 2
prob <- tabla2$f.acum.x[x+1]
paste("La probabilidad de menos de tres fusibles: ", round(prob * 100,4), "%")
## [1] "La probabilidad de menos de tres fusibles: 84.0909 %"
Utilizando sum(dhyper())
prob <- sum(dhyper(x = 0:x, m = m, n = n, k = k))
paste("La probabilidad de menos de tres fusibles: ", round(prob * 100,4), "%")
## [1] "La probabilidad de menos de tres fusibles: 84.0909 %"
Utilizando phyper()
prob <- phyper(q = x, m = m, n = n, k = k)
paste("La probabilidad de que el inspector encuentre que uno de los tres fusibles está defectuoso es: ", round(prob * 100,4), "%")
## [1] "La probabilidad de que el inspector encuentre que uno de los tres fusibles está defectuoso es: 84.0909 %"
¿Cuál es el valor esperado?
Mandar llamar la función creada anticipadamente f.va.hiper() que se encuentra en https://github.com/rpizarrog/probabilidad-y-estad-stica/blob/master/funciones/funciones.distribuciones.r
N <- 12
n <- 3
r <- 5
VE <- f.va.hiper(n = n, N = N, r = r)
paste("El valor esperado o media de este ejercicios es de: ", VE)
## [1] "El valor esperado o media de este ejercicios es de: 1.25"
¿Cuál es la varianza y la desviación estándar?. También se utilizan las funciones previamente preparadas.
varianza <- f.varianza.hiper(VE = VE, n = 3, N = 12, r = 5)
desvstd <- sqrt(varianza)
paste("El valor de la varianza es de: ", round(varianza,4), " y la desviación std es de: ", round(desvstd, 4))
## [1] "El valor de la varianza es de: 0.5966 y la desviación std es de: 0.7724"
Como resultados al desarrollar el ejercicio obtenemos que:
Existe una probabilidad de aproximadamente 47.72% de que suceda exactamente un fusible defectuoso.
Existe una probabilidad aproximada del 95% de que sucedan fusibles defectuosos menores a 3 componentes
El Valor esperado de 1.25 significa lo que en promedio se espera que suceda por cualquier valor de la variable discreta
La varianza es de 0.5966 y la desviación es de 0.7724 significan el grado de dispersión de los valores de la distribución o que tanto se alejan del valor medio en la distribución de probabilidad en este caso hipergeométrica.
Lotes con \(40\) componentes cada uno que contengan 3 o más defectuosos se consideran inaceptables. El procedimiento para obtener muestras del lote consiste en seleccionar \(5\) componentes al azar y rechazar el lote si se encuentra un componente defectuoso. En todo el lote hay $3$ defectuosos? (Camacho Avila 2019), (Walpole, Myers, and Myers 2012b)
\(n=3\)
\(N=40\)
\(k=5\)
\(x=0,1,2,3,4,...,n\)
Primero inicializar valores
N <- 40
m <- n <- 3
r <- 5
x <- 0:n
m <-n; N <-N; k <- r; n <- N - m
Se construye la tabla de distribución
tabla <- data.frame(x=x, f.prob.x = round(dhyper(x = x,m = m, n = n, k = k), 8))
tabla <- cbind(tabla, f.acum.x = cumsum(tabla$f.prob.x))
tabla
## x f.prob.x f.acum.x
## 1 0 0.66244939 0.6624494
## 2 1 0.30111336 0.9635628
## 3 2 0.03542510 0.9989879
## 4 3 0.00101215 1.0000000
g1 <- ggplot(data = tabla, aes(x,f.prob.x) ) +
geom_point(colour = "red") +
geom_line(colour = 'blue') +
ggtitle("Función de densidad P(x)")
#g1
g2 <- ggplot(data = tabla, aes(x,f.acum.x) ) +
geom_point(colour = "red") +
geom_line(colour = 'blue') +
ggtitle("Función acumulada F(x)")
#g2
plot_grid(g1, g2)
¿Cuál es la probabilidad de que, en la muestra, se encuentre exactamente un componente defectuoso, si en todo el lote hay 3 defectuosos?. \(P(X=1)\)
x <- 1
prob <- tabla$f.prob.x[x+1]
paste("La probabilidad de que, en la muestra, se encuentre exactamente un componente defectuoso de tres es: ", round(prob * 100,4), "%")
## [1] "La probabilidad de que, en la muestra, se encuentre exactamente un componente defectuoso de tres es: 30.1113 %"
¿Cuál es la probabilidad de encontrar menos de tres componentes defectuosos \(P(X\leq 3)=P(x=0)+P(x=1)+P(x=3)\)o la función acumulada \(F(x=3)\)
x <- 3
prob <- phyper(q = x,m = m, n = n, k = k)
paste ("La probabilidad de encontrar menos de tres componentes", round(prob, 4))
## [1] "La probabilidad de encontrar menos de tres componentes 1"
VE <- f.va.hiper(n = n, N = N, r = r)
paste("El valor esperado o media de este ejercicios es de: ", VE)
## [1] "El valor esperado o media de este ejercicios es de: 4.625"
varianza <- f.varianza.hiper(VE = VE, n = 3, N = 12, r = 5)
desvstd <- sqrt(varianza)
paste("El valor de la varianza es de: ", round(varianza,4), " y la desviación std es de: ", round(desvstd, 4))
## [1] "El valor de la varianza es de: 2.2074 y la desviación std es de: 1.4857"
En este ejercicio en su contexto, sólo 30% de las veces detecta un lote malo (con 3 componentes defectuosos). (Camacho Avila 2019).
primero se inicializan los valores para despues construir la tabla de distribucion, posteriormente hacemos las graficas de probabilidad tando de funcion de densidad como la funcion acumulada. Con esto podemos realizar los siguientes procesos para responder incognitas como la probabilidad de exactamente un componente que da un valor de 30.1112%, despues la probabilidad de al menos 3 es de 1, despues calculamos el valor esperado que da un resultado de 4.625 y despues la varianza que nos da 2.2074 y una desviacion estandar de 1.4857.
Se tiene un lote de \(100\) artículos de los cuales \(12\) están defectuosos. Se extraen lotes de \(10\).
Primero inicializar valores
N <- 100
m <- n <- 12
r <- 10
x <- 0:n
m <-n; N <-N; k <- r; n <- N - n
Distribución de la probabilidad por medio de la función creada llamada f.prob.hiper()
tabla <- data.frame(x=x, f.prob.x = round(dhyper(x = x, m = m, n = n, k = r), 8))
tabla <- cbind(tabla, f.acum.x = cumsum(tabla$f.prob.x))
tabla
## x f.prob.x f.acum.x
## 1 0 0.26075027 0.2607503
## 2 1 0.39607636 0.6568266
## 3 2 0.24507225 0.9018989
## 4 3 0.08068222 0.9825811
## 5 4 0.01549689 0.9980780
## 6 5 0.00179241 0.9998704
## 7 6 0.00012447 0.9999949
## 8 7 0.00000502 0.9999999
## 9 8 0.00000011 1.0000000
## 10 9 0.00000000 1.0000000
## 11 10 0.00000000 1.0000000
## 12 11 0.00000000 1.0000000
## 13 12 0.00000000 1.0000000
g1 <- ggplot(data = tabla, aes(x,f.prob.x) ) +
geom_point(colour = "red") +
geom_line(colour = 'blue') +
ggtitle("Función de densidad P(x)")
#g1
g2 <- ggplot(data = tabla, aes(x,f.acum.x) ) +
geom_point(colour = "red") +
geom_line(colour = 'blue') +
ggtitle("Función acumulada F(x)")
#g2
plot_grid(g1, g2)
¿Cuál es la probabilidad de que haya 3 defectuosos en una muestra de 10? \(P(x=3)\)
x <- 3
prob <- tabla$f.prob.x[x+1]
paste("La probabilidad de que haya 3 defectuosos en una muestra de 10 es de", prob)
## [1] "La probabilidad de que haya 3 defectuosos en una muestra de 10 es de 0.08068222"
Con la función dhyper()
x <- 3
dhyper(x = x, m = m, n = n, k = k)
## [1] 0.08068222
paste("La probabilidad de que haya 3 defectuosos en una muestra de 10 es de", prob)
## [1] "La probabilidad de que haya 3 defectuosos en una muestra de 10 es de 0.08068222"
¿Cuál es el valor esperado?
VE <- f.va.hiper(n = n, N = N, r = r)
paste("El valor esperado o media de este ejercicios es de: ", VE)
## [1] "El valor esperado o media de este ejercicios es de: 8.8"
¿Cuál es la varianza y la desviación estándar?
varianza <- f.varianza.hiper(VE = VE, n = 3, N = 12, r = 5)
desvstd <- sqrt(varianza)
paste("El valor de la varianza es de: ", round(varianza,4), " y la desviación std es de: ", round(desvstd, 4))
## [1] "El valor de la varianza es de: 4.2 y la desviación std es de: 2.0494"
En este ejercicio obtenemos que la probabilidad de que haya 3 defectuosos en una muestra de 10 es de 0.0806822, esta se puede hacer con el uso de la funcion de lenguaje R dhypher()
Como valor esperado obtenemos que es de 8.8.
La varianza y la desviacion obtenemos que primero la varianza es de 4.2 y la desviacion estandar de 2.0494.
Un estudiante tiene que preparar cien temas. En el examen se sacan tres a sorteo, de los cuales deberá exponer uno y aprobar al menos uno. El estudiante decide estudiar o preparar solamente la mitad y probar suerte. (quintela2019?).
Valores iniciales
N <- 100
n <- 3
r <- 50
x <- 0:n
m <-n; N <-N; k <- r; n <- N - n
Se construye la tabla de distribución
tabla <- data.frame(x=x, f.prob.x = round(dhyper(x = x, m = m, n = n, k = r), 8))
tabla <- cbind(tabla, f.acum.x = cumsum(tabla$f.prob.x))
tabla
## x f.prob.x f.acum.x
## 1 0 0.1212121 0.1212121
## 2 1 0.3787879 0.5000000
## 3 2 0.3787879 0.8787879
## 4 3 0.1212121 1.0000000
g1 <- ggplot(data = tabla, aes(x,f.prob.x) ) +
geom_point(colour = "red") +
geom_line(colour = 'blue') +
ggtitle("Función de densidad P(x)")
#g1
g2 <- ggplot(data = tabla, aes(x,f.acum.x) ) +
geom_point(colour = "red") +
geom_line(colour = 'blue') +
ggtitle("Función acumulada F(x)")
#g2
plot_grid(g1, g2)
Se calcula la probabilidad cuando \(P(x=0)\)
prob <- dhyper(x = 0, m = m, n = n, k = k)
paste ("La probabilidad de que no apruebe es de: ", prob, " o sea ", round(prob*100, 4), "%")
## [1] "La probabilidad de que no apruebe es de: 0.121212121212121 o sea 12.1212 %"
Se requiere al menos 1 de los temas, o lo que es lo mismo \(1-F(x=0)\)
prob <- 1 - phyper(q = 0, m = m, n = n, k = k)
paste ("La probabilidad de que apruebe es de: ", prob, " o sea ", round(prob*100, 4), "%")
## [1] "La probabilidad de que apruebe es de: 0.878787878787879 o sea 87.8788 %"
O se puede usar la función phyper() con el parámetro lower.tail = FALSE.
prob <- phyper(q = 0, m = m, n = n, k = k, lower.tail = FALSE)
paste ("La probabilidad de que apruebe es de: ", prob, " o sea ", round(prob*100, 4), "%")
## [1] "La probabilidad de que apruebe es de: 0.878787878787879 o sea 87.8788 %"
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,.
Camacho Avila, Marcela. 2019. “Probabilidad y Estadística. Modelos Probabilísticos.” 2019. “http://148.215.1.182/bitstream/handle/20.500.11799/108238/secme-34236_1.pdf?sequence=1.”
Cañas, Juan Jesús. n.d. “Distribución Hipergeométrica.”
Walpole, Ronald E., Raymond H. Myers, and Sharon L. Myers. 2012b. Probabilidad y Estadística Para Ingeniería y Ciencias. Novena Edición. México: Pearson.
———. 2012a. Probabilidad y Estadística Para Ingeniería y Ciencias. Novena Edición. México: Pearson.