Universidad del Valle

Seccional Buga

Programa de Ingeniería Industrial

Distribución Probabilística para Gestión de Datos

Presentado por:

Jhoan Steven Correa Gonzalez

Ana Sofia Ramos

Fecha de entrega: 14 de mayo de 2026

Distribuciones Probabilisticos

Las distribuciones de probabilidad sirven para determinar la factibilidad de cada uno de los posibles resultados de un experimento o fenómeno aleatorio.

DEFINICIÓN

1. LOGNORMAL

Una distribución log-normal representa un conjunto de datos que sigue una distribución normal al aplicar logaritmos a sus valores. Aunque a menudo se pasa por alto en comparación con la conocida curva de campana de una distribución normal, la distribución log-normal es fundamental en los análisis financieros, especialmente para modelar los precios y rendimientos de las acciones.

  • Fórmula lognormal

\[f(x)=\frac{1}{x\sigma \sqrt{2\pi }}e^{-\frac{(Lnx - \mu )^{2}}{2\sigma^{2} }}, x>0\]

Donde:

  • \(\mu\) = media del logaritmo natural de la variable
  • \(\sigma\) = desviación estándar del logaritmo natural de la variable
  • \(x>0\) -En donde x = Valor de la variable (Solo valores positivos)

GRÁFICA

x <- seq(0, 5, by = 0.01)
y <- dlnorm(x, meanlog = 0, sdlog = 0.5)
plot(x, y, type = "l", col = "brown", lwd = 2, 
     main = "Distribución Lognormal",
     xlab = "Valores de x", 
     ylab = "Densidad")

  • EJEMPLO

Una tienda de tecnología especializada en productos iPhone, ubicada en Guadalajara de Buga, realizó un estudio sobre el dinero que gastan sus clientes en compras de accesorios y dispositivos electrónicos a través de su plataforma virtual. Entre los productos más vendidos se encuentran fundas, cargadores inalámbricos, audífonos, protectores de pantalla y accesorios originales para diferentes modelos de iPhone.

Durante el análisis de las ventas, la empresa observó que la mayoría de clientes realizan compras de valores pequeños o moderados; sin embargo, algunos clientes adquieren varios productos premium o dispositivos de alta gama, ocasionando compras mucho más grandes .Tras el procesamiento estadístico, se determinó que los montos de compra (\(X\))

A continuación, se genera una muestra de 50 clientes y se calcula la densidad de probabilidad para un gasto de $30,000 COP.

fijos:Media logarítmica (\(\mu\)):3

Desviación estándar logarítmica (\(\sigma\)): 0.5

  • LOGARITMO BASE (A PIE)
fact <- function(n) {
  r <- 1
  if (n > 0) for (i in 1:n) r <- r * i
  return(r)
}

raiz <- function(v) {
  r <- v / 2.0
  for (k in 1:30) r <- (r + v / r) / 2.0
  return(r)
}

expo <- function(x) {
  if (x < 0) return(1 / expo(-x))
  s <- 0.0
  for (i in 0:100) s <- s + (x ^ i) / fact(i)
  return(s)
}

log <- function(x) {
  if (x <= 0) return(0) 
  z <- (x - 1.0) / (x + 1.0)
  z2 <- z * z
  p <- z
  s <- 0.0
  for (k in 0:100) {
    s <- s + p / (2 * k + 1)
    p <- p * z2
  }
  return(2.0 * s)
}

lognormal <- function(x, mu, sigma) {
  PI <- 3.141592653589793
  if (x <= 0) return(0)
  denominador <- x * sigma * raiz(2 * PI)
  exponente <- -((log(x) - mu)^2) / (2 * sigma^2)
  
  return((1 / denominador) * expo(exponente))
}
#Para hallar la densidad de la probabilidad 
lognormal(30,3,0.5)
## [1] 0.01927575
dlnorm(30,3,0.5)
## [1] 0.01927575
  • TABLA DE DATOS
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.5.3
set.seed(123) #Organizar los datos(como un libro y sus paginas)
n <- 50
df <- data.frame(
  ID = 1:n,
  Producto = sample(c("Funda Silicona", "Cargador 20W", "AirPods Pro", 
                      "ProtectorPantalla","CableLightning","MagSafeDuo"), 
 n, replace = TRUE),
  Gasto_Miles = round(rlnorm(n, meanlog = 3, sdlog = 0.5), 2))

# Ordenar el gasti de los productos de mayor a menor
df <- df[order(df$Gasto_Miles, decreasing = TRUE), ]
head(df, 10) %>%
  kbl(align = "c") %>%
  kable_styling() %>%
  kable_paper(c("striped", "hover")) %>%
  column_spec(1:3, color = "black") %>%           
  column_spec(2, background = "lightblue")
ID Producto Gasto_Miles
32 32 AirPods Pro 58.85
21 21 Funda Silicona 46.76
28 28 AirPods Pro 46.66
26 26 Funda Silicona 45.22
13 13 Cargador 20W 37.39
35 35 Cargador 20W 37.23
22 22 CableLightning 37.12
3 3 AirPods Pro 31.29
11 11 MagSafeDuo 29.97
38 38 Funda Silicona 29.87
  • GRÁFICA
x <- seq(0, 80, by = 0.1)
y <- dlnorm(x, meanlog = 3, sdlog = 0.5)
plot(x, y, type = "l", col = "brown", lwd = 2,
     main = "Distribución Lognormal - Tienda iPhone Buga",
     xlab = "Dinero Gastado (Miles de COP)",
     ylab = "Densidad")

# 4. Marcar el punto de los 30 mil pesos
abline(v = 30, col = "red", lty = 2)

points(30, dlnorm(30, 3, 0.5), col = "red", pch = 19)

#Se mide el valor de las ventas y muy pocas personas gastan mas allá del presupuesto, los $30 es la densidad.

DEFINICIÓN

2. GAUSSIANA

La distribución Gaussiana, también conocida como distribución normal, es un concepto estadístico que describe cómo se distribuyen los datos alrededor de un valor promedio. Es como una “campana” simétrica que muestra cómo los valores se agrupan alrededor de un punto central.

  • Fórmula gaussiana

\[f(x)=\frac{1}{\sigma \sqrt{2\pi }}e^{-\frac{(x - \mu )^{2}}{2\sigma^{2} }}\]

Parámetros de la función:

  • \(x\) = es el valor de la variable.

  • $$ = es la media (el centro de la campana).

  • \(\sigma\) = es la desviación estándar, que indica qué tan dispersos están los datos.

  • \(e\) =e s el número de Euler.

GRÁFICA

x <- seq(-4, 4, length.out = 100)

y <- dnorm(x, mean = 0, sd = 1)

plot(x, y, type = "l", col = "brown", lwd = 2,
     main = "Distribución Gaussiana (Normal)",
     xlab = "Z-Score", 
     ylab = "Densidad")

  • EJEMPLO

En el Hospital Divino Niño de Guadalajara de Buga se realizó un estudio sobre el tiempo de atención de los pacientes en el área de urgencias durante jornadas de alta demanda. El hospital buscaba evaluar la eficiencia del servicio y analizar si los tiempos de espera se mantenían dentro de los estándares establecidos por la institución.

Durante varias semanas se registró el tiempo que transcurría desde la llegada del paciente hasta el momento en que era atendido por el personal médico. Después del análisis de los datos, se observó que la mayoría de pacientes eran atendidos cerca del tiempo promedio, mientras que pocos casos presentaban tiempos mucho menores o mayores.

Después del análisis estadístico se obtuvo:

Media = 35 minutos Desviación estándar = 6 minutos

Si X representa el tiempo de atención de un paciente en el área de urgencias, determine la probabilidad de que un paciente sea atendido en máximo 40 minutos

Determinar la probabilidad de que un paciente sea atendido en un tiempo máximo de 40 minutos, sabiendo que el tiempo promedio es de 35 minutos con una desviación de 6 minutos.

  • LOGARITMO BASE (A PIE)
fact <- function(n) {
  r <- 1
  if (n > 0) for (i in 1:n) r <- r * i
  return(r)
}

raiz <- function(v) {
  r <- v / 2.0
  for (k in 1:30) r <- (r + v / r) / 2.0
  return(r)
}

expo <- function(x) {
  if (x < 0) return(1 / expo(-x))
  s <- 0.0
  for (i in 0:100) s <- s + (x ^ i) / fact(i)
  return(s)
}
gaussiana <- function(x, mu, sigma) {
  PI <- 3.141592653589793
  den <- sigma * raiz(2 * PI)
  exp_val <- -((x - mu)^2) / (2 * sigma^2)
  return((1 / den) * expo(exp_val))
}

area <- 0
for (p in seq(0, 40, by = 0.01)) {
  area <- area + (gaussiana(p, 35, 6) * 0.01)
}
area
## [1] 0.7979065
pnorm(40, 35, 6)
## [1] 0.7976716
  • TABLA DE DATOS
library(kableExtra)
set.seed(456)
n <- 50
df_hospital <- data.frame(
  ID = 1:n,
  ocupación = sample(c("Urgencia Menor", "Consulta General", "Urgencia Vital"), n, replace = TRUE),
  Tiempo_Espera = round(rnorm(n, mean = 35, sd = 6), 2))
df_hospital <- df_hospital[order(df_hospital$Tiempo_Espera, decreasing = TRUE), ]
head(df_hospital, 10) %>%
  kbl(align = "c") %>%
  kable_styling() %>%
  kable_paper(c("striped", "hover")) %>%
  column_spec(1:3, color = "black") %>% 
  column_spec(2, background = "lightblue")
ID ocupación Tiempo_Espera
15 15 Urgencia Vital 49.77
42 42 Consulta General 49.11
46 46 Urgencia Menor 48.22
38 38 Urgencia Vital 45.58
37 37 Consulta General 44.77
26 26 Urgencia Menor 44.43
10 10 Consulta General 44.34
44 44 Urgencia Vital 44.15
43 43 Urgencia Vital 42.21
4 4 Consulta General 41.16
  • GRÁFICA
mu <- 35
sigma <- 6
punto_x <- 40

x <- seq(10, 60, by = 0.1)
y <- dnorm(x, mean = mu, sd = sigma)
plot(x, y, type = "l", col = "brown", lwd = 2,
     main = "Distribución Normal - Hospital Divino Niño Buga",
     xlab = "Tiempo de Espera (Minutos)",
     ylab = "Densidad")

abline(v = punto_x, col = "red", lty = 2)

points(punto_x, dnorm(punto_x, mu, sigma), col = "red", pch = 19)

#Hospital estás viendo qué tan probable es que te atiendan rápido (antes de los 40 minutos). es decir aproximadamente 80 de ellos serán atendidos antes de llegar a los 40 minutos.

DEFINICIÓN

3. CHI CUADRADO

La prueba de Chi-Cuadrado es un procedimiento estadístico utilizado para determinar si existe una diferencia significativa entre los resultados esperados y los observados en una o más categorías. La idea básica de la prueba es que se comparan los valores de los datos reales con lo que se esperaría si la hipótesis nula fuera cierta.

De esta forma, se busca determinar si una diferencia entre los datos observados y los esperados se debe al azar, o si se debe a una relación entre las variables que se están estudiando.

  • Fórmula Chi cuadrado

\[\chi^2 = \sum_{i=1}^{k} \frac{(O_i - E_i)^2}{E_i} x>0\]

Parámetros de la función:

  • \(\sum\) = Sumatoria sobre todas las categorías (\(i=1\) hasta \(k\)).

  • \(O_{i}\) = Frecuencia Observada en la categoría \(i\).

  • \(E_{i}\) = Frecuencia Esperada (o teórica) en la categoría \(i\).

  • \(k\) = Número total de categorías.

GRÁFICA

x <- seq(0, 20, length.out = 100)
y <- dchisq(x, df = 4)
plot(x, y, type = "l", col = "brown", lwd = 2,
     main = "Distribución Chi-cuadrado (df = 4)",
     xlab = "Valor de Chi-cuadrado", 
     ylab = "Densidad")

  • EJEMPLO

En la Universidad del Valle, sede Guadalajara de Buga, se realizó un estudio en la sala de sistemas 02 del programa de Ingeniería para analizar la variabilidad en los resultados obtenidos por los estudiantes durante una práctica de programación y razonamiento lógico desarrollada en los computadores de la sala. El objetivo del estudio era evaluar si los recientes cambios en los equipos tecnológicos, las actualizaciones de software y las nuevas metodologías de enseñanza virtual habían generado una mayor dispersión en las calificaciones de los estudiantes.

Históricamente, la universidad ha registrado una varianza poblacional de 20 puntos² en este tipo de evaluaciones; sin embargo, algunos docentes consideran que actualmente existe una mayor diferencia entre los puntajes obtenidos por los estudiantes debido al nivel de dificultad de las actividades y al uso de nuevas plataformas académicas.

Para el estudio se seleccionó una muestra aleatoria de:

40 estudiantes

Varianza muestral = 32 puntos²

Varianza poblacional histórica = 20 puntos²

Si X^2 representa la variable asociada a la distribución chi-cuadrado, determine:

El valor del estadístico chi-cuadrado.

El valor crítico para un nivel de confianza del 95%?.

  • LOGARITMO BASE (A PIE)
fact <- function(n) {
  r <- 1
  if (n > 0) for (i in 1:n) r <- r * i
  return(r)
}

raiz <- function(v) {
  r <- v / 2.0
  for (k in 1:30) r <- (r + v / r) / 2.0
  return(r)
}

expo <- function(x) {
  if (x < 0) return(1 / expo(-x))
  s <- 0.0
  for (i in 0:150) s <- s + (x ^ i) / fact(i)
  return(s)
}
d_chi <- function(x, df) {
  if (x <= 0) return(0)
  PI <- 3.141592653589793
  k <- df / 2
  if (df %% 2 == 0) {
    g <- fact(k - 1)
  } else {
    f <- 1
    m <- k - 1
    while (m >= 0.5) { f <- f * m; m <- m - 1 }
    g <- f * raiz(PI)
  }
  return(((x/2)^(k-1) * expo(-x/2)) / (2 * g))
}
area_chi <- function(punto, df) {
  n_pasos <- 1000
  h <- punto / n_pasos
  suma <- d_chi(0, df) + d_chi(punto, df)
  
  for (i in 1:(n_pasos - 1)) {
    x_i <- i * h
    if (i %% 2 == 0) suma <- suma + 2 * d_chi(x_i, df)
    else suma <- suma + 4 * d_chi(x_i, df)
  }
  return(suma * h / 3)
}

hallar_cuantil <- function(objetivo, df) {
  inferior <- 0
  superior <- 100 # Rango amplio para buscar el 54
  
  for (i in 1:20) {
    mitad <- (inferior + superior) / 2
    if (area_chi(mitad, df) < objetivo) inferior <- mitad
    else superior <- mitad
  }
  return(mitad)
}


n <- 40
df <- n - 1
nivel_confianza <- 0.95

resultado <- hallar_cuantil(nivel_confianza, df)
print(resultado)
## [1] 54.5722
qchisq(0.95,39)
## [1] 54.57223
  • TABLA DE DATOS
library(kableExtra)
set.seed(789)
n <- 40 
df_univalle <- data.frame(
  ID = 1:n,
  Metodología = sample(c("Presencial", "Virtual", "Híbrida"), n, replace = TRUE),
  Puntaje_Práctica = round(rnorm(n, mean = 75, sd = sqrt(32)), 2)
)
df_univalle <- df_univalle[order(df_univalle$Puntaje_Práctica, decreasing = TRUE), ]
head(df_univalle, 10) %>%
  kbl(align = "c") %>%
  kable_styling() %>%
  kable_paper(c("striped", "hover")) %>%
  column_spec(1:3, color = "black") %>% 
  column_spec(2, background = "lightblue")
ID Metodología Puntaje_Práctica
36 36 Híbrida 88.29
14 14 Híbrida 84.95
15 15 Virtual 84.12
17 17 Presencial 82.16
32 32 Híbrida 81.99
31 31 Presencial 81.54
29 29 Presencial 81.14
22 22 Virtual 80.55
1 1 Presencial 79.85
16 16 Virtual 79.54
  • GRÁFICA
n <- 40
gl <- n - 1             
chi_calculado <- 62.4 
punto_critico <- qchisq(0.95, gl) 

x <- seq(0, 100, by = 0.1)
y <- dchisq(x, df = gl)
plot(x, y, type = "l", col = "brown", lwd = 2,
     main = "Distribución Chi-Cuadrado - Univalle Buga (Sistemas)",
     xlab = "Valor Estadístico Chi-cuadrado",
     ylab = "Densidad")

abline(v = punto_critico, col = "red", lty = 2)
points(chi_calculado, dchisq(chi_calculado, gl), col = "red", pch = 19)

#La variabiliad cambio en la sala de informarica, por el cambio en las clases hibridas, algunos estudiantes empezarón a sacar mejor nota y otros disminuyeron sus calificaciones.

DEFINICIÓN

4.POISSON

La Distribución de Poisson es una herramienta matemática que nos permite calcular la probabilidad de que ocurra un número específico de eventos en un periodo de tiempo o lugar determinado, sabiendo con qué frecuencia suelen ocurrir esos eventos normalmente.

  • Fórmula Chi cuadrado

\[P\left (X = k \right )= \frac{e^{-\lambda }\lambda ^{k}}{k!}\]

Parámetros de la función:

  • \(\lambda\) = número promedio de eventos que ocurren en el intervalo (la media de la distribución).

  • \(e\) = número de Euler.

  • \(k!\) = factorial de \(k\).

  • \(k\) = número de eventos (debe ser un número entero \(\ge 0\)).

GRÁFICA

k <- 0:12

y <- dpois(k, lambda = 3)
plot(k, y, type = "b", col = "brown", pch = 16, lwd = 2,
     main = "Distribución de Poisson (lambda = 3)",
     xlab = "Número de eventos (k)", 
     ylab = "Probabilidad")

  • EJEMPLO

La empresa de postres Dileto, ubicada en Cali, realizó un estudio sobre la cantidad de pedidos de alfajores que recibe por hora durante las tardes de fin de semana. La empresa ofrece diferentes sabores como chocolate, arequipe, frutos rojos y pistacho, siendo uno de los productos más vendidos entre los clientes jóvenes y universitarios.

Después del análisis estadístico se determinó que el promedio de pedidos es de:

λ=7 pedidos de alfajores por hora

Si X representa la cantidad de pedidos de alfajores recibidos en una hora, determine la probabilidad de que Dileto reciba exactamente 10 pedidos

  • LOGARITMO BASE (A PIE)
fact <- function(n) {
  r <- 1
  if (n > 0) {
    i <- 1
    while (i <= n) {
      r <- r * i
      i <- i + 1
    }
  }
  return(r)
}

raiz <- function(v) {
  r <- v / 2.0
  for (k in 1:30) r <- (r + v / r) / 2.0
  return(r)
}

expo <- function(x) {
  if (x < 0) return(1 / expo(-x))
  s <- 0.0
  for (i in 0:100) s <- s + (x ^ i) / fact(i)
  return(s)
}

poisson<- function(x, lambda) {
  # x: número de eventos
  # lambda: promedio esperado
  numerador <- (lambda^x) * expo(-lambda)
  denominador <- fact(x)
  probabilidad <- numerador / denominador
  
  return(probabilidad)
}
poisson(10,7)
## [1] 0.07098327
dpois(10,7)
## [1] 0.07098327
  • TABLA DE DATOS
library(kableExtra)
set.seed(123) 
n <- 50
sabores <- c("Alfajor Chocolate", "Alfajor Arequipe", "Alfajor Frutos Rojos", "Alfajor Pistacho")

df <- data.frame(
  ID = 1:n,
  Producto = sample(sabores, n, replace = TRUE),
  # Gasto en miles usando rlnorm como en tu ejemplo original
  Gasto_Miles = round(rlnorm(n, meanlog = 3, sdlog = 0.5), 2))
df <- df[order(df$Gasto_Miles, decreasing = TRUE), ]
probabilidad_10 <- dpois(10, 7)
head(df, 10) %>%
  kbl(align = "c", 
      caption = paste("Top 10 Ventas - Dileto (Prob. X=10 es:", round(probabilidad_10, 3), ")")) %>%
  kable_styling() %>%
  kable_paper(c("striped", "hover")) %>%
  column_spec(1:3, color = "black") %>%
  column_spec(2, background = "lightblue")
Top 10 Ventas - Dileto (Prob. X=10 es: 0.071 )
ID Producto Gasto_Miles
19 19 Alfajor Frutos Rojos 59.41
45 45 Alfajor Frutos Rojos 55.98
31 31 Alfajor Chocolate 42.87
29 29 Alfajor Frutos Rojos 39.82
5 5 Alfajor Frutos Rojos 37.60
20 20 Alfajor Frutos Rojos 36.74
48 48 Alfajor Arequipe 33.21
44 44 Alfajor Chocolate 31.85
8 8 Alfajor Arequipe 31.42
9 9 Alfajor Frutos Rojos 31.16
  • GRÁFICA
lambda_dileto <- 7
x_val <- 0:20  
y_val <- dpois(x_val, lambda = lambda_dileto)
plot(x_val, y_val, type = "h", col = "brown", lwd = 3,
     main = "Distribución de Poisson - Alfajores Dileto (Cali)",
     xlab = "Cantidad de Pedidos por Hora",
     ylab = "Probabilidad")

points(x_val, y_val, pch = 16, col = "brown")
pedidos_buscados <- 10
prob_especifica <- dpois(pedidos_buscados, lambda_dileto)

# Línea vertical punteada en el 10
abline(v = pedidos_buscados, col = "red", lty = 2)
points(pedidos_buscados, prob_especifica, col = "red", pch = 19, cex = 1.5)

# Opcional: Texto informativo en la gráfica
text(pedidos_buscados + 3, prob_especifica + 0.02, 
     paste("P(X=10) =", round(prob_especifica, 4)), col = "red")

#El eje vertical muestra qué tan probable es cada escenario. El valor máximo está cerca (15%), que es la probabilidad de recibir exactamente 7 pedidos.
#El eje horizontal muestra cuántos alfajores podrían pedir. Va desde 0  hasta 20 (cuando llegan muchos pedidos a la vez).
#La gráfica nos muestra que Dileto tiene un flujo de clientes muy estable alrededor de los 7 pedidos. pero a veces llega el pico es decir con mas de 10 pedios.

DEFINICIÓN

5. EXPONENCIAL

Esta distribución aparece asociada a fenómenos en los que la variable que se considera es la distancia entre eventos puntuales que se presentan en un medio continuo de acuerdo con una distribución de Poisson

  • Fórmula Exponencial

\[f(x) = \lambda e^{-\lambda x}\]

Parámetros de la función:

  • \(\lambda\) = es el parámetro de tasa (ritmo con el que ocurren los eventos).

  • \(e\) = es el número de Euler.

  • \(x\) = es el tiempo o espacio entre eventos (\(x \ge 0\)).

GRÁFICA

x <- seq(0, 5, length.out = 100)
y <- dexp(x, rate = 1)
plot(x, y, type = "l", col = "brown", lwd = 2,
     main = "Distribución Exponencial (lambda = 1)",
     xlab = "Tiempo / Distancia (x)", 
     ylab = "Densidad")

  • EJEMPLO

Durante la pandemia de COVID-19, un hospital de Bogotá realizó un estudio sobre el tiempo que transcurría entre la llegada de pacientes con síntomas respiratorios al área de urgencias. Los investigadores observaron que el tiempo de espera entre llegadas podía modelarse mediante una distribución exponencial.

Según datos epidemiológicos reportados durante la pandemia, en promedio llegaba un paciente sospechoso de COVID-19 cada 12 minutos al servicio de urgencias.

Si X representa el tiempo de espera (en minutos) hasta la llegada del próximo paciente con síntomas de COVID-19, determine la probabilidad de que el siguiente paciente llegue en menos de 5 minutos?

  • LOGARITMO BASE (A PIE)
fact <- function(n) {
  r <- 1
  if (n > 0) {
    i <- 1
    while (i <= n) {
      r <- r * i
      i <- i + 1
    }
  }
  return(r)
}

expo <- function(x) {
  if (x < 0) return(1 / expo(-x))
  s <- 0.0
  for (i in 0:100) s <- s + (x ^ i) / fact(i)
  return(s)
}
exponencial <- function(x, lambda) {
  if (x < 0) return(0)
  # Fórmula para "Menos de X minutos": 1 - e^(-lambda * x)
  resultado <- 1 - expo(-lambda * x)
  return(resultado)
}
exponencial(5, 1/12)
## [1] 0.3407594
pexp(5,1/12)
## [1] 0.3407594
  • TABLA DE DATOS
library(kableExtra)
set.seed(123)
n <- 50

df <- data.frame(
  ID = 1:n,
  Paciente = paste0("P-", sprintf("%03d", 1:n)),
  Tiempo_Minutos = round(rexp(n, 1/12), 2),
  Estado = sample(c("Leve", "Moderado", "Crítico"), n, replace = TRUE))

df <- df[order(df$Tiempo_Minutos, decreasing = TRUE), ]
df %>%
  head(10) %>%
  kbl(align = "c") %>% 
  kable_styling() %>%
  kable_paper(c("striped", "hover")) %>%
  column_spec(1:4, color = "black") %>%
  column_spec(2, background = "lightblue")
ID Paciente Tiempo_Minutos Estado
42 42 P-042 86.53 Moderado
20 20 P-020 48.49 Leve
9 9 P-009 32.71 Crítico
49 49 P-049 32.70 Crítico
34 34 P-034 31.16 Crítico
46 46 P-046 26.98 Moderado
31 31 P-031 26.01 Crítico
26 26 P-026 19.27 Crítico
28 28 P-028 18.85 Crítico
17 17 P-017 18.76 Crítico
  • GRÁFICA
lambda_covid <- 12 
x_val <- 0:25
y_val <- dpois(x_val, lambda = lambda_covid)

plot(x_val, y_val, type = "h", col = "brown", lwd = 3,
     main = "Distribución de Poisson - Ingresos COVID-19 (Bogotá)",
     xlab = "Pacientes por Hora", ylab = "Probabilidad")

points(x_val, y_val, pch = 16, col = "brown")
pacientes_buscados <- 15
prob_especifica <- dpois(pacientes_buscados, lambda_covid)

abline(v = pacientes_buscados, col = "red", lty = 2)
points(pacientes_buscados, prob_especifica, col = "red", pch = 19, cex = 1.5)
text(pacientes_buscados + 4, prob_especifica + 0.015,
     paste("P(X=", pacientes_buscados, ") =", round(prob_especifica, 4)), col = "red")

# Aunque el promedio es de 12 minutos, la naturaleza del virus hacen que el hospital deba estar preparado para recibir gente en ráfagas de menos de 5 minutos, la mayoría de las veces verás llegar entre 10 y 14 pacientes (donde están las barras más altas)

Referencias

  • Investopedia. (2024). Log-Normal Distribution: Definition, Uses, and Example.

  • QuestionPro. (s.f.). Prueba de chi cuadrado de Pearson. QuestionPro.

  • QuestionPro. (s.f.). Distribución gaussiana. QuestionPro.

  • conomipedia. (s.f.). Distribución de Poisson. Economipedia.

  • Universidad de Las Palmas de Gran Canaria. (s.f.). Distribuciones especiales continuas. ULPGC