Muestra qué tan capaz es un proceso para cumplir con las medidas o tolerancias establecidas, comparando la variación del proceso con los límites de diseño.
Llega a hacer lo mismo, pero tambien considera si el proceso está bien centrado respecto al valor objetivo.
set.seed(2804)
n <- 500
# parámetros
m_x1 <- 30
var_x1 <- 0.81
de_x1 <- sqrt(var_x1)
m_x2 <- 18
de_x2 <- 0.3
# simular
x1 <- rnorm(n, mean = m_x1, sd = de_x1)
x2 <- rnorm(n, mean = m_x2, sd = de_x2)
total <- x1 + x2
# especificaciones
Li <- 45
Ls <- 55
# estimadores
probabilidad_fuera <- mean(total < Li | total > Ls)
promedio_total <- mean(total)
desviacion_total <- sd(total) # muestral
barras_abajo <- sum(total < Li)
barras_encima <- sum(total > Ls)
# índices de capacidad
Cp <- (Ls - Li) / (6 * desviacion_total)
Cpk <- min((Ls - promedio_total) / (3 * desviacion_total), (promedio_total - Li) / (3 * desviacion_total))
# mostrar resultados
cat("n =", n, "\n")
## n = 500
cat("Media del proceso =", round(promedio_total, 4), "cm\n")
## Media del proceso = 48.059 cm
cat("Desviacion estandar muestral =", round(desviacion_total, 4), "cm\n")
## Desviacion estandar muestral = 0.9322 cm
cat("Conteo de < Limite inferior =", barras_abajo, ", > Limite superior =", barras_encima, "\n")
## Conteo de < Limite inferior = 0 , > Limite superior = 0
cat("Cantidad de probabilidad fuera de especificaciones p̂ =", round(probabilidad_fuera, 4), "\n")
## Cantidad de probabilidad fuera de especificaciones p̂ = 0
cat("Cp =", round(Cp, 4), "\n")
## Cp = 1.7879
cat("Cpk =", round(Cpk, 4), "\n")
## Cpk = 1.0939
# histograma
hist(total, breaks = 30, main = "Histograma de longitudes unidas (x1+x2)",
xlab = "Longitud (cm)")
abline(v = c(Li, Ls), lty = 2)
El proceso para unir las barras presenta una media de 48 cm aproximadamente y una desviación estándar cercana a 0.93 cm, lo que indica poca variabilidad. Ninguna barra simulada quedó fuera de las especificaciones de 45 a 55 cm, por lo tanto, la probabilidad estimada de estar fuera de los límites es prácticamente 0. Los índices de capacidad obtenidos (Cp ≈ 1.79 y Cpk ≈ 1.09) muestran que el proceso es capaz y está bajo control estadístico, aunque ligeramente descentrado respecto al valor objetivo (50 cm).
set.seed(2804)
# parámetros del problema
n_piezas <- 200
repeticiones <- 10
t_llegada <- 20
# Binomial(3, p) con media 2.4 => p = 2.4/3 = 0.8
binom_n <- 3
binom_p <- 0.8
# Exponencial por defecto: rate = 0.2 (minutos^-1) = media = 1/0.2 = 5 minutos
lambda_def <- 0.2
# función que simula una réplica y devuelve el tiempo de finalización
simular_repeticion <- function(n_piezas, t_llegada, binom_n, binom_p, lambda_def) {
# generar número de defectos por pieza
k_defectos <- rbinom(n_piezas, size = binom_n, prob = binom_p)
# generar tiempos de servicio
tiempos_servicio <- numeric(n_piezas)
for (i in seq_len(n_piezas)) {
k <- k_defectos[i]
if (k > 0) {
tiempos_servicio[i] <- sum(rexp(k, rate = lambda_def))
} else {
tiempos_servicio[i] <- 0
}
}
# instantes de llegada
t_llegadas <- (0:(n_piezas-1)) * t_llegada # primera llegada en t=0
t_inicio <- numeric(n_piezas)
t_fin <- numeric(n_piezas)
for (i in seq_len(n_piezas)) {
if (i == 1) {
t_inicio[i] <- t_llegadas[i]
} else {
t_inicio[i] <- max(t_llegadas[i], t_fin[i-1])
}
t_fin[i] <- t_inicio[i] + tiempos_servicio[i]
}
# devolver el tiempo en que se termina la última pieza
list(
tiempo_fin_ultimo = t_fin[n_piezas],
tiempos_servicio = tiempos_servicio,
t_llegadas = t_llegadas,
t_inicio = t_inicio,
t_fin = t_fin,
k_defectos = k_defectos
)
}
# correr Numero repeticiones
resultados <- vector("list", repeticiones)
tiempos_final <- numeric(repeticiones)
for (r in seq_len(repeticiones)) {
res <- simular_repeticion(n_piezas, t_llegada, binom_n, binom_p, lambda_def)
resultados[[r]] <- res
tiempos_final[r] <- res$tiempo_fin_ultimo
}
# mostrar resumen
cat("Tiempo de finalización por repeticion:\n")
## Tiempo de finalización por repeticion:
print(round(tiempos_final, 2))
## [1] 3986.76 3991.87 3991.12 3999.34 4005.86 3995.92 3999.06 3984.76 3982.16
## [10] 3990.91
cat("\nResumen:\n")
##
## Resumen:
cat("Media:", round(mean(tiempos_final), 2), "\n")
## Media: 3992.78
cat("Desviación estándar:", round(sd(tiempos_final), 2), "\n")
## Desviación estándar: 7.33
cat("Mínimo:", round(min(tiempos_final), 2),
" Máximo:", round(max(tiempos_final), 2), "\n")
## Mínimo: 3982.16 Máximo: 4005.86
Simulando el proceso de reproceso de 200 piezas, podemos observar que el tiempo total para completar todas las reparaciones está alrededor de 3990 minutos, con pequeñas variaciones entre las 10 réplicas o repeticiones. Esto nos dice que el sistema trabaja de forma estable: las piezas llegan cada 20 minutos y el tiempo promedio de reparación (unos 12 minutos por pieza) permite que el proceso avance sin acumular grandes filas. Entonces podemos decir que, el proceso se comporta de manera eficiente y bajo control, completando las 200 piezas en el tiempo esperado.
set.seed(2804)
# parámetros
m_carga <- 30
de_carga <- 10
m_descarga <- 20
de_descarga <- 5
lambda_viaje <- 1/40
simulacion_dia <- function(tiempo_total = 600) { # 10 horas = 600 min
t <- 0
viajes <- 0
while (TRUE) {
carga <- rnorm(1, mean = m_carga, sd = de_carga)
carga <- max(0.1, carga)
viaje1 <- rexp(1, rate = lambda_viaje)
descarga <- rnorm(1, mean = m_descarga, sd = de_descarga)
descarga <- max(0.1, descarga)
viaje2 <- rexp(1, rate = lambda_viaje)
tiempo_viaje <- carga + viaje1 + descarga + viaje2
if (t + tiempo_viaje > tiempo_total) break
t <- t + tiempo_viaje
viajes <- viajes + 1
}
return(viajes)
}
# a) Simular 10 horas y 5 réplicas
replicas <- replicate(5, simulacion_dia(600))
print(replicas)
## [1] 4 3 4 4 3
# b) Para intervalo de confianza
set.seed(2804)
n_simulaciones <- 10000
simulaciones <- replicate(n_simulaciones, simulacion_dia(600))
media_simulaciones <- mean(simulaciones)
de_simulaciones <- sd(simulaciones)
error_est <- de_simulaciones / sqrt(n_simulaciones)
ic95_media <- c(media_simulaciones - 1.96*error_est, media_simulaciones + 1.96*error_est)
# también intervalo percentil para el número de viajes por día
ic_percentil <- quantile(simulaciones, probs = c(0.025, 0.975))
cat("Media estimada (10h):", media_simulaciones, "\n")
## Media estimada (10h): 4.2359
cat("Desviación estándar:", de_simulaciones, "\n")
## Desviación estándar: 0.977009
cat("IC 95% para la media:", ic95_media, "\n")
## IC 95% para la media: 4.216751 4.255049
cat("IC 95% percentil (número de viajes):", ic_percentil, "\n")
## IC 95% percentil (número de viajes): 2 6
En promedio, el camión puede llegar hacer alrededor de 4 viajes en una jornada de 10 horas, aunque el número puede variar un poco según los tiempos de carga, descarga y desplazamiento. El intervalo de confianza muestra que normalmente se logran entre 2 y 6 viajes por día, ya que el desempeño del camión es bastante constante dentro de ese rango.