Estadistica #2 TALLER_1

Modelos de distribución

Autor/a
Afiliación

Carlos Mario González Guerra
Leidy Lorena Garcia Barbosa
Yeisson Montealegre

Fecha de publicación

20 de mayo de 2026

Territorial Tolima

1 Paquetes a instalar

[@tidyverse; @kableExtra; @dplyr]

Ver código
#library(knitr)
#library(kableExtra)
#library(magrittr)
#library(tidyverse)
#library(ggplot2)
#library(dplyr)

2 Modelos Discretos de Probabilidad

Los modelos discretos de probabilidad son herramientas matemáticas utilizadas en estadística y probabilidad para representar situaciones aleatorias en las que los resultados posibles pueden contarse de manera exacta.

Estos modelos permiten estudiar fenómenos donde la variable aleatoria solo puede tomar valores específicos y separados, generalmente números enteros.

Se utilizan en áreas como:

estadística,

economía,

ingeniería,

medicina,

administración,

inteligencia artificial.

Ejemplo sencillo

Si lanzas una moneda:

puede salir cara o sello,

no sabes exactamente qué ocurrirá,

pero sí puedes calcular la probabilidad.

Ese comportamiento se estudia con un modelo probabilístico.

Elementos principales

Un modelo probabilístico tiene:

Experimento aleatorio: acción que produce resultados inciertos.

Espacio muestral: conjunto de posibles resultados.

Variable aleatoria: valor numérico asociado al resultado.

Probabilidad: posibilidad de ocurrencia de cada resultado.

Distribución Bernoulli

La distribución Bernoulli es el modelo discreto más simple.

Describe experimentos aleatorios donde solo existen dos posibles resultados:

éxito, fracaso.

El resultado exitoso generalmente se representa con 1 y el fracaso con 0.

-Solo hay un ensayo. -Existen dos resultados posibles. -La probabilidad de éxito permanece constante.

Distribución Binomial

La distribución binomial se utiliza cuando se realizan varios ensayos Bernoulli independientes y se desea calcular el número total de éxitos.

Características

Número fijo de ensayos. Los ensayos son independientes. Solo existen éxito o fracaso. La probabilidad de éxito es constante.

Distribución de Poisson

La distribución de Poisson modela el número de veces que ocurre un evento dentro de un intervalo de tiempo, espacio o área.

Características Los eventos ocurren aleatoriamente. Las ocurrencias son independientes. Se analiza un intervalo fijo. Se trabaja con promedios de ocurrencia.

Distribución Hipergeométrica

La distribución hipergeométrica se utiliza cuando las extracciones se realizan sin reemplazo dentro de una población finita.

Características La población es limitada. No hay reemplazo. La probabilidad cambia en cada extracción.

Ejercicio 1.

Se sabe que el 60% de los alumnos de una universidad asisten a clases el viernes. En una encuesta a 8 alumnos de la universidad. ¿Cuál es la probabilidad de que a) por lo menos siete asistan a clase el viernes? b) por lo menos dos no asistan a clase.

Este ejercicio se resuelve con una Distribución Binomial:

-Inciso a) P(X >= 7)

Ver código
n <- 8
p <- 0.60
p_x7 <- dbinom(7, size = n, prob = p)
p_x8 <- dbinom(8, size = n, prob = p)
p_a  <- p_x7 + p_x8

cat("P(X = 7) =", round(p_x7, 4), "\n")
P(X = 7) = 0.0896 
Ver código
cat("P(X = 8) =", round(p_x8, 4), "\n")
P(X = 8) = 0.0168 
Ver código
cat("P(X >= 7) =", round(p_a, 4), "\n")
P(X >= 7) = 0.1064 
Ver código
p_a2 <- pbinom(6, size = n, prob = p, lower.tail = FALSE)
cat("Verificacion pbinom:", round(p_a2, 4), "\n")
Verificacion pbinom: 0.1064 
Ver código
library(kableExtra)
# Crear tabla
tabla <- data.frame(
  Evento = c("P(X = 7)",
             "P(X = 8)",
             "P(X >= 7)",
             "Verificacion con pbinom()"),
  
  Resultado = c(round(p_x7, 4),
                round(p_x8, 4),
                round(p_a, 4),
                round(p_a2, 4))
)

# Generar tabla con colores
kable(tabla,
      caption = "Resultados de la distribución binomial",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkblue")
Resultados de la distribución binomial
Evento Resultado
P(X = 7) 0.0896
P(X = 8) 0.0168
P(X >= 7) 0.1064
Verificacion con pbinom() 0.1064

-Inciso b) P(Y >= 2)

Ver código
q <- 1 - p
p_y0 <- dbinom(0, size = n, prob = q)
p_y1 <- dbinom(1, size = n, prob = q)
p_b  <- 1 - (p_y0 + p_y1)

cat("P(Y = 0) =", round(p_y0, 4), "\n")
P(Y = 0) = 0.0168 
Ver código
cat("P(Y = 1) =", round(p_y1, 4), "\n")
P(Y = 1) = 0.0896 
Ver código
cat("P(Y >= 2) =", round(p_b, 4), "\n")
P(Y >= 2) = 0.8936 
Ver código
p_b2 <- pbinom(1, size = n, prob = q, lower.tail = FALSE)
cat("Verificacion pbinom:", round(p_b2, 4), "\n")
Verificacion pbinom: 0.8936 
Ver código
# Crear tabla
tabla3 <- data.frame(
  Evento = c("P(Y = 0)",
             "P(Y = 1)",
             "P(Y >= 2)",
             "Verificacion con pbinom()"),
  
  Resultado = c(round(p_y0, 4),
                round(p_y1, 4),
                round(p_b, 4),
                round(p_b2, 4))
)

# Mostrar tabla con colores y bordes
kable(tabla3,
      caption = "Resultados de probabilidades para P(Y >= 2)",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkblue") %>%
  
  row_spec(1:nrow(tabla3),
           background = c("#E8F8F5", "#D1F2EB"))
Resultados de probabilidades para P(Y >= 2)
Evento Resultado
P(Y = 0) 0.0168
P(Y = 1) 0.0896
P(Y >= 2) 0.8936
Verificacion con pbinom() 0.8936

-Grafica

Ver código
x <- 0:n
prob_x <- dbinom(x, size = n, prob = p)
Ver código
library(ggplot2)
media <- 4.8
desv <- 1.385641

# Datos para la curva normal
x <- seq(0, 10, length = 500)

y <- dnorm(x, mean = media, sd = desv)

datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos, x >= 6.5),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva Gaussiana
  geom_line(
    color = "#0B3C5D",
    linewidth = 1.8
  ) +

  # Línea de la media
  geom_vline(
    xintercept = media,
    linetype = "dashed",
    color = "#C0392B",
    linewidth = 1.2
  ) +

  # Etiquetas
  labs(
    title = "Distribución Binomial Aproximada por la Campana de Gauss",

    subtitle = "Probabilidad de asistencia de estudiantes",

    x = "Número de estudiantes que asisten",

    y = "Densidad de probabilidad"
  ) +

  # Tema profesional
  theme_minimal(base_size = 15) +

  theme(
    plot.title = element_text(
      face = "bold",
      size = 18,
      hjust = 0.5
    ),

    plot.subtitle = element_text(
      hjust = 0.5,
      size = 13
    ),

    axis.title = element_text(
      face = "bold"
    ),

    panel.grid.minor = element_blank()
  )

Esto indica que existe aproximadamente un 10.64% de probabilidad de que siete o más estudiantes asistan a clases el viernes.

Además, mediante la aproximación con la Campana de Gauss o distribución normal, se representó gráficamente el comportamiento probabilístico de la variable aleatoria, permitiendo visualizar de manera más clara la concentración de probabilidades alrededor de la media.

La gráfica mostró que la mayor concentración de estudiantes asistentes se encuentra cerca del valor esperado: lo cual significa que, en promedio, se espera que aproximadamente 5 estudiantes asistan a clases los viernes.

Ejercicio 2.

Según los registros universitarios fracasa el 5% de los alumnos de cierto curso. ¿cuál es la probabilidad de que, de 6 estudiantes seleccionados al azar, menos de 3 hayan fracasado?

Identificación de variables

  • n = 6 (estudiantes seleccionados)

  • p = 0,05 (probabilidad de fracaso)

  • X = número de alumnos que fracasan

  • Se busca: P(X < 3) = P(X = 0) + P(X = 1) + P(X = 2)

n <- 6 p <- 0.05

-Probabilidades individuales

Ver código
p_x0 <- dbinom(0, size = n, prob = p)
p_x1 <- dbinom(1, size = n, prob = p)
p_x2 <- dbinom(2, size = n, prob = p)
p_menor3 <- p_x0 + p_x1 + p_x2

cat("P(X = 0) =", round(p_x0, 4), "\n")
P(X = 0) = 7e-04 
Ver código
cat("P(X = 1) =", round(p_x1, 4), "\n")
P(X = 1) = 0.0079 
Ver código
cat("P(X = 2) =", round(p_x2, 4), "\n")
P(X = 2) = 0.0413 
Ver código
cat("P(X < 3) =", round(p_menor3, 4), "\n")
P(X < 3) = 0.0498 
Ver código
p_ver <- pbinom(2, size = n, prob = p)
cat("Verificacion pbinom:", round(p_ver, 4), "\n")
Verificacion pbinom: 0.0498 
Ver código
# Crear tabla
tabla2 <- data.frame(
  Evento = c("P(X = 0)",
             "P(X = 1)",
             "P(X = 2)",
             "P(X < 3)",
             "Verificacion con pbinom()"),
  
  Resultado = c(round(p_x0, 4),
                round(p_x1, 4),
                round(p_x2, 4),
                round(p_menor3, 4),
                round(p_ver, 4))
)

# Mostrar tabla con colores y bordes
kable(tabla2,
      caption = "Resultados de probabilidades para P(X < 3)",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkred") %>%
  
  row_spec(1:nrow(tabla2),
           background = c("#FDEDEC", "#FADBD8"))
Resultados de probabilidades para P(X < 3)
Evento Resultado
P(X = 0) 0.0007
P(X = 1) 0.0079
P(X = 2) 0.0413
P(X < 3) 0.0498
Verificacion con pbinom() 0.0498

-Medidas descriptivas:

Ver código
media    <- n * p
varianza <- n * p * (1 - p)
desv_est <- sqrt(varianza)
asimetria   <- (1 - 2*p) / sqrt(n*p*(1-p))
curtosis    <- (1 - 6*p*(1-p)) / (n*p*(1-p))

cat("Media:", round(media, 4), "\n")
Media: 4.8 
Ver código
cat("Varianza:", round(varianza, 4), "\n")
Varianza: 1.92 
Ver código
cat("Desviacion estandar:", round(desv_est, 4), "\n")
Desviacion estandar: 1.3856 
Ver código
cat("Asimetria:", round(asimetria, 4), "\n")
Asimetria: -0.1443 
Ver código
cat("Curtosis excesiva:", round(curtosis, 4), "\n")
Curtosis excesiva: -0.2292 
Ver código
# Crear tabla
tabla4 <- data.frame(
  Medida = c("Media",
             "Varianza",
             "Desviacion estandar",
             "Asimetria",
             "Curtosis excesiva"),
  
  Resultado = c(round(media, 4),
                round(varianza, 4),
                round(desv_est, 4),
                round(asimetria, 4),
                round(curtosis, 4))
)

# Mostrar tabla con colores y bordes
kable(tabla4,
      caption = "Medidas estadísticas de la distribución binomial",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkred") %>%
  
  row_spec(1:nrow(tabla4),
           background = c("#F4ECF7", "#E8DAEF"))
Medidas estadísticas de la distribución binomial
Medida Resultado
Media 4.8000
Varianza 1.9200
Desviacion estandar 1.3856
Asimetria -0.1443
Curtosis excesiva -0.2292

-Grafica

Ver código
media <- n * p
desv <- sqrt(n * p * (1 - p))

# Valores para curva
x <- seq(0, 6, length = 1000)

# Densidad normal
y <- dnorm(x,
           mean = media,
           sd = desv)

datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos, x <= 2.5),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva
  geom_line(
    color = "#154360",
    linewidth = 1.8
  ) +

  # Media
  geom_vline(
    xintercept = media,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1.2
  ) +

  labs(
    title = "Distribución Binomial Aproximada",
    subtitle = "Probabilidad de estudiantes reprobados",
    x = "Número de estudiantes que fracasan",
    y = "Densidad de probabilidad"
  ) +

  theme_minimal(base_size = 15)

Con base en el modelo de distribución binomial aplicado (n = 6, p = 0,05), se puede concluir lo siguiente: P(X < 3): La probabilidad de que menos de 3 estudiantes hayan fracasado es aproximadamente 0,9978 (99,78%), lo que indica que es casi seguro que en un grupo de 6 alumnos seleccionados al azar, a lo sumo 2 hayan reprobado el curso. Este resultado es coherente con la baja tasa de fracaso del 5%, lo que significa que la gran mayoría de los estudiantes aprueba el curso. La distribución está fuertemente sesgada hacia la derecha, con una media de apenas 0,30 alumnos esperados en fracaso por grupo, y una asimetría positiva que confirma que los valores altos de fracaso son extremadamente poco frecuentes. En conclusión, el modelo binomial demuestra que, dada la baja probabilidad de fracaso, es prácticamente seguro observar menos de 3 reprobados en muestras pequeñas de 6 estudiantes.

Ejercicio 3.

En promedio, el 10% de las varillas de madera usadas en cierto producto presentan problemas para ser usadas. ¿cuál es la probabilidad de que en un paquete de 15 varillas, a) encuentre exactamente 5 con defectos. b) por lo menos 10 estén nudosas, c) no más de 4 estén nudosas.

Identificación de variables

n = 15 (varillas en el paquete) p = 0,10 (probabilidad de defecto) X = número de varillas con defectos Se busca:

  1. P(X = 5)

  2. P(X ≥ 10)

  3. P(X ≤ 4)

Ver código
n <- 15
p <- 0.10

# a) Exactamente 5 con defectos
p_x5 <- dbinom(5, size = n, prob = p)
cat("a) P(X = 5) =", round(p_x5, 4), "\n")
a) P(X = 5) = 0.0105 
Ver código
# b) Por lo menos 10 nudosas
p_x10 <- pbinom(9, size = n, prob = p, lower.tail = FALSE)
cat("b) P(X >= 10) =", round(p_x10, 4), "\n")
b) P(X >= 10) = 0 
Ver código
# c) No mas de 4 nudosas
p_x4 <- pbinom(4, size = n, prob = p)
cat("c) P(X <= 4) =", round(p_x4, 4), "\n")
c) P(X <= 4) = 0.9873 
Ver código
# Crear tabla
tabla5 <- data.frame(
  Inciso = c("a)", "b)", "c)"),
  
  Evento = c("P(X = 5)",
             "P(X >= 10)",
             "P(X <= 4)"),
  
  Resultado = c(round(p_x5, 4),
                round(p_x10, 4),
                round(p_x4, 4))
)

# Mostrar tabla con colores y bordes
kable(tabla5,
      caption = "Resultados de probabilidades binomiales",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkorange") %>%
  
  row_spec(1:nrow(tabla5),
           background = c("#FEF5E7", "#FDEBD0"))
Resultados de probabilidades binomiales
Inciso Evento Resultado
a) P(X = 5) 0.0105
b) P(X >= 10) 0.0000
c) P(X <= 4) 0.9873
Ver código
media      <- n * p
varianza   <- n * p * (1 - p)
desv_est   <- sqrt(varianza)
asimetria  <- (1 - 2*p) / sqrt(n*p*(1-p))
curtosis   <- (1 - 6*p*(1-p)) / (n*p*(1-p))

cat("Media:", round(media, 4), "\n")
Media: 1.5 
Ver código
cat("Varianza:", round(varianza, 4), "\n")
Varianza: 1.35 
Ver código
cat("Desviacion estandar:", round(desv_est, 4), "\n")
Desviacion estandar: 1.1619 
Ver código
cat("Asimetria:", round(asimetria, 4), "\n")
Asimetria: 0.6885 
Ver código
cat("Curtosis excesiva:", round(curtosis, 4), "\n")
Curtosis excesiva: 0.3407 

Grafico

Ver código
media <- n * p
desv <- sqrt(n * p * (1 - p))

# Valores para curva
x <- seq(0, 15, length = 1000)

# Densidad normal
y <- dnorm(x,
           mean = media,
           sd = desv)

datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos, x <= 4.5),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva Gaussiana
  geom_line(
    color = "#154360",
    linewidth = 1.8
  ) +

  # Línea media
  geom_vline(
    xintercept = media,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1.2
  ) +

  labs(
    title = "Distribución Binomial Aproximada",
    subtitle = "Varillas defectuosas",
    x = "Número de varillas defectuosas",
    y = "Densidad de probabilidad"
  ) +

  theme_minimal(base_size = 15)

Conclusión en el modelo de distribución binomial aplicado (n = 15, p = 0,10), se puede concluir lo siguiente:

  1. P(X = 5): La probabilidad de encontrar exactamente 5 varillas con defectos es aproximadamente 0,0105 (1,05%). Es un evento poco probable, ya que supera considerablemente la media esperada de 1,5 varillas defectuosas por paquete.

  2. P(X ≥ 10): La probabilidad de que al menos 10 varillas estén nudosas es aproximadamente 0,0000 (0,00%), lo que la convierte en un evento prácticamente imposible. Esto es coherente con la baja tasa de defectos del 10%, donde encontrar dos tercios o más del paquete defectuoso es extremadamente improbable.

  3. P(X ≤ 4): La probabilidad de que no más de 4 varillas estén nudosas es aproximadamente 0,9873 (98,73%), lo que indica que es casi seguro que en un paquete de 15 varillas, la mayoría estará en buen estado. En términos generales, la distribución presenta una marcada asimetría positiva, lo que confirma que los defectos son poco frecuentes. La media de 1,5 varillas defectuosas por paquete refleja que el proceso de producción es bastante confiable, y los resultados obtenidos son consistentes con una tasa de fallo baja del 10%.

Ejercicio 4.

Una compañía de seguros considera que alrededor del 25% de los carros se accidentan cada año. ¿Cuál es la probabilidad de que por lo menos 3 de una muestra de 7 vehículos asegurados, se haya accidentado?

Otro problema binomial! Aquí la solución completa:

n = 7 vehículos p = 0.25 probabilidad de accidente Buscamos P(X ≥ 3)

P(X >= 3): al menos 3 accidentados

Usando complemento: P(X >= 3) = 1 - P(X <= 2)

Ver código
n <- 7
p <- 0.25
p_x0 <- dbinom(0, size = n, prob = p)
p_x1 <- dbinom(1, size = n, prob = p)
p_x2 <- dbinom(2, size = n, prob = p)

p_resultado <- 1 - (p_x0 + p_x1 + p_x2)

cat("P(X = 0) =", round(p_x0, 4), "\n")
P(X = 0) = 0.1335 
Ver código
cat("P(X = 1) =", round(p_x1, 4), "\n")
P(X = 1) = 0.3115 
Ver código
cat("P(X = 2) =", round(p_x2, 4), "\n")
P(X = 2) = 0.3115 
Ver código
cat("P(X <= 2) =", round(p_x0 + p_x1 + p_x2, 4), "\n")
P(X <= 2) = 0.7564 
Ver código
cat("P(X >= 3) = 1 - P(X <= 2) =", round(p_resultado, 4), "\n")
P(X >= 3) = 1 - P(X <= 2) = 0.2436 
Ver código
# Crear tabla
tabla7 <- data.frame(
  Evento = c("P(X = 0)",
             "P(X = 1)",
             "P(X = 2)",
             "P(X <= 2)",
             "P(X >= 3)"),
  
  Resultado = c(round(p_x0, 4),
                round(p_x1, 4),
                round(p_x2, 4),
                round(p_x0 + p_x1 + p_x2, 4),
                round(p_resultado, 4))
)

# Mostrar tabla con colores y bordes
kable(tabla7,
      caption = "Resultados de probabilidades binomiales",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkslateblue") %>%
  
  row_spec(1:nrow(tabla7),
           background = c("#EBF5FB", "#D6EAF8"))
Resultados de probabilidades binomiales
Evento Resultado
P(X = 0) 0.1335
P(X = 1) 0.3115
P(X = 2) 0.3115
P(X <= 2) 0.7564
P(X >= 3) 0.2436
  • Grafica
Ver código
media <- n * p
desv <- sqrt(n * p * (1 - p))

# Valores para curva
x <- seq(0, 7, length = 1000)

# Densidad normal
y <- dnorm(x,
           mean = media,
           sd = desv)

# Data frame
datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos, x >= 2.5),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva Gaussiana
  geom_line(
    color = "#154360",
    linewidth = 1.8
  ) +

  # Línea media
  geom_vline(
    xintercept = media,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1.2
  ) +

  labs(
    title = "Distribución Binomial Aproximada",
    subtitle = "Vehículos accidentados",
    x = "Número de vehículos accidentados",
    y = "Densidad de probabilidad"
  ) +

  theme_minimal(base_size = 15)

La probabilidad de que al menos 3 vehículos de una muestra de 7 se hayan accidentado es 0.2436 (24.36%), lo que significa que aproximadamente 1 de cada 4 muestras de este tamaño tendría 3 o más accidentes. Aunque la probabilidad individual de accidente es baja (25%), el riesgo acumulado en una flota es considerable para la aseguradora.

Ejercicio 5.

Los registros muestran que 30% de los pacientes admitidos en una clínica, no pagan sus facturas y eventualmente se condona la deuda. Suponga que llegan 4 nuevos pacientes a la clínica, cual es la probabilidad de que se tenga que perdonar la deuda de uno de los cuatro. b) los cuatro pacientes paguen sus facturas

Datos n = 4 pacientes p = 0.30 probabilidad de no pagar a) P(X = 1) — exactamente 1 no paga b) P(X = 0) — ninguno deja de pagar (los 4 pagan)

  • Inciso a) P(X = 1): exactamente 1 no paga
Ver código
n <- 4
p <- 0.30
p_a <- dbinom(1, size = n, prob = p)
cat("P(X = 1) =", round(p_a, 4), "\n")
P(X = 1) = 0.4116 
Ver código
# Crear tabla
tabla8 <- data.frame(
  Evento = c("P(X = 1)"),
  
  Resultado = c(round(p_a, 4))
)

# Mostrar tabla con colores y bordes
kable(tabla8,
      caption = "Resultado de la probabilidad binomial",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkmagenta") %>%
  
  row_spec(1:nrow(tabla8),
           background = "#F5EEF8")
Resultado de la probabilidad binomial
Evento Resultado
P(X = 1) 0.4116
  • Inciso b) P(X = 0): los 4 pagan
Ver código
p_b <- dbinom(0, size = n, prob = p)
cat("P(X = 0) =", round(p_b, 4), "\n")
P(X = 0) = 0.2401 
Ver código
x <- 0:n
prob_x <- dbinom(x, size = n, prob = p)
Ver código
# Crear tabla
tabla9 <- data.frame(
  Evento = c("P(X = 0)"),
  
  Resultado = c(round(p_b, 4))
)

# Mostrar tabla con colores y bordes
kable(tabla9,
      caption = "Probabilidad de que X = 0",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "#D85A30") %>%
  
  row_spec(1:nrow(tabla9),
           background = "#E8F8F5")
Probabilidad de que X = 0
Evento Resultado
P(X = 0) 0.2401
Ver código
# Tabla de distribución binomial completa
tabla_distribucion <- data.frame(
  x = x,
  Probabilidad = round(prob_x, 4)
)

# Mostrar tabla de distribución
kable(tabla_distribucion,
      caption = "Distribución Binomial Completa",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "#1D9E75") %>%
  
  row_spec(1:nrow(tabla_distribucion),
           background = c("#EBF5FB", "#D6EAF8"))
Distribución Binomial Completa
x Probabilidad
0 0.2401
1 0.4116
2 0.2646
3 0.0756
4 0.0081
  • Grafica
Ver código
media <- n * p
desv <- sqrt(n * p * (1 - p))

# Valores
x <- seq(0, 4, length = 1000)

# Curva normal
y <- dnorm(
  x,
  mean = media,
  sd = desv
)

datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos, x <= 1.5),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva
  geom_line(
    color = "#154360",
    linewidth = 1.8
  ) +

  # Línea media
  geom_vline(
    xintercept = media,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1.2
  ) +

  labs(
    title = "Distribución Binomial Aproximada",
    subtitle = "Pacientes que no pagan",
    x = "Número de pacientes",
    y = "Densidad de probabilidad"
  ) +

  theme_minimal(base_size = 15)

  1. Probabilidad de que exactamente 1 paciente no pague: La probabilidad de que se tenga que perdonar la deuda de exactamente uno de los cuatro pacientes es de 0.4116, es decir, existe un 41.16% de probabilidad de que solo un paciente no pague su factura. Esto indica que es el escenario más probable dentro de la distribución.

  2. Probabilidad de que los 4 pacientes paguen: La probabilidad de que los cuatro pacientes paguen sus facturas es de 0.2401, es decir, hay un 24.01% de probabilidad de que ninguno condone su deuda. Aunque es posible, es un escenario relativamente poco frecuente dado que el 30% de los pacientes habitualmente no paga.

Ejercicio 6.

El conmutador de un hospital recibe en promedio 20 llamadas cada dos minutos. Cuál es la probabilidad de que lleguen como máximo dos llamadas en un periodo de 15 segundos.

Este es un problema de distribución de Poisson! Aquí el razonamiento:

Tasa original: 20 llamadas cada 2 minutos (120 segundos) Hay que ajustar la tasa a 15 segundos:

λ = (20 / 120) × 15 = 2.5 llamadas cada 15 segundos

Buscamos P(X ≤ 2)

Tasa ajustada a 15 segundos

Ver código
lambda <- (20 / 120) * 15  # = 2.5
cat("Lambda (15 seg) =", lambda, "\n\n")
Lambda (15 seg) = 2.5 
  • P(X <= 2): como maximo 2 llamadas
Ver código
p_x0 <- dpois(0, lambda = lambda)
p_x1 <- dpois(1, lambda = lambda)
p_x2 <- dpois(2, lambda = lambda)

p_resultado <- p_x0 + p_x1 + p_x2
cat("P(X = 0) =", round(p_x0, 4), "\n")
P(X = 0) = 0.0821 
Ver código
cat("P(X = 1) =", round(p_x1, 4), "\n")
P(X = 1) = 0.2052 
Ver código
cat("P(X = 2) =", round(p_x2, 4), "\n")
P(X = 2) = 0.2565 
Ver código
cat("P(X <= 2) =", round(p_resultado, 4), "\n")
P(X <= 2) = 0.5438 
Ver código
# Crear tabla
tabla10 <- data.frame(
  Evento = c("P(X = 0)",
             "P(X = 1)",
             "P(X = 2)",
             "P(X <= 2)"),
  
  Resultado = c(round(p_x0, 4),
                round(p_x1, 4),
                round(p_x2, 4),
                round(p_resultado, 4))
)

# Mostrar tabla con colores y bordes
kable(tabla10,
      caption = "Resultados de la distribución de Poisson",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkred") %>%
  
  row_spec(1:nrow(tabla10),
           background = c("#FDEDEC", "#FADBD8"))
Resultados de la distribución de Poisson
Evento Resultado
P(X = 0) 0.0821
P(X = 1) 0.2052
P(X = 2) 0.2565
P(X <= 2) 0.5438

-Grafica

Ver código
x <- seq(0, 8, length = 1000)

# Curva normal aproximada
y <- dnorm(
  x,
  mean = lambda,
  sd = sqrt(lambda)
)

datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos, x <= 2.5),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva Gaussiana
  geom_line(
    color = "#154360",
    linewidth = 1.8
  ) +

  # Línea media
  geom_vline(
    xintercept = lambda,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1.2
  ) +

  labs(
    title = "Distribución de Poisson Aproximada",
    subtitle = "Llamadas recibidas en el hospital",
    x = "Número de llamadas",
    y = "Densidad de probabilidad"
  ) +

  theme_minimal(base_size = 15)

La probabilidad de que lleguen como máximo 2 llamadas al conmutador del hospital en un periodo de 15 segundos es de 0.5438, es decir, existe un 54.38% de probabilidad de que el conmutador reciba 0, 1 o 2 llamadas en dicho intervalo. Dado que la tasa promedio es de 2.5 llamadas por cada 15 segundos, este resultado indica que poco más de la mitad del tiempo el número de llamadas se mantiene en ese rango, lo que refleja una carga moderada pero frecuente para el operador del hospital.

Ejercicio 7.

Los clientes llegan a una exhibición a razón de 6,8 clientes / hora Calcule la probabilidad de que a) en la primera media hora por lo menos lleguen dos clientes; b) en cualquier hora dada llegue más de uno.

problema de distribución de Poisson! Ajustando las tasas:

Tasa original: 6.8 clientes/hora a) Ajuste a 30 minutos: λ = 6.8 / 2 = 3.4 clientes por media hora b) Se mantiene: λ = 6.8 clientes por hora.

  • Inciso a) P(X >= 2) en media hora
Ver código
lambda_a <- 6.8 / 2  # = 3.4

p_x0_a <- dpois(0, lambda = lambda_a)
p_x1_a <- dpois(1, lambda = lambda_a)
p_a    <- 1 - (p_x0_a + p_x1_a)

cat("Lambda (30 min) =", lambda_a, "\n")
Lambda (30 min) = 3.4 
Ver código
cat("P(X = 0) =", round(p_x0_a, 4), "\n")
P(X = 0) = 0.0334 
Ver código
cat("P(X = 1) =", round(p_x1_a, 4), "\n")
P(X = 1) = 0.1135 
Ver código
cat("P(X >= 2) =", round(p_a, 4), "\n\n")
P(X >= 2) = 0.8532 
Ver código
# Verificacion
cat("Verificacion ppois:", round(ppois(1, lambda_a, lower.tail = FALSE), 4), "\n\n")
Verificacion ppois: 0.8532 
Ver código
# Crear tabla
tabla11 <- data.frame(
  Evento = c("Lambda (30 min)",
             "P(X = 0)",
             "P(X = 1)",
             "P(X >= 2)",
             "Verificacion con ppois()"),
  
  Resultado = c(round(lambda_a, 4),
                round(p_x0_a, 4),
                round(p_x1_a, 4),
                round(p_a, 4),
                round(ppois(1, lambda_a, lower.tail = FALSE), 4))
)

# Mostrar tabla con colores y bordes
kable(tabla11,
      caption = "Resultados de la distribución de Poisson",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkorange") %>%
  
  row_spec(1:nrow(tabla11),
           background = c("#FEF5E7", "#FDEBD0"))
Resultados de la distribución de Poisson
Evento Resultado
Lambda (30 min) 3.4000
P(X = 0) 0.0334
P(X = 1) 0.1135
P(X >= 2) 0.8532
Verificacion con ppois() 0.8532

# - Inciso b) P(X > 1) en una hora

Ver código
lambda_b <- 6.8

p_x0_b <- dpois(0, lambda = lambda_b)
p_x1_b <- dpois(1, lambda = lambda_b)
p_b    <- 1 - (p_x0_b + p_x1_b)

cat("Lambda (1 hora) =", lambda_b, "\n")
Lambda (1 hora) = 6.8 
Ver código
cat("P(X = 0) =", round(p_x0_b, 4), "\n")
P(X = 0) = 0.0011 
Ver código
cat("P(X = 1) =", round(p_x1_b, 4), "\n")
P(X = 1) = 0.0076 
Ver código
cat("P(X > 1) =", round(p_b, 4), "\n\n")
P(X > 1) = 0.9913 
Ver código
# Verificacion
cat("Verificacion ppois:", round(ppois(1, lambda_b, lower.tail = FALSE), 4), "\n\n")
Verificacion ppois: 0.9913 
Ver código
# Crear tabla
tabla12 <- data.frame(
  Evento = c("Lambda (1 hora)",
             "P(X = 0)",
             "P(X = 1)",
             "P(X > 1)",
             "Verificacion con ppois()"),
  
  Resultado = c(round(lambda_b, 4),
                round(p_x0_b, 4),
                round(p_x1_b, 4),
                round(p_b, 4),
                round(ppois(1, lambda_b, lower.tail = FALSE), 4))
)

# Mostrar tabla con colores y bordes
kable(tabla12,
      caption = "Resultados de la distribución de Poisson",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkorange") %>%
  
  row_spec(1:nrow(tabla12),
           background = c("#EBF5FB", "#D6EAF8"))
Resultados de la distribución de Poisson
Evento Resultado
Lambda (1 hora) 6.8000
P(X = 0) 0.0011
P(X = 1) 0.0076
P(X > 1) 0.9913
Verificacion con ppois() 0.9913
  • Grafica
Ver código
x <- seq(0, 15, length = 1000)

# Curva normal aproximada
y <- dnorm(
  x,
  mean = lambda_b,
  sd = sqrt(lambda_b)
)

datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos, x >= 1.5),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva
  geom_line(
    color = "#154360",
    linewidth = 1.8
  ) +

  # Media
  geom_vline(
    xintercept = lambda_b,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1.2
  ) +

  labs(
    title = "Distribución de Poisson Aproximada",
    subtitle = "Llegada de clientes por hora",
    x = "Número de clientes",
    y = "Densidad de probabilidad"
  ) +

  theme_minimal(base_size = 15)

) En la primera media hora lleguen por lo menos 2 clientes: Con una tasa ajustada de 3.4 clientes por media hora, la probabilidad de que lleguen al menos 2 clientes en los primeros 30 minutos es de 0.8531, es decir un 85.31%. Esto indica que es muy probable que durante la primera media hora de la exhibición ya haya una afluencia considerable de visitantes, lo que sugiere que el personal debe estar preparado desde el inicio del evento.

  1. En cualquier hora dada llegue más de un cliente: Manteniendo la tasa original de 6.8 clientes por hora, la probabilidad de que lleguen más de un cliente en cualquier hora es de 0.9913, es decir un 99.13%. Este resultado es prácticamente una certeza, lo que significa que en casi cualquier hora de la exhibición se puede esperar la llegada de al menos 2 clientes.

Conclusión general: Dado que los clientes llegan a razón de 6.8 por hora, la exhibición mantiene un flujo constante y elevado de visitantes. La probabilidad de tener al menos 2 clientes es altísima tanto en media hora (85.31%) como en una hora completa (99.13%), lo que refleja que la exhibición tiene una demanda sostenida y que es prácticamente imposible que transcurra una hora sin recibir más de un visitante. Esto es relevante para la planificación del personal y la logística del evento.

Ejercicio 8.

El número promedio de urgencias que llega a un hospital en una hora es de 12. Cuál es la probabilidad de que en un minuto lleguen por lo menos 2 urgencias. ¿Cuál es el número de urgencias esperado por minuto?

Distribución de Poisson ajustando la tasa: Tasa original: 12 urgencias/hora Ajuste a 1 minuto: λ = 12 / 60 = 0.2 urgencias por minuto

Ver código
lambda <- 12 / 60  # = 0.2 urgencias por minuto

cat("Lambda (1 minuto) =", lambda, "\n\n")
Lambda (1 minuto) = 0.2 
Ver código
# --- P(X >= 2): por lo menos 2 urgencias en 1 minuto ---
p_x0 <- dpois(0, lambda = lambda)
p_x1 <- dpois(1, lambda = lambda)
p_resultado <- 1 - (p_x0 + p_x1)

cat("P(X = 0) =", round(p_x0, 4), "\n")
P(X = 0) = 0.8187 
Ver código
cat("P(X = 1) =", round(p_x1, 4), "\n")
P(X = 1) = 0.1637 
Ver código
cat("P(X >= 2) =", round(p_resultado, 4), "\n\n")
P(X >= 2) = 0.0175 
Ver código
# Verificacion
cat("Verificacion ppois:", round(ppois(1, lambda, lower.tail = FALSE), 4), "\n\n")
Verificacion ppois: 0.0175 
Ver código
# --- Numero esperado de urgencias por minuto ---
esperado <- lambda
cat("Numero esperado de urgencias por minuto:", esperado, "\n")
Numero esperado de urgencias por minuto: 0.2 
Ver código
# Crear tabla
tabla13 <- data.frame(
  Evento = c("Lambda (1 minuto)",
             "P(X = 0)",
             "P(X = 1)",
             "P(X >= 2)",
             "Verificacion con ppois()",
             "Numero esperado de urgencias"),
  
  Resultado = c(round(lambda, 4),
                round(p_x0, 4),
                round(p_x1, 4),
                round(p_resultado, 4),
                round(ppois(1, lambda, lower.tail = FALSE), 4),
                round(esperado, 4))
)

# Mostrar tabla con colores y bordes
kable(tabla13,
      caption = "Resultados de la distribución de Poisson",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkgreen") %>%
  
  row_spec(1:nrow(tabla13),
           background = c("#E8F8F5", "#D1F2EB"))
Resultados de la distribución de Poisson
Evento Resultado
Lambda (1 minuto) 0.2000
P(X = 0) 0.8187
P(X = 1) 0.1637
P(X >= 2) 0.0175
Verificacion con ppois() 0.0175
Numero esperado de urgencias 0.2000
  • Grafica
Ver código
x <- seq(0, 6, length = 1000)

# Curva normal aproximada
y <- dnorm(
  x,
  mean = lambda,
  sd = sqrt(lambda)
)

datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos, x >= 1.5),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva Gaussiana
  geom_line(
    color = "#154360",
    linewidth = 1.8
  ) +

  # Línea media
  geom_vline(
    xintercept = lambda,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1.2
  ) +

  labs(
    title = "Distribución de Poisson Aproximada",
    subtitle = "Urgencias por minuto",
    x = "Número de urgencias",
    y = "Densidad de probabilidad"
  ) +

  theme_minimal(base_size = 15)

A nivel de minuto, el flujo de urgencias es muy bajo y esporádico, con una probabilidad mínima (1.76%) de recibir 2 o más casos simultáneamente. Sin embargo, visto en perspectiva horaria, el hospital enfrenta una demanda constante de 12 urgencias por hora, lo que exige una planificación eficiente del personal y los recursos para responder oportunamente a cada caso que se presente.

Ejercicio 9.

Las estadísticas indican que en una fábrica se presentan en promedio 10 accidentes por trimestre. Determine la probabilidad de que no haya más de 12 accidentes en el último trimestre.

  • P(X <= 12): no mas de 12 accidentes
Ver código
lambda <- 10

# -- ---
p_resultado <- ppois(12, lambda = lambda)

cat("Lambda =", lambda, "\n\n")
Lambda = 10 
Ver código
# Calculo manual
for(k in 0:12){
  cat("P(X =", k, ") =", round(dpois(k, lambda), 4), "\n")
}
P(X = 0 ) = 0 
P(X = 1 ) = 5e-04 
P(X = 2 ) = 0.0023 
P(X = 3 ) = 0.0076 
P(X = 4 ) = 0.0189 
P(X = 5 ) = 0.0378 
P(X = 6 ) = 0.0631 
P(X = 7 ) = 0.0901 
P(X = 8 ) = 0.1126 
P(X = 9 ) = 0.1251 
P(X = 10 ) = 0.1251 
P(X = 11 ) = 0.1137 
P(X = 12 ) = 0.0948 
Ver código
cat("\nP(X <= 12) =", round(p_resultado, 4), "\n")

P(X <= 12) = 0.7916 
Ver código
# Crear vector de valores
x <- 0:12

# Calcular probabilidades
probabilidades <- round(dpois(x, lambda), 4)

# Crear tabla de probabilidades
tabla14 <- data.frame(
  Evento = paste("P(X =", x, ")"),
  Probabilidad = probabilidades
)

# Mostrar tabla de probabilidades
kable(tabla14,
      caption = "Probabilidades individuales de la distribución de Poisson",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkred") %>%
  
  row_spec(1:nrow(tabla14),
           background = c("#FDEDEC", "#FADBD8"))
Probabilidades individuales de la distribución de Poisson
Evento Probabilidad
P(X = 0 ) 0.0000
P(X = 1 ) 0.0005
P(X = 2 ) 0.0023
P(X = 3 ) 0.0076
P(X = 4 ) 0.0189
P(X = 5 ) 0.0378
P(X = 6 ) 0.0631
P(X = 7 ) 0.0901
P(X = 8 ) 0.1126
P(X = 9 ) 0.1251
P(X = 10 ) 0.1251
P(X = 11 ) 0.1137
P(X = 12 ) 0.0948
Ver código
# Tabla resumen
tabla15 <- data.frame(
  Concepto = c("Lambda",
               "P(X <= 12)"),
  
  Resultado = c(round(lambda, 4),
                round(p_resultado, 4))
)

# Mostrar tabla resumen
kable(tabla15,
      caption = "Resultado acumulado de la distribución de Poisson",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkblue") %>%
  
  row_spec(1:nrow(tabla15),
           background = c("#EBF5FB", "#D6EAF8"))
Resultado acumulado de la distribución de Poisson
Concepto Resultado
Lambda 10.0000
P(X <= 12) 0.7916
  • Grafica
Ver código
x <- seq(0, 20, length = 1000)

# Curva normal aproximada
y <- dnorm(
  x,
  mean = lambda,
  sd = sqrt(lambda)
)

datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos, x <= 12.5),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva Gaussiana
  geom_line(
    color = "#154360",
    linewidth = 1.8
  ) +

  # Línea media
  geom_vline(
    xintercept = lambda,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1.2
  ) +

  labs(
    title = "Distribución de Poisson Aproximada",
    subtitle = "Accidentes por trimestre",
    x = "Número de accidentes",
    y = "Densidad de probabilidad"
  ) +

  theme_minimal(base_size = 15)

Con una tasa promedio de 10 accidentes por trimestre, la fábrica enfrenta un riesgo considerable en materia de seguridad laboral. Sin embargo, existe una probabilidad alta (79.16%) de que el número de accidentes no supere los 12 en un trimestre dado, lo que indica que los casos extremos por encima de este valor son relativamente poco frecuentes. Aun así, desde una perspectiva de gestión de riesgos, una media de 10 accidentes trimestrales equivale a más de 40 accidentes al año, lo que representa una señal de alerta importante para implementar medidas preventivas y mejorar las condiciones de seguridad en la planta.

Ejercicio 10.

El número de personas que ingresan a la unidad de cuidados intensivos de un hospital en un día cualquiera, es de 5 personas diarias. ¿Cuál es la probabilidad de que el número de personas que ingresan a la unidad de cuidados intensivos en un día particular sea menor o igual a 2 personas?

Distribución de Poisson! Sin ajuste de tasa: Tasa: λ = 5 personas por día Buscamos P(X ≤ 2)

Ver código
lambda <- 5

# --- P(X <= 2): menor o igual a 2 ingresos ---
p_x0 <- dpois(0, lambda = lambda)
p_x1 <- dpois(1, lambda = lambda)
p_x2 <- dpois(2, lambda = lambda)

p_resultado <- p_x0 + p_x1 + p_x2

cat("Lambda =", lambda, "\n\n")
Lambda = 5 
Ver código
cat("P(X = 0) =", round(p_x0, 4), "\n")
P(X = 0) = 0.0067 
Ver código
cat("P(X = 1) =", round(p_x1, 4), "\n")
P(X = 1) = 0.0337 
Ver código
cat("P(X = 2) =", round(p_x2, 4), "\n")
P(X = 2) = 0.0842 
Ver código
cat("P(X <= 2) =", round(p_resultado, 4), "\n\n")
P(X <= 2) = 0.1247 
Ver código
# Verificacion
cat("Verificacion ppois:", round(ppois(2, lambda), 4), "\n")
Verificacion ppois: 0.1247 
Ver código
# Crear tabla
tabla16 <- data.frame(
  Evento = c("Lambda",
             "P(X = 0)",
             "P(X = 1)",
             "P(X = 2)",
             "P(X <= 2)",
             "Verificacion con ppois()"),
  
  Resultado = c(round(lambda, 4),
                round(p_x0, 4),
                round(p_x1, 4),
                round(p_x2, 4),
                round(p_resultado, 4),
                round(ppois(2, lambda), 4))
)

# Mostrar tabla con colores y bordes
kable(tabla16,
      caption = "Resultados de la distribución de Poisson",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkmagenta") %>%
  
  row_spec(1:nrow(tabla16),
           background = c("#F5EEF8", "#EBDEF0"))
Resultados de la distribución de Poisson
Evento Resultado
Lambda 5.0000
P(X = 0) 0.0067
P(X = 1) 0.0337
P(X = 2) 0.0842
P(X <= 2) 0.1247
Verificacion con ppois() 0.1247
  • Grafica
Ver código
x <- seq(0, 15, length = 1000)

# Curva normal aproximada
y <- dnorm(
  x,
  mean = lambda,
  sd = sqrt(lambda)
)

datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos, x <= 2.5),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva Gaussiana
  geom_line(
    color = "#154360",
    linewidth = 1.8
  ) +

  # Línea media
  geom_vline(
    xintercept = lambda,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1.2
  ) +

  labs(
    title = "Distribución de Poisson Aproximada",
    subtitle = "Ingresos diarios a UCI",
    x = "Número de personas",
    y = "Densidad de probabilidad"
  ) +

  theme_minimal(base_size = 15)

Con una tasa promedio de 5 ingresos diarios, la UCI opera bajo una demanda constante y elevada. La baja probabilidad de recibir 2 o menos pacientes en un día (12.47%) indica que la unidad debe estar preparada la mayor parte del tiempo para atender 3 o más ingresos diarios. Esto resalta la importancia de mantener una disponibilidad adecuada de camas, personal médico y recursos en la UCI, ya que la probabilidad de días con baja ocupación es reducida y no puede asumirse como la norma en la planificación hospitalaria.

Ejercicio 11.

Un jefe de almacén sabe que 6 de las 25 bicicletas que tiene para la venta presentan fallas en los frenos y necesitan ajuste. Si el vendedor que no tenía conocimiento de lo anterior vendió en el día 4 bicicletas, ¿cuál es la probabilidad de que vendiera dos de las que requerían ajuste.

Este es un problema de distribución Hipergeométrica Ya que se selecciona una muestra sin reemplazo de una población finita:

N = 25 bicicletas en total K = 6 bicicletas con fallas n = 4 bicicletas vendidas Buscamos P(X = 2)

Ver código
N <- 25   # total de bicicletas
K <- 6    # bicicletas con fallas
n <- 4    # bicicletas vendidas

# --- P(X = 2): exactamente 2 con fallas ---
p_resultado <- dhyper(2, m = K, n = N - K, k = n)

cat("N =", N, "\n")
N = 25 
Ver código
cat("K =", K, "(con fallas)\n")
K = 6 (con fallas)
Ver código
cat("n =", n, "(vendidas)\n\n")
n = 4 (vendidas)
Ver código
cat("P(X = 2) =", round(p_resultado, 4), "\n")
P(X = 2) = 0.2028 
Ver código
# Distribucion completa
cat("\nDistribucion completa:\n")

Distribucion completa:
Ver código
for(x in 0:4){
  cat("P(X =", x, ") =", round(dhyper(x, m = K, n = N - K, k = n), 4), "\n")
}
P(X = 0 ) = 0.3064 
P(X = 1 ) = 0.4596 
P(X = 2 ) = 0.2028 
P(X = 3 ) = 0.03 
P(X = 4 ) = 0.0012 
Ver código
# Crear distribución completa
x <- 0:4
probabilidades <- round(dhyper(x, m = K, n = N - K, k = n), 4)

# Tabla principal
tabla17 <- data.frame(
  Concepto = c("N (total bicicletas)",
               "K (bicicletas con fallas)",
               "n (bicicletas vendidas)",
               "P(X = 2)"),
  
  Resultado = c(N,
                K,
                n,
                round(p_resultado, 4))
)

# Mostrar tabla principal
kable(tabla17,
      caption = "Resultados de la distribución hipergeométrica",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkgreen") %>%
  
  row_spec(1:nrow(tabla17),
           background = c("#E8F8F5", "#D1F2EB"))
Resultados de la distribución hipergeométrica
Concepto Resultado
N (total bicicletas) 25.0000
K (bicicletas con fallas) 6.0000
n (bicicletas vendidas) 4.0000
P(X = 2) 0.2028
Ver código
# Tabla de distribución completa
tabla18 <- data.frame(
  Evento = paste("P(X =", x, ")"),
  Probabilidad = probabilidades
)

# Mostrar tabla distribución
kable(tabla18,
      caption = "Distribución completa",
      align = "c") %>%
  
  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%
  
  row_spec(0,
           bold = TRUE,
           color = "white",
           background = "darkblue") %>%
  
  row_spec(1:nrow(tabla18),
           background = c("#EBF5FB", "#D6EAF8"))
Distribución completa
Evento Probabilidad
P(X = 0 ) 0.3064
P(X = 1 ) 0.4596
P(X = 2 ) 0.2028
P(X = 3 ) 0.0300
P(X = 4 ) 0.0012
  • Grafica
Ver código
media <- n * (K / N)

desv <- sqrt(
  n * (K/N) * (1 - K/N) *
  ((N - n)/(N - 1))
)

# Valores
x_vals <- seq(0, 4, length = 1000)

# Curva normal aproximada
y <- dnorm(
  x_vals,
  mean = media,
  sd = desv
)

datos <- data.frame(x_vals, y)

# Gráfica
ggplot(datos,
       aes(x = x_vals, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos,
                  x_vals >= 1.5 &
                  x_vals <= 2.5),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva
  geom_line(
    color = "#154360",
    linewidth = 1.8
  ) +

  # Línea media
  geom_vline(
    xintercept = media,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1.2
  ) +

  labs(
    title = "Distribución Hipergeométrica Aproximada",
    subtitle = "Bicicletas con fallas en frenos",
    x = "Número de bicicletas defectuosas",
    y = "Densidad de probabilidad"
  ) +

  theme_minimal(base_size = 15)

Resultado: P(X = 2) = 0.2028 → 20.28%

Ejercicio 12.

De un grupo de 20 ingenieros con doctorado, se seleccionan 10 para un alto cargo de una compañía. ¿Cuál es la probabilidad de que los 10 seleccionados incluya a los 5 ingenieros que tienen las mejores calificaciones del grupo de 20?

N=20 → total de ingenieros K=5 → ingenieros con mejores calificaciones n=10 → ingenieros seleccionados Queremos que los 10 seleccionados incluyan a los 5 mejores.

La probabilidad se calcula con distribución hipergeométrica:

Ver código
# Datos
N <- 20
K <- 5
n <- 10

# Probabilidad de incluir a los 5 mejores
p_resultado <- dhyper(5, m = K, n = N - K, k = n)

# Mostrar resultado
cat("P(X = 5) =", round(p_resultado, 6), "\n")
P(X = 5) = 0.016254 

-Grafica

Ver código
media <- n * (K / N)

# Desviación estándar
desv <- sqrt(
  n * (K/N) * (1 - K/N) *
  ((N - n)/(N - 1))
)

# Valores
x_vals <- seq(0, 10, length = 1000)

# Curva normal aproximada
y <- dnorm(
  x_vals,
  mean = media,
  sd = desv
)

datos <- data.frame(x_vals, y)

# Gráfica
ggplot(datos,
       aes(x = x_vals, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos,
                  x_vals >= 4.5),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva Gaussiana
  geom_line(
    color = "#154360",
    linewidth = 1.8
  ) +

  # Línea media
  geom_vline(
    xintercept = media,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1.2
  ) +

  labs(
    title = "Distribución Hipergeométrica Aproximada",
    subtitle = "Selección de ingenieros",
    x = "Número de mejores ingenieros incluidos",
    y = "Densidad de probabilidad"
  ) +

  theme_minimal(base_size = 15)

La probabilidad de que en la selección de 10 ingenieros queden incluidos exactamente los 5 ingenieros con las mejores calificaciones es aproximadamente: P(X=5)≈0.0163P(X = 5) 0.0163P(X=5)≈0.0163 Esto significa que existe solamente un 1.63% de probabilidad de que los cinco ingenieros más destacados sean seleccionados dentro del grupo de 10 elegidos al azar. Por lo tanto, se concluye que este evento es poco probable, ya que la posibilidad de que todos los mejores ingenieros sean incluidos en la selección es bastante baja.

Ejercicio 13.

Un almacén contiene diez maquinas impresoras, cuatro de las cuales están defectuosas. Una compañía selecciona al azar cinco de las maquinas, pensando que todas están en condiciones de trabajar, ¿cuál es la probabilidad de que las cinco maquinas estén en buen estado?

Datos:

Total de máquinas: N=10 Máquinas defectuosas: 4 Máquinas en buen estado: 6 Máquinas seleccionadas: n=5

Ver código
# Datos
N <- 10
buenas <- 6
n <- 5

# Probabilidad de seleccionar 5 buenas
p_resultado <- dhyper(5,
                      m = buenas,
                      n = N - buenas,
                      k = n)

# Mostrar resultado
cat("P(X = 5) =", round(p_resultado, 4), "\n")
P(X = 5) = 0.0238 

-Grafica

Ver código
media <- n * (K / N)

# Desviación estándar
desv <- sqrt(
  n * (K/N) * (1 - K/N) *
  ((N - n)/(N - 1))
)

# Valores
x_vals <- seq(0, 5, length = 1000)

# Curva normal aproximada
y <- dnorm(
  x_vals,
  mean = media,
  sd = desv
)

datos <- data.frame(x_vals, y)

# Gráfica
ggplot(datos,
       aes(x = x_vals, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos,
                  x_vals >= 4.5),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva
  geom_line(
    color = "#154360",
    linewidth = 1.8
  ) +

  # Línea media
  geom_vline(
    xintercept = media,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1.2
  ) +

  labs(
    title = "Distribución Hipergeométrica Aproximada",
    subtitle = "Selección de impresoras en buen estado",
    x = "Número de máquinas buenas",
    y = "Densidad de probabilidad"
  ) +

  theme_minimal(base_size = 15)

La probabilidad de que las cinco máquinas seleccionadas estén en buen estado es aproximadamente:

P(X=5)≈0.0238

Esto significa que existe solamente un 2.38% de probabilidad de seleccionar cinco máquinas totalmente funcionales, por lo que el evento es poco probable debido a la cantidad de máquinas defectuosas presentes en el almacén.

Ejercicio 14.

En promedio una casa de cada 2000 en cierta zona de Barranquilla se incendia durante el año, si hay 6000 casas en dicha zona ¿Cuál es la probabilidad de que más de 3 casas se incendien durante el año?

Este problema se resuelve con la distribución geométrica, porque se busca la probabilidad de obtener el primer éxito antes de cierto número de intentos.

Datos:

Probabilidad de aprobar: p=0.7 Probabilidad de fallar: q=1−p=0.3

Queremos encontrar la probabilidad de que el estudiante apruebe antes del cuarto intento, es decir:

P(X<4)

Equivale a aprobar en el intento 1, 2 o 3:

Este problema se resuelve con la distribución geométrica, porque se busca la probabilidad de obtener el primer éxito antes de cierto número de intentos.

Datos:

Probabilidad de aprobar: p=0.7 Probabilidad de fallar: q=1−p=0.3

Queremos encontrar la probabilidad de que el estudiante apruebe antes del cuarto intento, es decir:

P(X<4)

Equivale a aprobar en el intento 1, 2 o 3:

P(X<4)=1−P(X≥4) P(X<4)=1−q 3 P(X<4)=1−(0.3) 3 P(X<4)=1−0.027 P(X<4)=0.973

Ver código
# Datos
p <- 0.7
q <- 1 - p

# Probabilidad de aprobar antes del 4 intento
p_resultado <- 1 - (q^3)

# Mostrar resultado
cat("P(X < 4) =", round(p_resultado, 4), "\n")
P(X < 4) = 0.973 
  • Grafica
Ver código
x <- seq(0, 10, length = 1000)

# Curva normal aproximada
y <- dnorm(
  x,
  mean = lambda,
  sd = sqrt(lambda)
)

datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos, x >= 3.5),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva
  geom_line(
    color = "#154360",
    linewidth = 1.8
  ) +

  # Línea media
  geom_vline(
    xintercept = lambda,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1.2
  ) +

  labs(
    title = "Distribución de Poisson Aproximada",
    subtitle = "Incendios en viviendas",
    x = "Número de casas incendiadas",
    y = "Densidad de probabilidad"
  ) +

  theme_minimal(base_size = 15)

La probabilidad de que el estudiante apruebe la prueba antes del cuarto intento es:

P(X<4)=0.973

Es decir, existe un 97.3% de probabilidad de que el estudiante logre aprobar el examen en alguno de sus primeros tres intentos.

Ejercicio 15.

La probabilidad de que un estudiante de aviación pase la prueba escrita para obtener su licencia de piloto privado es de 0.7. encuentre la probabilidad de que una persona pase la prueba antes del cuarto intento.

Este ejercicio se resuelve utilizando la distribución geométrica, ya que se analiza el número de intentos necesarios hasta obtener el primer éxito.

Datos:

Este ejercicio se resuelve utilizando la distribución geométrica, ya que se analiza el número de intentos necesarios hasta obtener el primer éxito.

Datos:

Probabilidad de aprobar: p=0.7 Probabilidad de reprobar: q=1−p=0.3

Se pide la probabilidad de que la persona apruebe antes del cuarto intento, es decir, en el intento 1, 2 o 3.

P(X<4)=1−P(X≥4)

La probabilidad de llegar al cuarto intento significa fallar tres veces seguidas:

P(X≥4)=q 3

Entonces:

P(X<4)=1−(0.3) 3 P(X<4)=1−0.027 P(X<4)=0.973

Ver código
# Datos
p <- 0.7
q <- 1 - p

# Probabilidad de aprobar antes del cuarto intento
p_resultado <- 1 - (q^3)

# Mostrar resultado
cat("P(X < 4) =", round(p_resultado, 4), "\n")
P(X < 4) = 0.973 

-Grafica

Ver código
x <- seq(1, 8, length = 1000)

# Aproximación suavizada
y <- dnorm(
  x,
  mean = 1/p,
  sd = sqrt((1-p)/(p^2))
)

datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  # Área sombreada
  geom_area(
    data = subset(datos, x <= 3),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva
  geom_line(
    color = "#154360",
    linewidth = 1.8
  ) +

  # Línea media
  geom_vline(
    xintercept = 1/p,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1.2
  ) +

  labs(
    title = "Distribución Geométrica Aproximada",
    subtitle = "Intentos para aprobar examen",
    x = "Número de intentos",
    y = "Densidad de probabilidad"
  ) +

  theme_minimal(base_size = 15)

La probabilidad de que el estudiante apruebe la prueba antes del cuarto intento es:

0.973

Es decir, existe un 97.3% de probabilidad de que la persona logre aprobar el examen en alguno de sus primeros tres intentos.

3 Ejercicios de Distribución ji-cuadrada

La distribución Ji Cuadrado o Chi-Cuadrado es una distribución de probabilidad continua utilizada principalmente en estadística para analizar variaciones y comprobar hipótesis.

Se representa por:

χ2

y depende de un parámetro llamado grados de libertad (gl).

Características principales Solo toma valores positivos. Su gráfica tiene forma asimétrica hacia la derecha. A medida que aumentan los grados de libertad, la curva se parece más a una distribución normal. Usos principales

La distribución Ji Cuadrado se utiliza para:

Pruebas de independencia en tablas de contingencia. Pruebas de bondad de ajuste. Análisis de varianza y estimación de varianzas poblacionales. Ejemplo sencillo

Se puede usar para verificar si existe relación entre:

género y preferencia de producto, enfermedad y tratamiento, o cualquier comparación entre variables categóricas.

Ejercicio 1

Para una distribución chi-cuadrada encuentre:

2 0.02 2 0.10 2 0.05

cuando v = 18. cuando v = 9. cuando v = 30.

Ver código
# 1)
chi_1 <- qchisq(0.02, df = 18)

# 2)
chi_2 <- qchisq(0.10, df = 9)

# 3)
chi_3 <- qchisq(0.05, df = 30)

# Resultados
cat("Chi-cuadrada 0.02 con v=18 =", round(chi_1,4), "\n")
Chi-cuadrada 0.02 con v=18 = 7.9062 
Ver código
cat("Chi-cuadrada 0.10 con v=9 =", round(chi_2,4), "\n")
Chi-cuadrada 0.10 con v=9 = 4.1682 
Ver código
cat("Chi-cuadrada 0.05 con v=30 =", round(chi_3,4), "\n")
Chi-cuadrada 0.05 con v=30 = 18.4927 

GRÁFICA DISTRIBUCIÓN ji-CUADRADA

Ver código
library(ggplot2)

# Valores
x <- seq(0, 60, length = 1000)

# Distribución chi-cuadrada
y <- dchisq(x, df = 18)

datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  geom_line(
    color = "#154360",
    linewidth = 1.5
  ) +

  geom_area(
    data = subset(datos, x <= 8.2307),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  labs(
    title = "Distribución Chi-cuadrada",
    subtitle = "v = 18",
    x = expression(chi^2),
    y = "Densidad"
  ) +

  theme_minimal(base_size = 15)

La distribución Chi-cuadrada permitió determinar los valores críticos asociados a diferentes probabilidades y grados de libertad.

Los resultados obtenidos fueron: Chi-cuadrada 0.02 con v=18 = 7.9062 Chi-cuadrada 0.10 con v=9 = 4.1682 Chi-cuadrada 0.05 con v=30 = 18.4927

Estos valores son utilizados frecuentemente en pruebas de hipótesis, análisis de varianza y pruebas de independencia estadística.

Ejercicio 2 Para una distribución chi-cuadrada encuentre χ2

tal que:

  1. P (X2 > χ2 ) = 0.97 cuando v = 6.
  2. P (X2 > χ2 ) = 0.01 cuando v = 22.
  3. P (42.980 < X2 < χ2 ) = 0.035 cuando v = 28
  1. P(X2>χ2)=0.97 cuando v=6

Paso 1: Transformar la probabilidad

Ver código
qchisq(0.03, df = 6)
[1] 1.329608

paso 2: Buscar el valor crítico

Ver código
qchisq(0.03, df = 6)
[1] 1.329608
  1. P(X2>χ2)=0.01 cuando v=22

Paso 1

P(X2<)=1-0.01

paso 2:

Ver código
qchisq(0.99, df = 22)
[1] 40.28936
  1. P(42.980<X2<χ2)=0.035 cuando v=28

Paso 1: Hallar la probabilidad acumulada en 42.980

Ver código
pchisq(42.980, df = 28)
[1] 0.9650395

Paso 2: Sumar la probabilidad faltante

0.9581+0.035=0.9931

Paso 3: Buscar el nuevo valor crítico

Ver código
qchisq(0.9931, df = 28)
[1] 49.7475
Ver código
chi_a <- qchisq(0.03, df = 6)


chi_b <- qchisq(0.99, df = 22)



p_inicial <- pchisq(42.980, df = 28)

p_total <- p_inicial + 0.035

chi_c <- qchisq(p_total, df = 28)



cat("a) =", round(chi_a,4), "\n")
a) = 1.3296 
Ver código
cat("b) =", round(chi_b,4), "\n")
b) = 40.2894 
Ver código
cat("c) =", round(chi_c,4), "\n")
c) = NaN 

GRÁFICA CHI-CUADRADA

Ver código
library(ggplot2)

# Valores
x <- seq(0, 70, length = 1000)

# Distribución
y <- dchisq(x, df = 28)

datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  geom_line(
    color = "#154360",
    linewidth = 1.5
  ) +

  geom_area(
    data = subset(datos,
                  x >= 42.980 &
                  x <= 49.5874),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  labs(
    title = "Distribución Chi-cuadrada",
    subtitle = "v = 28",
    x = expression(chi^2),
    y = "Densidad"
  ) +

  theme_minimal(base_size = 15)

La distribución Chi-cuadrada permitió calcular valores críticos asociados a probabilidades acumuladas y áreas de cola.

Los resultados obtenidos fueron: a) = 1.3296 b) = 40.2894 c) = NaN

Estos valores son fundamentales en pruebas de hipótesis, análisis de independencia y estudios estadísticos inferenciales.

Ejercicio 3

La distribución t de Student se utiliza cuando:

La muestra es pequeña. La desviación estándar poblacional es desconocida. Se trabaja con inferencia estadística.

  1. Encontrar P(T<1.895) cuando v=10
Ver código
pt(1.895, df = 10)
[1] 0.9563303
  1. Encontrar P(T>1.742) cuando v=20
Ver código
1 - pt(1.742, df = 20)
[1] 0.04843377
  1. Encontrar P(−1.645<T<2.315) cuando v=15 Fórmula
Ver código
pt(2.315, df = 15) -
pt(-1.645, df = 15)
[1] 0.9220269
  1. Encontrar P(T>−1.985) cuando v=14
Ver código
1 - pt(-1.985, df = 14)
[1] 0.9664522
Ver código
a <- pt(1.895, df = 10)

# b)
b <- 1 - pt(1.742, df = 20)

# c)
c <- pt(2.315, df = 15) -
     pt(-1.645, df = 15)

# d)
d <- 1 - pt(-1.985, df = 14)

# Resultados
cat("a) =", round(a,4), "\n")
a) = 0.9563 
Ver código
cat("b) =", round(b,4), "\n")
b) = 0.0484 
Ver código
cat("c) =", round(c,4), "\n")
c) = 0.922 
Ver código
cat("d) =", round(d,4), "\n")
d) = 0.9665 

GRÁFICA t DE STUDENT

Ver código
library(ggplot2)

# Valores
x <- seq(-5, 5, length = 1000)

# Densidad t
y <- dt(x, df = 15)

datos <- data.frame(x, y)

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  geom_line(
    color = "#154360",
    linewidth = 1.5
  ) +

  geom_area(
    data = subset(datos,
                  x >= -1.645 &
                  x <= 2.315),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  labs(
    title = "Distribución t de Student",
    subtitle = "v = 15",
    x = "Valores t",
    y = "Densidad"
  ) +

  theme_minimal(base_size = 15)

La distribución t de Student permitió calcular probabilidades acumuladas y áreas entre intervalos para diferentes grados de libertad.

Los resultados obtenidos fueron: a) = 0.9563 b) = 0.0484 c) = 0.922 d) = 0.9665

Estas probabilidades son ampliamente utilizadas en pruebas de hipótesis, intervalos de confianza y análisis estadísticos con muestras pequeñas.

Ejercicio 4

Dada una muestra aleatoria de tamaño 30 de una distribución normal, encuentre k tal que: a. P (−1.725 < T < k) = 0.945 b. P (k < T < 2.415) = 0.085 c. P (−k < T < k) = 0.92

4 Distribución t de student

La distribución t de Student es una distribución de probabilidad continua utilizada en estadística para trabajar con muestras pequeñas y cuando la desviación estándar de la población es desconocida.

Fue desarrollada por William Sealy Gosset bajo el seudónimo “Student”.

Características principales Tiene forma de campana, similar a la distribución normal. Es más ancha y con colas más largas que la normal. Depende de los grados de libertad (gl). A medida que aumentan los grados de libertad, la distribución t se parece cada vez más a la distribución normal. ¿Cuándo se utiliza?

Se usa principalmente cuando:

la muestra es pequeña (n<30), no se conoce la desviación estándar poblacional, y se desea realizar inferencias sobre medias. Aplicaciones principales

La distribución t de Student se utiliza en:

pruebas de hipótesis, intervalos de confianza, comparación de medias, análisis estadístico de muestras pequeñas

Ver código
# ==================================================
# 
# ==================================================

# Grados de libertad
v <- 29

# --------------------------------------------------
# a)
# --------------------------------------------------

p1 <- pt(-1.725, df = v)

k_a <- qt(0.945 + p1, df = v)

# --------------------------------------------------
# b)
# --------------------------------------------------

p2 <- pt(2.415, df = v)

k_b <- qt(p2 - 0.085, df = v)

# --------------------------------------------------
# c)
# --------------------------------------------------

k_c <- qt(0.96, df = v)

# --------------------------------------------------
# Resultados
# --------------------------------------------------

cat("a) k =", round(k_a,4), "\n")
a) k = 2.5909 
Ver código
cat("b) k =", round(k_b,4), "\n")
b) k = 1.335 
Ver código
cat("c) k =", round(k_c,4), "\n")
c) k = 1.8142 

GRÁFICA t DE STUDENT

Ver código
library(ggplot2)

# Valores en el eje X
x <- seq(-5, 5, length = 1000)

# Densidad t de Student
y <- dt(x, df = 29)

# Data frame
datos <- data.frame(x, y)

# Valor k
k <- 1.8070

# Gráfica
ggplot(datos, aes(x = x, y = y)) +

  # Área sombreada entre -k y k
  geom_area(
    data = subset(datos, x >= -k & x <= k),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  # Curva t
  geom_line(
    color = "#154360",
    linewidth = 1.5
  ) +

  # Líneas verticales
  geom_vline(
    xintercept = c(-k, k),
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1
  ) +

  # Etiquetas
  labs(
    title = "Distribución t de Student",
    subtitle = "P(-k < T < k) = 0.92",
    x = "Valores t",
    y = "Densidad"
  ) +

  # Tema profesional
  theme_minimal(base_size = 15)

La distribución t de Student permitió determinar los valores críticos (k) asociados a diferentes probabilidades en una muestra aleatoria de tamaño 30, utilizando (v = 29) grados de libertad.

Los resultados obtenidos fueron: a) k = 2.5909 b) k = 1.335 c) k = 1.8142

Estos resultados permiten identificar regiones de probabilidad dentro de la distribución t de Student, siendo fundamentales en inferencia estadística, construcción de intervalos de confianza y pruebas de hipótesis cuando el tamaño de muestra es pequeño y la desviación estándar poblacional es desconocida.

La gráfica ayudó a visualizar el área de probabilidad central comprendida entre los valores críticos (-k) y (k).

Distribucion T de Student

Ejercicio: 1 Encuentre las siguientes probabilidades utilizando la distribución t de Student: a. Encuentre P (T < 1.895) cuando v = 10. b. Encuentre P (T > 1.742) cuando v = 20. c. Encuentre P (−1.645 < T < 2.315) cuando v = 15. d. Encuentre P (T > −1.985) cuando v = 14.

Ver código
# =========================================================
# DISTRIBUCIÓN t DE STUDENT
# PROBABILIDADES Y GRÁFICAS
# =========================================================

# =========================================================
# LIBRERÍAS
# =========================================================

library(ggplot2)
library(dplyr)
library(kableExtra)

# =========================================================
# INCISO A
# P(T < 1.895) cuando gl = 10
# =========================================================

v_a <- 10

# Probabilidad
p_a <- pt(1.895, df = v_a)

cat("\n====================================\n")

====================================
Ver código
cat("INCISO A\n")
INCISO A
Ver código
cat("P(T < 1.895) =", round(p_a,4), "\n")
P(T < 1.895) = 0.9563 
Ver código
cat("====================================\n")
====================================
Ver código
# Datos para gráfica
x_a <- seq(-5, 5, by = 0.01)

df_a <- data.frame(
  x = x_a,
  dens = dt(x_a, df = v_a)
)

# Gráfica
ggplot(df_a, aes(x, dens)) +

  geom_area(
    data = subset(df_a, x <= 1.895),
    fill = "#1D9E75",
    alpha = 0.5
  ) +

  geom_line(
    color = "#154360",
    linewidth = 1.3
  ) +

  geom_vline(
    xintercept = 1.895,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1
  ) +

  labs(
    title = "Distribución t de Student",
    subtitle = "P(T < 1.895), gl = 10",
    x = "Valores t",
    y = "Densidad"
  ) +

  theme_minimal(base_size = 14)

Ver código
# =========================================================
# INCISO B
# P(T > 1.742) cuando gl = 20
# =========================================================

v_b <- 20

# Probabilidad
p_b <- 1 - pt(1.742, df = v_b)

cat("\n====================================\n")

====================================
Ver código
cat("INCISO B\n")
INCISO B
Ver código
cat("P(T > 1.742) =", round(p_b,4), "\n")
P(T > 1.742) = 0.0484 
Ver código
cat("====================================\n")
====================================
Ver código
# Datos para gráfica
x_b <- seq(-5, 5, by = 0.01)

df_b <- data.frame(
  x = x_b,
  dens = dt(x_b, df = v_b)
)

# Gráfica
ggplot(df_b, aes(x, dens)) +

  geom_area(
    data = subset(df_b, x >= 1.742),
    fill = "#D85A30",
    alpha = 0.5
  ) +

  geom_line(
    color = "#154360",
    linewidth = 1.3
  ) +

  geom_vline(
    xintercept = 1.742,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1
  ) +

  labs(
    title = "Distribución t de Student",
    subtitle = "P(T > 1.742), gl = 20",
    x = "Valores t",
    y = "Densidad"
  ) +

  theme_minimal(base_size = 14)

Ver código
# =========================================================
# INCISO C
# P(-1.645 < T < 2.315) cuando gl = 15
# =========================================================

v_c <- 15

# Probabilidad
p_c <- pt(2.315, df = v_c) -
       pt(-1.645, df = v_c)

cat("\n====================================\n")

====================================
Ver código
cat("INCISO C\n")
INCISO C
Ver código
cat("P(-1.645 < T < 2.315) =",
    round(p_c,4), "\n")
P(-1.645 < T < 2.315) = 0.922 
Ver código
cat("====================================\n")
====================================
Ver código
# Datos para gráfica
x_c <- seq(-5, 5, by = 0.01)

df_c <- data.frame(
  x = x_c,
  dens = dt(x_c, df = v_c)
)

# Gráfica
ggplot(df_c, aes(x, dens)) +

  geom_area(
    data = subset(
      df_c,
      x >= -1.645 & x <= 2.315
    ),
    fill = "#2E8B57",
    alpha = 0.5
  ) +

  geom_line(
    color = "#154360",
    linewidth = 1.3
  ) +

  geom_vline(
    xintercept = c(-1.645, 2.315),
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1
  ) +

  labs(
    title = "Distribución t de Student",
    subtitle = "P(-1.645 < T < 2.315), gl = 15",
    x = "Valores t",
    y = "Densidad"
  ) +

  theme_minimal(base_size = 14)

Ver código
# =========================================================
# INCISO D
# P(T > -1.985) cuando gl = 14
# =========================================================

v_d <- 14

# Probabilidad
p_d <- 1 - pt(-1.985, df = v_d)

cat("\n====================================\n")

====================================
Ver código
cat("INCISO D\n")
INCISO D
Ver código
cat("P(T > -1.985) =",
    round(p_d,4), "\n")
P(T > -1.985) = 0.9665 
Ver código
cat("====================================\n")
====================================
Ver código
# Datos para gráfica
x_d <- seq(-5, 5, by = 0.01)

df_d <- data.frame(
  x = x_d,
  dens = dt(x_d, df = v_d)
)

# Gráfica
ggplot(df_d, aes(x, dens)) +

  geom_area(
    data = subset(df_d, x >= -1.985),
    fill = "#3498DB",
    alpha = 0.5
  ) +

  geom_line(
    color = "#154360",
    linewidth = 1.3
  ) +

  geom_vline(
    xintercept = -1.985,
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1
  ) +

  labs(
    title = "Distribución t de Student",
    subtitle = "P(T > -1.985), gl = 14",
    x = "Valores t",
    y = "Densidad"
  ) +

  theme_minimal(base_size = 14)

Ver código
# =========================================================
# TABLA RESUMEN
# =========================================================

tabla_resultados <- data.frame(

  Inciso = c("a", "b", "c", "d"),

  Probabilidad = c(
    "P(T < 1.895)",
    "P(T > 1.742)",
    "P(-1.645 < T < 2.315)",
    "P(T > -1.985)"
  ),

  Resultado = c(
    round(p_a,4),
    round(p_b,4),
    round(p_c,4),
    round(p_d,4)
  )
)

# Mostrar tabla bonita
kable(
  tabla_resultados,
  caption = "Resultados de la Distribución t de Student",
  align = "c"
) %>%

  kable_styling(
    bootstrap_options = c("striped", "bordered", "hover"),
    full_width = FALSE
  ) %>%

  row_spec(
    0,
    bold = TRUE,
    color = "white",
    background = "darkblue"
  )
Resultados de la Distribución t de Student
Inciso Probabilidad Resultado
a P(T < 1.895) 0.9563
b P(T > 1.742) 0.0484
c P(-1.645 < T < 2.315) 0.9220
d P(T > -1.985) 0.9665
Ver código
# =========================================================
# DISTRIBUCIÓN t DE STUDENT
# CADA INCISO COMO UNA CURVA DIFERENTE
# =========================================================

library(ggplot2)

# =========================================================
# DATOS
# =========================================================

x <- seq(-5, 5, by = 0.01)

# ---------------------------------------------------------
# INCISO A
# ---------------------------------------------------------

df_a <- data.frame(
  x = x,
  dens = dt(x, df = 10)
)

# ---------------------------------------------------------
# INCISO B
# ---------------------------------------------------------

df_b <- data.frame(
  x = x,
  dens = dt(x, df = 20)
)

# ---------------------------------------------------------
# INCISO C
# ---------------------------------------------------------

df_c <- data.frame(
  x = x,
  dens = dt(x, df = 15)
)

# ---------------------------------------------------------
# INCISO D
# ---------------------------------------------------------

df_d <- data.frame(
  x = x,
  dens = dt(x, df = 14)
)

# =========================================================
# GRÁFICA
# =========================================================

ggplot() +

  # ======================================================
  # CURVA INCISO A
  # ======================================================

  geom_line(
    data = df_a,
    aes(x = x, y = dens),
    color = "#00B894",
    linewidth = 1.8
  ) +

  geom_area(
    data = subset(df_a, x <= 1.895),
    aes(x = x, y = dens),
    fill = "#00B894",
    alpha = 0.35
  ) +

  geom_vline(
    xintercept = 1.895,
    color = "#00B894",
    linetype = "dashed",
    linewidth = 1
  ) +

  # ======================================================
  # CURVA INCISO B
  # ======================================================

  geom_line(
    data = df_b,
    aes(x = x, y = dens),
    color = "#E17055",
    linewidth = 1.8
  ) +

  geom_area(
    data = subset(df_b, x >= 1.742),
    aes(x = x, y = dens),
    fill = "#E17055",
    alpha = 0.30
  ) +

  geom_vline(
    xintercept = 1.742,
    color = "#E17055",
    linetype = "dashed",
    linewidth = 1
  ) +

  # ======================================================
  # CURVA INCISO C
  # ======================================================

  geom_line(
    data = df_c,
    aes(x = x, y = dens),
    color = "#0984E3",
    linewidth = 1.8
  ) +

  geom_area(
    data = subset(
      df_c,
      x >= -1.645 & x <= 2.315
    ),
    aes(x = x, y = dens),
    fill = "#0984E3",
    alpha = 0.25
  ) +

  geom_vline(
    xintercept = c(-1.645, 2.315),
    color = "#0984E3",
    linetype = "dashed",
    linewidth = 1
  ) +

  # ======================================================
  # CURVA INCISO D
  # ======================================================

  geom_line(
    data = df_d,
    aes(x = x, y = dens),
    color = "#6C5CE7",
    linewidth = 1.8
  ) +

  geom_area(
    data = subset(df_d, x >= -1.985),
    aes(x = x, y = dens),
    fill = "#6C5CE7",
    alpha = 0.20
  ) +

  geom_vline(
    xintercept = -1.985,
    color = "#6C5CE7",
    linetype = "dashed",
    linewidth = 1
  ) +

  # ======================================================
  # ETIQUETAS DE CADA CURVA
  # ======================================================

  annotate(
    "text",
    x = 3.5,
    y = 0.03,
    label = "A",
    color = "#00B894",
    size = 6,
    fontface = "bold"
  ) +

  annotate(
    "text",
    x = 3.2,
    y = 0.06,
    label = "B",
    color = "#E17055",
    size = 6,
    fontface = "bold"
  ) +

  annotate(
    "text",
    x = -3.5,
    y = 0.09,
    label = "C",
    color = "#0984E3",
    size = 6,
    fontface = "bold"
  ) +

  annotate(
    "text",
    x = -3.8,
    y = 0.045,
    label = "D",
    color = "#6C5CE7",
    size = 6,
    fontface = "bold"
  ) +

  # ======================================================
  # TÍTULOS
  # ======================================================

  labs(
    title = "Distribuciones t de Student",
    
    subtitle = "Cada inciso representado como una curva independiente",
    
    x = "Valores t",
    
    y = "Densidad"
  ) +

  # ======================================================
  # TEMA PROFESIONAL
  # ======================================================

  theme_minimal(base_size = 16) +

  theme(
    plot.title = element_text(
      face = "bold",
      size = 22,
      hjust = 0.5
    ),

    plot.subtitle = element_text(
      size = 14,
      hjust = 0.5,
      color = "gray35"
    ),

    axis.title = element_text(
      face = "bold"
    )
  )

Ladistribución de los valores estan determinados por:

a P(T < 1.895)=0.9564 b P(T > 1.742)=0.0483 c P(-1.645 < T < 2.315)=0.9045 d P(T > -1.985)=0.9665

Las gráficas permitieron visualizar las regiones de probabilidad asociadas a cada ejercicio, mostrando cómo la distribución t cambia según los grados de libertad.

Ejercicio 2.

Dada una muestra aleatoria de tamaño 30 de una distribución normal, encuentre k tal que: a. P (−1.725 < T < k) = 0.945 b. P (k < T < 2.415) = 0.085 c. P (−k < T < k) = 0.92

Ver código
# ==================================================
# DISTRIBUCIÓN t DE STUDENT
# ENCONTRAR VALORES k
# ==================================================

# Librería
library(ggplot2)

# ==================================================
# DATOS GENERALES
# ==================================================

# Grados de libertad
v <- 29

# Valores eje X
x <- seq(-5, 5, by = 0.01)

# ==================================================
# INCISO A
# P(-1.725 < T < k) = 0.945
# ==================================================

# Probabilidad acumulada inicial
p_a1 <- pt(-1.725, df = v)

# Probabilidad acumulada final
p_a2 <- 0.945 + p_a1

# Valor k
k_a <- qt(p_a2, df = v)

cat("====================================\n")
====================================
Ver código
cat("INCISO A\n")
INCISO A
Ver código
cat("k =", round(k_a,4), "\n")
k = 2.5909 
Ver código
cat("====================================\n\n")
====================================
Ver código
# Data frame
df_a <- data.frame(
  x = x,
  dens = dt(x, df = v)
)

# Gráfica
ggplot(df_a, aes(x, dens)) +

  geom_area(
    data = subset(
      df_a,
      x >= -1.725 & x <= k_a
    ),
    fill = "#1D9E75",
    alpha = 0.5
  ) +

  geom_line(
    color = "#154360",
    linewidth = 1.3
  ) +

  geom_vline(
    xintercept = c(-1.725, k_a),
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1
  ) +

  labs(
    title = "Distribución t de Student",
    subtitle = "P(-1.725 < T < k) = 0.945",
    x = "Valores t",
    y = "Densidad"
  ) +

  theme_minimal(base_size = 14)

Ver código
# ==================================================
# INCISO B
# P(k < T < 2.415) = 0.085
# ==================================================

# Probabilidad acumulada superior
p_b1 <- pt(2.415, df = v)

# Probabilidad acumulada de k
p_b2 <- p_b1 - 0.085

# Valor k
k_b <- qt(p_b2, df = v)

cat("====================================\n")
====================================
Ver código
cat("INCISO B\n")
INCISO B
Ver código
cat("k =", round(k_b,4), "\n")
k = 1.335 
Ver código
cat("====================================\n\n")
====================================
Ver código
# Data frame
df_b <- data.frame(
  x = x,
  dens = dt(x, df = v)
)

# Gráfica
ggplot(df_b, aes(x, dens)) +

  geom_area(
    data = subset(
      df_b,
      x >= k_b & x <= 2.415
    ),
    fill = "#D85A30",
    alpha = 0.5
  ) +

  geom_line(
    color = "#154360",
    linewidth = 1.3
  ) +

  geom_vline(
    xintercept = c(k_b, 2.415),
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1
  ) +

  labs(
    title = "Distribución t de Student",
    subtitle = "P(k < T < 2.415) = 0.085",
    x = "Valores t",
    y = "Densidad"
  ) +

  theme_minimal(base_size = 14)

Ver código
# ==================================================
# INCISO C
# P(-k < T < k) = 0.92
# ==================================================

# Probabilidad acumulada
p_c <- 0.96

# Valor k
k_c <- qt(p_c, df = v)

cat("====================================\n")
====================================
Ver código
cat("INCISO C\n")
INCISO C
Ver código
cat("k =", round(k_c,4), "\n")
k = 1.8142 
Ver código
cat("====================================\n\n")
====================================
Ver código
# Data frame
df_c <- data.frame(
  x = x,
  dens = dt(x, df = v)
)

# Gráfica
ggplot(df_c, aes(x, dens)) +

  geom_area(
    data = subset(
      df_c,
      x >= -k_c & x <= k_c
    ),
    fill = "#3498DB",
    alpha = 0.5
  ) +

  geom_line(
    color = "#154360",
    linewidth = 1.3
  ) +

  geom_vline(
    xintercept = c(-k_c, k_c),
    color = "#C0392B",
    linetype = "dashed",
    linewidth = 1
  ) +

  labs(
    title = "Distribución t de Student",
    subtitle = "P(-k < T < k) = 0.92",
    x = "Valores t",
    y = "Densidad"
  ) +

  theme_minimal(base_size = 14)

Ver código
# ==================================================
# TABLA DE RESULTADOS
# ==================================================

tabla_resultados <- data.frame(

  Inciso = c(
    "a",
    "b",
    "c"
  ),

  Expresion = c(
    "P(-1.725 < T < k) = 0.945",
    "P(k < T < 2.415) = 0.085",
    "P(-k < T < k) = 0.92"
  ),

  Resultado_k = c(
    round(k_a,4),
    round(k_b,4),
    round(k_c,4)
  )
)

# Mostrar tabla
print(tabla_resultados)
  Inciso                 Expresion Resultado_k
1      a P(-1.725 < T < k) = 0.945      2.5909
2      b  P(k < T < 2.415) = 0.085      1.3350
3      c      P(-k < T < k) = 0.92      1.8142
Ver código
# =========================================================
# DISTRIBUCIÓN t DE STUDENT
# CADA INCISO COMO CURVA DIFERENTE
# VALORES k
# =========================================================

library(ggplot2)

# =========================================================
# DATOS GENERALES
# =========================================================

# Grados de libertad
v <- 29

# Valores eje X
x <- seq(-5, 5, by = 0.01)

# =========================================================
# INCISO A
# P(-1.725 < T < k) = 0.945
# =========================================================

p_a1 <- pt(-1.725, df = v)
p_a2 <- 0.945 + p_a1

k_a <- qt(p_a2, df = v)

cat("====================================\n")
====================================
Ver código
cat("INCISO A\n")
INCISO A
Ver código
cat("k =", round(k_a,4), "\n")
k = 2.5909 
Ver código
cat("====================================\n\n")
====================================
Ver código
# =========================================================
# INCISO B
# P(k < T < 2.415) = 0.085
# =========================================================

p_b1 <- pt(2.415, df = v)
p_b2 <- p_b1 - 0.085

k_b <- qt(p_b2, df = v)

cat("====================================\n")
====================================
Ver código
cat("INCISO B\n")
INCISO B
Ver código
cat("k =", round(k_b,4), "\n")
k = 1.335 
Ver código
cat("====================================\n\n")
====================================
Ver código
# =========================================================
# INCISO C
# P(-k < T < k) = 0.92
# =========================================================

p_c <- 0.96

k_c <- qt(p_c, df = v)

cat("====================================\n")
====================================
Ver código
cat("INCISO C\n")
INCISO C
Ver código
cat("k =", round(k_c,4), "\n")
k = 1.8142 
Ver código
cat("====================================\n\n")
====================================
Ver código
# =========================================================
# DATA FRAMES
# =========================================================

df_a <- data.frame(
  x = x,
  dens = dt(x, df = v)
)

df_b <- data.frame(
  x = x,
  dens = dt(x, df = v)
)

df_c <- data.frame(
  x = x,
  dens = dt(x, df = v)
)

# =========================================================
# GRÁFICA PROFESIONAL COMBINADA
# =========================================================

ggplot() +

  # ======================================================
  # CURVA INCISO A
  # ======================================================

  geom_line(
    data = df_a,
    aes(x = x, y = dens),
    color = "#00B894",
    linewidth = 1.8
  ) +

  geom_area(
    data = subset(
      df_a,
      x >= -1.725 & x <= k_a
    ),
    aes(x = x, y = dens),
    fill = "#00B894",
    alpha = 0.35
  ) +

  geom_vline(
    xintercept = c(-1.725, k_a),
    color = "#00B894",
    linetype = "dashed",
    linewidth = 1
  ) +

  # ======================================================
  # CURVA INCISO B
  # ======================================================

  geom_line(
    data = df_b,
    aes(x = x, y = dens),
    color = "#E17055",
    linewidth = 1.8
  ) +

  geom_area(
    data = subset(
      df_b,
      x >= k_b & x <= 2.415
    ),
    aes(x = x, y = dens),
    fill = "#E17055",
    alpha = 0.30
  ) +

  geom_vline(
    xintercept = c(k_b, 2.415),
    color = "#E17055",
    linetype = "dashed",
    linewidth = 1
  ) +

  # ======================================================
  # CURVA INCISO C
  # ======================================================

  geom_line(
    data = df_c,
    aes(x = x, y = dens),
    color = "#0984E3",
    linewidth = 1.8
  ) +

  geom_area(
    data = subset(
      df_c,
      x >= -k_c & x <= k_c
    ),
    aes(x = x, y = dens),
    fill = "#0984E3",
    alpha = 0.25
  ) +

  geom_vline(
    xintercept = c(-k_c, k_c),
    color = "#0984E3",
    linetype = "dashed",
    linewidth = 1
  ) +

  # ======================================================
  # ETIQUETAS DE CURVAS
  # ======================================================

  annotate(
    "text",
    x = 3.2,
    y = 0.12,
    label = "Inciso A",
    color = "#00B894",
    size = 5,
    fontface = "bold"
  ) +

  annotate(
    "text",
    x = 3.2,
    y = 0.09,
    label = "Inciso B",
    color = "#E17055",
    size = 5,
    fontface = "bold"
  ) +

  annotate(
    "text",
    x = 3.2,
    y = 0.06,
    label = "Inciso C",
    color = "#0984E3",
    size = 5,
    fontface = "bold"
  ) +

  # ======================================================
  # TÍTULOS
  # ======================================================

  labs(
    title = "Distribución t de Student",
    
    subtitle = "Curvas independientes para cada inciso",
    
    x = "Valores t",
    
    y = "Densidad"
  ) +

  # ======================================================
  # TEMA PROFESIONAL
  # ======================================================

  theme_minimal(base_size = 16) +

  theme(
    plot.title = element_text(
      face = "bold",
      size = 22,
      hjust = 0.5
    ),

    plot.subtitle = element_text(
      size = 14,
      hjust = 0.5,
      color = "gray35"
    ),

    axis.title = element_text(
      face = "bold"
    )
  )

Ver código
# =========================================================
# TABLA DE RESULTADOS
# =========================================================

tabla_resultados <- data.frame(

  Inciso = c(
    "a",
    "b",
    "c"
  ),

  Expresion = c(
    "P(-1.725 < T < k) = 0.945",
    "P(k < T < 2.415) = 0.085",
    "P(-k < T < k) = 0.92"
  ),

  Resultado_k = c(
    round(k_a,4),
    round(k_b,4),
    round(k_c,4)
  )
)

print(tabla_resultados)
  Inciso                 Expresion Resultado_k
1      a P(-1.725 < T < k) = 0.945      2.5909
2      b  P(k < T < 2.415) = 0.085      1.3350
3      c      P(-k < T < k) = 0.92      1.8142

5 Distribución F

La distribución F es una distribución de probabilidad continua utilizada principalmente para comparar varianzas entre dos poblaciones y en análisis estadísticos como ANOVA (Análisis de Varianza).

Fue desarrollada por el estadístico Ronald Fisher, por eso se llama distribución F de Fisher.

Características principales

  • Solo toma valores positivos.

  • Tiene forma asimétrica hacia la derecha.

  • Depende de dos grados de libertad:

  • v1v_1v1​: grados de libertad del numerador

  • v2v_2v2​: grados de libertad del denominador

¿Cuándo se utiliza?

La distribución F se usa principalmente para:

  • comparar varianzas,

  • análisis de varianza (ANOVA),

  • pruebas de hipótesis,

  • modelos de regresión.

Aplicaciones comunes

  • Verificar si dos poblaciones tienen varianzas iguales.

  • Comparar medias de varios grupos mediante ANOVA.

  • Evaluar modelos estadísticos.

Forma de la gráfica

Ver código
# =========================================================
# DISTRIBUCIÓN F DE FISHER
# VALORES CRÍTICOS
# =========================================================

# Librería
library(ggplot2)

# =========================================================
# INCISO A
# f0.05 con v1 = 9 y v2 = 18
# =========================================================

alpha_a <- 0.05
v1_a <- 9
v2_a <- 18

f_a <- qf(
  1 - alpha_a,
  df1 = v1_a,
  df2 = v2_a
)

cat("====================================\n")
====================================
Ver código
cat("INCISO A\n")
INCISO A
Ver código
cat("f0.05 =", round(f_a,4), "\n")
f0.05 = 2.4563 
Ver código
cat("====================================\n\n")
====================================
Ver código
# =========================================================
# INCISO B
# f0.01 con v1 = 12 y v2 = 10
# =========================================================

alpha_b <- 0.01
v1_b <- 12
v2_b <- 10

f_b <- qf(
  1 - alpha_b,
  df1 = v1_b,
  df2 = v2_b
)

cat("====================================\n")
====================================
Ver código
cat("INCISO B\n")
INCISO B
Ver código
cat("f0.01 =", round(f_b,4), "\n")
f0.01 = 4.7059 
Ver código
cat("====================================\n\n")
====================================
Ver código
# =========================================================
# INCISO C
# f0.10 con v1 = 20 y v2 = 25
# =========================================================

alpha_c <- 0.10
v1_c <- 20
v2_c <- 25

f_c <- qf(
  1 - alpha_c,
  df1 = v1_c,
  df2 = v2_c
)

cat("====================================\n")
====================================
Ver código
cat("INCISO C\n")
INCISO C
Ver código
cat("f0.10 =", round(f_c,4), "\n")
f0.10 = 1.7175 
Ver código
cat("====================================\n\n")
====================================
Ver código
# =========================================================
# INCISO D
# f0.95 con v1 = 16 y v2 = 30
# =========================================================

alpha_d <- 0.95
v1_d <- 16
v2_d <- 30

f_d <- qf(
  alpha_d,
  df1 = v1_d,
  df2 = v2_d
)

cat("====================================\n")
====================================
Ver código
cat("INCISO D\n")
INCISO D
Ver código
cat("f0.95 =", round(f_d,4), "\n")
f0.95 = 1.9946 
Ver código
cat("====================================\n\n")
====================================
Ver código
# =========================================================
# INCISO E
# f0.99 con v1 = 35 y v2 = 14
# =========================================================

alpha_e <- 0.99
v1_e <- 35
v2_e <- 14

f_e <- qf(
  alpha_e,
  df1 = v1_e,
  df2 = v2_e
)

cat("====================================\n")
====================================
Ver código
cat("INCISO E\n")
INCISO E
Ver código
cat("f0.99 =", round(f_e,4), "\n")
f0.99 = 3.301 
Ver código
cat("====================================\n\n")
====================================
Ver código
# =========================================================
# DATOS PARA LAS CURVAS
# =========================================================

x <- seq(0, 8, by = 0.01)

# Curvas F
df_a <- data.frame(
  x = x,
  dens = df(x, v1_a, v2_a)
)

df_b <- data.frame(
  x = x,
  dens = df(x, v1_b, v2_b)
)

df_c <- data.frame(
  x = x,
  dens = df(x, v1_c, v2_c)
)

df_d <- data.frame(
  x = x,
  dens = df(x, v1_d, v2_d)
)

df_e <- data.frame(
  x = x,
  dens = df(x, v1_e, v2_e)
)

# =========================================================
# GRÁFICA COMBINADA
# =========================================================

ggplot() +

  # ======================================================
  # INCISO A
  # ======================================================

  geom_line(
    data = df_a,
    aes(x, dens),
    color = "#00B894",
    linewidth = 1.5
  ) +

  geom_vline(
    xintercept = f_a,
    color = "#00B894",
    linetype = "dashed"
  ) +

  # ======================================================
  # INCISO B
  # ======================================================

  geom_line(
    data = df_b,
    aes(x, dens),
    color = "#E17055",
    linewidth = 1.5
  ) +

  geom_vline(
    xintercept = f_b,
    color = "#E17055",
    linetype = "dashed"
  ) +

  # ======================================================
  # INCISO C
  # ======================================================

  geom_line(
    data = df_c,
    aes(x, dens),
    color = "#0984E3",
    linewidth = 1.5
  ) +

  geom_vline(
    xintercept = f_c,
    color = "#0984E3",
    linetype = "dashed"
  ) +

  # ======================================================
  # INCISO D
  # ======================================================

  geom_line(
    data = df_d,
    aes(x, dens),
    color = "#6C5CE7",
    linewidth = 1.5
  ) +

  geom_vline(
    xintercept = f_d,
    color = "#6C5CE7",
    linetype = "dashed"
  ) +

  # ======================================================
  # INCISO E
  # ======================================================

  geom_line(
    data = df_e,
    aes(x, dens),
    color = "#D63031",
    linewidth = 1.5
  ) +

  geom_vline(
    xintercept = f_e,
    color = "#D63031",
    linetype = "dashed"
  ) +

  # ======================================================
  # ETIQUETAS
  # ======================================================

  annotate(
    "text",
    x = 6,
    y = 0.75,
    label = "A",
    color = "#00B894",
    size = 6,
    fontface = "bold"
  ) +

  annotate(
    "text",
    x = 6,
    y = 0.60,
    label = "B",
    color = "#E17055",
    size = 6,
    fontface = "bold"
  ) +

  annotate(
    "text",
    x = 6,
    y = 0.45,
    label = "C",
    color = "#0984E3",
    size = 6,
    fontface = "bold"
  ) +

  annotate(
    "text",
    x = 6,
    y = 0.30,
    label = "D",
    color = "#6C5CE7",
    size = 6,
    fontface = "bold"
  ) +

  annotate(
    "text",
    x = 6,
    y = 0.15,
    label = "E",
    color = "#D63031",
    size = 6,
    fontface = "bold"
  ) +

  # ======================================================
  # TÍTULOS
  # ======================================================

  labs(
    title = "Distribución F de Fisher",
    
    subtitle = "Curvas para los incisos A, B, C, D y E",
    
    x = "Valores F",
    
    y = "Densidad"
  ) +

  # ======================================================
  # TEMA
  # ======================================================

  theme_minimal(base_size = 16) +

  theme(
    plot.title = element_text(
      face = "bold",
      size = 22,
      hjust = 0.5
    ),

    plot.subtitle = element_text(
      size = 14,
      hjust = 0.5,
      color = "gray35"
    )
  )

Ver código
# =========================================================
# TABLA DE RESULTADOS
# =========================================================

tabla_resultados <- data.frame(

  Inciso = c(
    "a",
    "b",
    "c",
    "d",
    "e"
  ),

  Expresion = c(
    "f0.05 (9,18)",
    "f0.01 (12,10)",
    "f0.10 (20,25)",
    "f0.95 (16,30)",
    "f0.99 (35,14)"
  ),

  Resultado = c(
    round(f_a,4),
    round(f_b,4),
    round(f_c,4),
    round(f_d,4),
    round(f_e,4)
  )
)

print(tabla_resultados)
  Inciso     Expresion Resultado
1      a  f0.05 (9,18)    2.4563
2      b f0.01 (12,10)    4.7059
3      c f0.10 (20,25)    1.7175
4      d f0.95 (16,30)    1.9946
5      e f0.99 (35,14)    3.3010