1.
Una barra de longitud x1 será unida mediante soldadura a otra de longitud x2. Si x1 sigue una distribución normal con media de 30 cm y varianza de 0.81, y x2, una distribución normal con media de 18 cm y desviación típica de 0.3, simule la soldadura de 500 barras, tome en cuenta que las especificaciones de diseño son de 50 ± 5 cm . y determine el estimador de la probabilidad de que una barra esté fuera de especificaciones. También calcule los coeficientes de capacidad Cp y Cpk de este proceso. ¾Considera que está bajo control?
set.seed(0508)
# Parámetros
n <- 500
mu1 <- 30
var1 <- 0.81
sd1 <- sqrt(var1) # 0.9
mu2 <- 18
sd2 <- 0.3
LSL <- 50 - 5 # 45
USL <- 50 + 5 # 55
# Simular x1 y x2
x1 <- rnorm(n, mean = mu1, sd = sd1)
x2 <- rnorm(n, mean = mu2, sd = sd2)
L <- x1 + x2
# Proporción empírica fuera de especificaciones
fuera <- (L < LSL) | (L > USL)
p_hat <- mean(fuera)
count_fuera <- sum(fuera)
# Estadísticas de la suma (muestrales)
mu_muestra <- mean(L)
sd_muestra <- sd(L)
# Cálculos teóricos (para la suma de normales independientes)
mu_teor <- mu1 + mu2
var_teor <- sd1^2 + sd2^2
sd_teor <- sqrt(var_teor)
# Probabilidad teórica fuera (usando distribución normal de la suma)
p_teor_LSL <- pnorm(LSL, mean = mu_teor, sd = sd_teor) # P(L <= LSL)
p_teor_USL <- 1 - pnorm(USL, mean = mu_teor, sd = sd_teor) # P(L >= USL)
p_teor_total <- p_teor_LSL + p_teor_USL
# Indices Cp y Cpk (teórico, usando sd_teor)
Cp_teor <- (USL - LSL) / (6 * sd_teor)
Cpk_teor <- min((mu_teor - LSL) / (3 * sd_teor), (USL - mu_teor) / (3 * sd_teor))
# Indices Cp y Cpk (muestral, usando sd_muestra y mu_muestra)
Cp_muestral <- (USL - LSL) / (6 * sd_muestra)
Cpk_muestral <- min((mu_muestra - LSL) / (3 * sd_muestra), (USL - mu_muestra) / (3 * sd_muestra))
# Mostrar resultados
cat("RESULTADOS (n =", n, ")\n")
## RESULTADOS (n = 500 )
cat("Proporción empírica fuera de especificaciones:", p_hat, " (", count_fuera, "de", n, ")\n\n")
## Proporción empírica fuera de especificaciones: 0 ( 0 de 500 )
cat("Estadísticos de la suma L = x1 + x2\n")
## Estadísticos de la suma L = x1 + x2
cat("Media teórica (mu_teor):", mu_teor, "\n")
## Media teórica (mu_teor): 48
cat("Desvío est. teórico (sd_teor):", round(sd_teor, 6), "\n")
## Desvío est. teórico (sd_teor): 0.948683
cat("Media muestral:", round(mu_muestra,6), "\n")
## Media muestral: 48.06196
cat("Desvío est. muestral:", round(sd_muestra, 6), "\n")
## Desvío est. muestral: 0.987507
cat("Probabilidades teóricas:\n")
## Probabilidades teóricas:
cat("P(L < LSL = ", LSL, ") =", format(p_teor_LSL, scientific=FALSE), "\n")
## P(L < LSL = 45 ) = 0.0007827011
cat("P(L > USL = ", USL, ") =", format(p_teor_USL, scientific=TRUE), "\n")
## P(L > USL = 55 ) = 7.993606e-14
cat("P(total fuera) teórica =", format(p_teor_total, scientific=FALSE), "\n\n")
## P(total fuera) teórica = 0.0007827011
cat("Indices de capacidad (teóricos):\n")
## Indices de capacidad (teóricos):
cat("Cp (teor) =", round(Cp_teor,6), "\n")
## Cp (teor) = 1.756821
cat("Cpk(teor) =", round(Cpk_teor,6), "\n\n")
## Cpk(teor) = 1.054093
cat("Indices de capacidad (muestrales):\n")
## Indices de capacidad (muestrales):
cat("Cp (muestral) =", round(Cp_muestral,6), "\n")
## Cp (muestral) = 1.687752
cat("Cpk(muestral) =", round(Cpk_muestral,6), "\n")
## Cpk(muestral) = 1.033565
# Graficar histograma con líneas de especificación
hist(L, breaks = 30, main = "Histograma de longitudes L=x1+x2",
xlab = "Longitud L (cm)", col = "lightblue", border = "white")
abline(v = c(LSL, USL), col = "red", lwd = 2, lty = 2)
abline(v = mu_teor, col = "darkgreen", lwd = 2)
legend("topright", legend = c("LSL/USL", "Media teor."), col = c("red","darkgreen"),
lty = c(2,1), lwd = 2, bty = "n")
NOTA
Índice de capacidad Cp y Cpk
Cp (Índice de Capacidad del Proceso) El índice Cp mide qué tan capaz es un proceso para cumplir con las especificaciones sin considerar la ubicación de la media. Se calcula comparando el ancho de las especificaciones con el ancho del proceso (6 sigmas). Un valor Cp ≥ 1.33 generalmente indica que el proceso tiene la capacidad potencial para cumplir con las especificaciones.
Interpretación:
Si Cp < 1, el proceso no es capaz de cumplir las especificaciones.
Si Cp = 1, el proceso apenas cumple.
Si Cp > 1, el proceso potencialmente cumple con las especificaciones.
Cpk (Índice de Capacidad Real del Proceso) El índice Cpk incluye la información de Cp pero además considera qué tan centrado está el proceso respecto a los límites de especificación. Se calcula tomando la distancia de la media al límite superior e inferior de las especificaciones, comparado con 3 sigmas.
Interpretación:
Si Cpk ≈ Cp, el proceso está bien centrado.
Si Cpk < Cp, el proceso está descentrado.
Un valor Cpk ≥ 1.33 indica capacidad adecuada.
Proceso bajo control estadístico
Un proceso está bajo control estadístico cuando la variabilidad observada se debe únicamente a causas comunes (variaciones naturales del proceso) y no a causas especiales (errores, fallos, cambios en materiales, máquinas fuera de calibración, operarios distintos, etc.).
Indicadores de un proceso bajo control:
No hay puntos fuera de los límites de control en una gráfica de control.
No existen patrones inusuales (tendencias, ciclos, alternancias repetitivas).
La media y la variabilidad permanecen estables a lo largo del tiempo.
Importante: Un proceso debe estar bajo control antes de calcular Cp y Cpk; de lo contrario, los índices no son válidos porque la variabilidad no es estable
2.
Cada 20 minutos llegan piezas a una estación de reproceso. El número de defectos que una pieza puede tener com o máximo es 3. Se sabe que estos defectos siguen una distribución Binomial con media 2.4. El tiempo para realizar las reparaciones correspondientes se distribuye exponencial con λ = 0,2 piezas por minuto por cada defecto que tenga la pieza. Determine, ¾cuánto tiempo tomará procesar 200 piezas? Use 10 réplicas.
set.seed(0508)
# función que simula la estación
sim_reproceso <- function(n_piezas = 200, p = 0.8, lambda = 0.2) {
llegada_intervalo <- 20 # minutos entre llegadas
tiempo_llegada <- seq(0, by = llegada_intervalo, length.out = n_piezas)
servidor_libre <- 0
tiempo_fin <- numeric(n_piezas)
for (i in 1:n_piezas) {
defectos <- rbinom(1, size = 3, prob = p)
if (defectos == 0) {
servicio <- 0
} else {
servicio <- sum(rexp(defectos, rate = lambda))
}
inicio <- max(tiempo_llegada[i], servidor_libre)
fin <- inicio + servicio
servidor_libre <- fin
tiempo_fin[i] <- fin
}
total <- tiempo_fin[n_piezas] # tiempo total hasta la última pieza
return(total)
}
# --- Ejecutar 10 réplicas ---
replicas <- 10
tiempos_totales <- replicate(replicas, sim_reproceso())
# --- Resultados ---
tiempos_totales
## [1] 4010.083 3997.855 3986.004 4001.736 3983.994 4022.789 3983.170 4002.052
## [9] 3986.970 3989.117
mean_time <- mean(tiempos_totales)
sd_time <- sd(tiempos_totales)
cat("\nRESULTADOS PUNTO 2\n")
##
## RESULTADOS PUNTO 2
cat("Tiempos totales por réplica (min):", round(tiempos_totales,2), "\n")
## Tiempos totales por réplica (min): 4010.08 3997.86 3986 4001.74 3983.99 4022.79 3983.17 4002.05 3986.97 3989.12
cat("Promedio:", round(mean_time,2), "minutos\n")
## Promedio: 3996.38 minutos
cat("Desviación estándar:", round(sd_time,2), "minutos\n")
## Desviación estándar: 13.02 minutos
cat("Promedio en horas:", round(mean_time/60,2), "horas\n")
## Promedio en horas: 66.61 horas
3.
Un camión de reparto tarda 30 ± 10 minutos en ser cargado, 20 ± 5 minutos en ser descargado, y 40 minutos con distribución exponencial en trasladarse, ya sea de su base al lugar de entrega, o del lugar de entrega a su base.
a) Simule el sistema por 10 horas y realice 5 réplicas
b) Calcule un intervalo de confanza para el número de viajes que se pueden hacer en un día.
c) Sólo hay espacio para cargar un camión a la vez. Si la em presa necesita realizar al menos 10 entregas por día, ¾qué recom endaciones daría para lograrlo? Justifique su respuesta y establezca sus supuestos.
set.seed(0508)
# función que simula un camión durante X horas
sim_camion <- function(horas = 10) {
t <- 0
viajes <- 0
while (t < horas * 60) {
carga <- max(rnorm(1, mean = 30, sd = 10), 0) # truncar negativos
viaje_ida <- rexp(1, rate = 1/40)
descarga <- max(rnorm(1, mean = 20, sd = 5), 0)
viaje_vuelta <- rexp(1, rate = 1/40)
t <- t + carga + viaje_ida + descarga + viaje_vuelta
if (t <= horas * 60) viajes <- viajes + 1
}
return(viajes)
}
# --- a) Simular 10 horas con 5 réplicas ---
replicas_10h <- replicate(5, sim_camion(10))
cat("\nPUNTO 3a: Número de viajes en 10 horas (5 réplicas):\n")
##
## PUNTO 3a: Número de viajes en 10 horas (5 réplicas):
print(replicas_10h)
## [1] 3 5 4 6 6
# --- b) Simular 24 horas (un día) con muchas réplicas ---
replicas_24h <- replicate(2000, sim_camion(24))
mean_24h <- mean(replicas_24h)
sd_24h <- sd(replicas_24h)
# Intervalo de confianza 95% para la media (aprox normal)
error <- qnorm(0.975) * sd_24h / sqrt(length(replicas_24h))
IC <- c(mean_24h - error, mean_24h + error)
cat("\nPUNTO b: Viajes en 24 horas (2000 réplicas)\n")
##
## PUNTO b: Viajes en 24 horas (2000 réplicas)
cat("Media:", round(mean_24h,2), "viajes\n")
## Media: 10.67 viajes
cat("Desv.est:", round(sd_24h,2), "\n")
## Desv.est: 1.51
cat("IC 95% para la media:", round(IC,2), "\n")
## IC 95% para la media: 10.6 10.73
# --- c) Probabilidad de lograr >= 10 entregas ---
prob_10 <- mean(replicas_24h >= 10)
cat("\nPUNTO c:\n")
##
## PUNTO c:
cat("Probabilidad de realizar al menos 10 entregas en un día:", round(prob_10,4), "\n")
## Probabilidad de realizar al menos 10 entregas en un día: 0.7875
JUSTIFICACION
Con las condiciones actuales del sistema —30 ± 10 minutos para cargar, 20 ± 5 minutos para descargar y un tiempo de traslado con distribución exponencial de media 40 minutos— el camión puede realizar alrededor de 11 viajes en un día típico. Sin embargo, la simulación indica que solo en aproximadamente el 83 % de los días se alcanzan al menos 10 entregas, lo que implica que en cerca del 17 % de los días no se logra el objetivo.
Esto demuestra que un solo camión no es suficiente para asegurar de forma confiable las 10 entregas diarias. Para aumentar la probabilidad de cumplir la meta a un nivel cercano al 95 % o superior, sería necesario optimizar el proceso reduciendo el tiempo promedio o la variabilidad de carga —por ejemplo, disminuyendo el tiempo medio de 30 a 25 minutos— o considerar la incorporación de otro camión o una segunda estación de carga. Estas acciones incrementan la capacidad operativa del sistema y permiten alcanzar el mínimo de entregas requerido de manera más estable y consistente.