##1. Llegadas de solicitudes
#Suponga que, en promedio, llegan 5 solicitudes por hora al sistema.

# Parámetro de la distribución (media de llegadas por hora)
lambda <- 5  

# a. Generar 5000 valores aleatorios de una Poisson(5)
set.seed(123)  # Semilla para reproducibilidad
solicitudes <- rpois(5000, lambda)

# Mostrar los primeros 10 valores
head(solicitudes, 10)
##  [1] 4 7 4 8 9 2 5 8 5 5
# b. Interpretación:
# Estos valores representan el número de solicitudes que llegan en una hora.
# Como la media es 5, los resultados estarán alrededor de ese valor.

# c. Gráfico de barras de las frecuencias
tabla_frec <- table(solicitudes)
barplot(tabla_frec, 
        main = "Frecuencia de solicitudes por hora",
        xlab = "Número de solicitudes",
        ylab = "Frecuencia",
        col = "red")

# d. Probabilidad empírica de que lleguen menos de 3 solicitudes
prob_menor3 <- mean(solicitudes < 3)
prob_menor3
## [1] 0.1248
#2. Tiempos entre llegadas
#El tiempo entre llegadas de solicitudes sigue una distribución Exponencial con media 12 minutos.

# Parámetro de la distribución exponencial
media <- 12
lambda <- 1 / media  # tasa = 1/12

# a. Generar 5000 tiempos entre llegadas
set.seed(123)
tiempos <- rexp(5000, rate = lambda)

# Mostrar los primeros 10 valores
head(tiempos, 10)
##  [1] 10.1214871  6.9193233 15.9486584  0.3789283  0.6745317  3.7980146
##  [7]  3.7707275  1.7432016 32.7148376  0.3498414
# b. Histograma
hist(tiempos, 
     breaks = 50,         # número de intervalos
     main = "Histograma de tiempos entre llegadas",
     xlab = "Tiempo (minutos)",
     ylab = "Frecuencia",
     col = "gold",
     border = "white")

#3. Duración de la atención
#Cada ingeniero tarda en promedio 30 minutos en resolver un ticket, con una desviación estándar de 5 minutos
# Parámetros de la distribución normal
media <- 30
desv <- 5

# a. Simular 5000 atenciones
set.seed(123)
atenciones <- rnorm(5000, mean = media, sd = desv)

# Mostrar los primeros 10 valores
head(atenciones, 10)
##  [1] 27.19762 28.84911 37.79354 30.35254 30.64644 38.57532 32.30458 23.67469
##  [9] 26.56574 27.77169
# b. Histograma con curva normal teórica
hist(atenciones, 
     breaks = 40, 
     probability = TRUE,   # para que el histograma sea densidad
     main = "Duración de atenciones con curva normal",
     xlab = "Tiempo (minutos)",
     col = "red",
     border = "white")

# Agregar la curva normal teórica
x <- seq(min(atenciones), max(atenciones), length = 100)
y <- dnorm(x, mean = media, sd = desv)
lines(x, y, col = "orange", lwd = 2)

# c. Proporción de atenciones que superan los 35 minutos
prop_supera35 <- mean(atenciones > 35)
prop_supera35
## [1] 0.1562
#4. Tickets escalados a segundo nivel
#Un 20% de los tickets requieren ser escalados a un nivel superior.
#Suponga que en una hora se reciben 10 tickets.

# Parámetros de la binomial
n <- 10       #  tickets por hora
p <- 0.2      # probabilidad de escalamiento

# a. Simular 1000 horas de operación
set.seed(123)
escalados <- rbinom(1000, size = n, prob = p)

# Mostrar los primeros 10 resultados
head(escalados, 10)
##  [1] 1 3 2 4 4 0 2 4 2 2
# b. Contar cuántos tickets son escalados en total
total_escalados <- sum(escalados)
total_escalados
## [1] 1986
# c. Gráfico de barras de la frecuencia de tickets escalados por hora
tabla_frec <- table(escalados)
barplot(tabla_frec,
        main = "Distribución de tickets escalados por hora",
        xlab = "Tickets escalados en una hora",
        ylab = "Frecuencia",
        col = "blue")

Conclusiones

En conjunto, estas distribuciones permiten simular el comportamiento de un sistema de colas, aportando una visión realista sobre la llegada de solicitudes, los tiempos de espera, la duración de la atención y la necesidad de escalar tickets.