1 Distribuciones discretas

1.1 Distribución uniforme discreta

library(ggplot2)
# Rango:
a <- 1
b <- 10


x <- a:b

# Función de masa de probabilidad 
pmf <- rep(1 / 10, length(x))  
df <- data.frame(x = x, pmf = pmf)

#Gráfico de la función de masa de probabilidad:
ggplot(df, aes(x = factor(x), y = pmf)) +
  geom_segment(aes(x = x, xend = x, y = 0, yend = pmf), 
               linetype = "dotted", color = "red", linewidth = 1.5) +  
  geom_point(size = 3, color = "red") +  
  labs(title = "Función de Masa de Probabilidad  - Uniforme Discreta",
       x = "x",
       y = "f(x)") +
  scale_x_discrete() +  
  ylim(0, 0.2) +  
  theme_minimal()

# Función de distribución acumulada:
cdf <- cumsum(pmf)

df <- data.frame(x = x, cdf = cdf)

# Gráfico de la función de distribución acumulada 
ggplot(df, aes(x = x, y = cdf)) +
  geom_segment(aes(x = x - 1, xend = x, y = cdf, yend = cdf), color = "blue", linewidth = 1) +   
  geom_point(aes(x = x - 1), size = 3, color = "blue") +  
  labs(title = "Función de Distribución Acumulada  - Uniforme Discreta",
       x = "x",
       y = "F(x)") +
  scale_x_continuous(breaks = 1:10) +  
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5),  
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10))
  )

1.2 Distribución binomial

n <- 10    
p <- 0.5   

x <- 0:n   #Valores posibles de X                     
pmf <- dbinom(x, size = n, prob = p) #masa de probabilidad  
cdf <- pbinom(x, size = n, prob = p) #distribucion 

# Función de masa de probabilidad:
plot(x, pmf, type = "h", lwd = 2, lty = 2, col = "blue", 
     main = "Función de Masa de Probabilidad - Binomial", 
     xlab = "x", ylab = "f(x)")
points(x, pmf, pch = 16, col = "blue")  
grid()

# Función de distribucion
plot(x, cdf, type = "s", lwd = 2, col = "red", 
     main = "Función de Distribución Acumulada - Binomial", 
     xlab = "x", ylab = "F(x)", 
     axes = TRUE, pch = 16)

points(x, cdf, pch = 16, col = "red")  
grid()

#NOTA: tenga en cuenta que para no volver más extenso el código del gráfico de la función 
#de distribución, esta la graficaremos de ahora en adelante como una escalera, 
#Pero la forma correcta de graficar una función de distribución para una 
#variable aleatoria discreta es como lo hicimos en el ejemplo de la uniforme 
#discreta (visto previamente). 

1.3 Distribución hipergeométrica

# Parámetros:
N <- 20    
M <- 7     
n <- 10    


x <- 0:n 

pmf_h <- dhyper(x, M, N - M, n)  # masa de probabilidad
cdf_h <- phyper(x, M, N - M, n)  # distribución acumulada

# Función de masa de probabilidad:
plot(x, pmf_h, type = "h", lwd = 2, lty = 2, col = "blue", 
     main = "Función de Masa de Probabilidad - hipergeométrica ", 
     xlab = "x", ylab = "f(x)")
points(x, pmf_h, pch = 16, col = "blue") 
grid()

# Función de distribucion
plot(x, cdf_h, type = "s", lwd = 2, col = "red", 
     main = "Función de Distribución Acumulada - hipergeométrica", 
     xlab = "x", ylab = "F(x)", 
     axes = TRUE, pch = 16)

points(x, cdf_h, pch = 16, col = "red")  
grid()

1.4 Distribución binomial negativa

#Parámetros
k <- 5     
p <- 0.4  

x <- 0:20  
pmf_bn <- dnbinom(x, size = k, prob = p)  # Fmasa de probabilidad
cdf_bn <- pnbinom(x, size = k, prob = p)  # Fdistribución acumulada

# Función de masa de probabilidad:
plot(x, pmf_bn, type = "h", lwd = 2, lty = 2, col = "blue", 
     main = "Función de Masa de Probabilidad - Binomial negativa ", 
     xlab = "x", ylab = "f(x)")
points(x, pmf_bn, pch = 16, col = "blue")  
grid()

# Función de distribucion
plot(x, cdf_bn, type = "s", lwd = 2, col = "red", 
     main = "Función de Distribución Acumulada - Binomial negativa", 
     xlab = "x", ylab = "F(x)", 
     axes = TRUE, pch = 16)

points(x, cdf_bn, pch = 16, col = "red")  
grid()

1.5 Distribución geométrica

Recordemos que la distribución geométrica es un caso en específico de la binomial negativa cual el número de éxitos es igual a 1, es decir, k=1.

#Parámetros:
k <- 1     
p <- 0.4   

x <- 0:20  
pmf_ge <- dnbinom(x, size = k, prob = p)  # Fmasa de probabilidad
cdf_ge <- pnbinom(x, size = k, prob = p)  # Fdistribución acumulada

# Función de masa de probabilidad:
plot(x, pmf_ge, type = "h", lwd = 2, lty = 2, col = "blue", 
     main = "Función de Masa de Probabilidad - Geométrica ", 
     xlab = "x", ylab = "f(x)")
points(x, pmf_ge, pch = 16, col = "blue")  
grid()

# Función de distribucion
plot(x, cdf_ge, type = "s", lwd = 2, col = "red", 
     main = "Función de Distribución Acumulada - Geométrica", 
     xlab = "x", ylab = "F(x)", 
     axes = TRUE, pch = 16)

points(x, cdf_ge, pch = 16, col = "red")  
grid()

Empleando las funciones dgeom y pgeom deberíamos llegar a los mismo

p <- 0.4 

x <- 0:20  
pmf_gee <- dgeom(x, prob = p)  
cdf_gee <- pgeom(x, prob = p)  

plot(x, pmf_gee, type = "h", lwd = 2, lty = 2, col = "blue", 
     main = "Función de Masa de Probabilidad - Geométrica", 
     xlab = "x", ylab = "f(x)")
points(x, pmf_gee, pch = 16, col = "blue")  
grid()

# Función de distribucion
plot(x, cdf_gee, type = "s", lwd = 2, col = "red", 
     main = "Función de Distribución Acumulada - Geométrica", 
     xlab = "x", ylab = "F(x)", 
     axes = TRUE, pch = 16)

points(x, cdf_gee, pch = 16, col = "red")  
grid()

1.6 Distribución Poisson

lambda <- 4  

x <- 0:15  
pmf_pois <- dpois(x, lambda)  # Fmasa de probabilidad
cdf_pois <- ppois(x, lambda)  # Fdistribución acumulada

plot(x, pmf_pois, type = "h", lwd = 2, lty = 2, col = "blue", 
     main = "Función de Masa de Probabilidad - Poisson ", 
     xlab = "x", ylab = "f(x)")
points(x, pmf_pois, pch = 16, col = "blue")  
grid()

# Función de distribucion
plot(x, cdf_pois, type = "s", lwd = 2, col = "red", 
     main = "Función de Distribución Acumulada - Poisson", 
     xlab = "x", ylab = "F(x)", 
     axes = TRUE, pch = 16)

points(x, cdf_pois, pch = 16, col = "red")  
grid()

2 Algunos ejemplos:

  1. En un casino uno de los juegos consiste en una ruleta con los números del 1 al 15 cada una de las personas que participa en el juego tiene una etiqueta con un número del 1 al 15. Calcule la probabilidad de que el número ganador sea inferior al cinco.
# Números posibles en la ruleta
total <- 15

# Números inferiores a 5
total_menores <- 4

# Calcular la probabilidad
prob_1 <- total_menores / total
prob_1
## [1] 0.2666667

Veamos la función de distribución acumulada y la función de masa de probabilidad

# Rango:
a <- 1
b <- 15
p <- 1/b

x <- a:b

# Función de masa de probabilidad 
pmf <- rep(p, length(x))  
df <- data.frame(x = x, pmf = pmf)

#Gráfico de la función de masa de probabilidad:
ggplot(df, aes(x = factor(x), y = pmf)) +
  geom_segment(aes(x = x, xend = x, y = 0, yend = pmf), 
               linetype = "dotted", color = "red", linewidth = 1.5) +  
  geom_point(size = 3, color = "red") +  
  labs(title = "Función de Masa de Probabilidad (PMF) - Uniforme Discreta - Ejemplo 1",
       x = "x",
       y = "f(x)") +
  scale_x_discrete() +  
  ylim(0, 0.2) +  
  theme_minimal()

# Función de distribución acumulada:
cdf <- cumsum(pmf)

df <- data.frame(x = x, cdf = cdf)

# Gráfico de la función de distribución acumulada 
ggplot(df, aes(x = x, y = cdf)) +
  geom_segment(aes(x = x - 1, xend = x, y = cdf, yend = cdf), color = "blue", linewidth = 1) +   
  geom_point(aes(x = x - 1), size = 3, color = "blue") +  
  labs(title = "Función de Distribución Acumulada (CDF) - Uniforme Discreta",
       x = "x",
       y = "F(x)") +
  scale_x_continuous(breaks = 1:b) +  
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5),  
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10))
  )

  1. La probabilidad de aprobar probabilidad es de 0.6. Calcule la varianza y el valor esperado de la variable aleatoria X: “Aprobar probabilidad”.
#Como se tiene una función de distribución Bernoulli entonces:

#Valor esperado: 0.6
p <- 0.6
p
## [1] 0.6
#Varianza: 

var <- p*(1-p)
var
## [1] 0.24
  1. Se lanza un dado corriente 20 veces, se quiere calcular la probabilidad de que el “4” aparezca al menos dos veces.
n <- 20   
p <- 1/6  

#Calculamos la probabilidad empleando el complemento:
#Primero calculamos para cuando no sale ningun cuatro, luego para cuando sale uno
prob_3 <- 1 - dbinom(0, size = n, prob = p) - dbinom(1, size = n, prob = p)
prob_3
## [1] 0.8695797
  1. En un supermercado de la ciudad de Medellín, Colombia, otorgan premios a algunos de sus clientes. El proceso consiste en que cuendo la persona se dirige a la caja a pagar sus artículos, oprime un botón y tiene la posibilidad de ganar un premio de 100,000 COP o no ganar nada. Se sabe que la probabilidad de ganar es de 0.03. Calcule la probabilidad de que la quinta persona en ganarse el premio sea la persona número 30 en pagar en caja.
k <- 5    
x <- 30   
p <- 0.03 

# Calcular la probabilidad utilizando dnbinom
prob_4 <- dnbinom(x - k, size = k , prob = p)
prob_4
## [1] 0.0002695141
  1. En una fábrica de chocolates se realiza semanalmente una revisión aleatoria de algunos de los chocolates con el objetivo de permitir que un lote entre en venta o no. Se tiene conocimiento que la empresa fabrica cada semana un total de 1000 chocolates por lote, además, que la máquina produce 100 con imperfecciones. Durante la revisión se seleccionan al azar 50 chocolates por lote:

-¿Cuál es la probabilidad de que se seleccionen exactamente 10 chocolates con imperfecciones?

-Si la selección es independiente por lote ¿Cuál es la probabilidad que en todos los 10 lotes de la semana se tengan exactamente 10 chocolates con imperfecciones?

-Si en lugar de 10 lotes se producen 20 ¿Cuál es la probabilidad de que en 5 lotes se tengan exactamente 10 chocolates con imperfecciones?

#a)
# Parámetros
M <- 100  #Total con imperfecciones
N <- 1000 #Total
n <- 50   #tamaño muestra
x <- 10   #cantidad de chocolates imperfectos en la muestra

prob_5 <- dhyper(x, M, N - M, n)
prob_5
## [1] 0.01375399
#b)

prob_5^10
## [1] 2.422633e-19
#c)
lotes_totales <- 20
lotes_imp <- 5
probab_imp <- prob_5

prob_5_lotes <- dbinom(lotes_imp, size = lotes_totales, prob = probab_imp)
prob_5_lotes
## [1] 6.19964e-06
  1. La probabilidad de que en una empresa de cierto sector económico en un pequeño pueblo entre en bancarrota es del 0.2. Además, se está realizando la encuesta mensual manufacturera donde un encuestador asiste a cada establecimiento de manera independiente. Calcule la probabilidad de que el primer establecimiento de los entrevistados que haya entrado en bacarrota luego de un año de operación sea la número 20 entrevistada
#Probabilidad X=20
p_6 <- 0.2
prob_20 <- dgeom(20 - 1, prob = p_6)
prob_20
## [1] 0.002882304
#Probabilidad de X >= 2

prob_2 <- 1- pgeom(1 - 1, prob = p_6)
prob_2
## [1] 0.8
#Probabilidad de X>= 3

prob_3 <- 1- pgeom(2 - 1, prob = p_6)
prob_3
## [1] 0.64