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(0408)  

# 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: 47.98484
cat("Desvío est. muestral:", round(sd_muestra, 6), "\n")
## Desvío est. muestral: 0.898098
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.855774
cat("Cpk(muestral) =", round(Cpk_muestral,6), "\n")
## Cpk(muestral) = 1.107836
# 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


  1. 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(0408)  

# 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] 3987.096 3998.667 3982.631 3989.738 4008.327 3987.149 3992.265 4008.227
##  [9] 3983.904 3987.898
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): 3987.1 3998.67 3982.63 3989.74 4008.33 3987.15 3992.27 4008.23 3983.9 3987.9
cat("Promedio:", round(mean_time,2), "minutos\n")
## Promedio: 3992.59 minutos
cat("Desviación estándar:", round(sd_time,2), "minutos\n")
## Desviación estándar: 9.39 minutos
cat("Promedio en horas:", round(mean_time/60,2), "horas\n")
## Promedio en horas: 66.54 horas
  1. 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.
  1. Simule el sistema por 10 horas y realice 5 réplicas
  2. Calcule un intervalo de confanza para el número de viajes que se pueden hacer en un día.
  3. 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(0408) 

# 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] 4 3 4 6 3
# --- 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.63 viajes
cat("Desv.est:", round(sd_24h,2), "\n")
## Desv.est: 1.57
cat("IC 95% para la media:", round(IC,2), "\n")
## IC 95% para la media: 10.56 10.7
# --- c) Probabilidad de lograr >= 10 entregas ---
prob_10 <- mean(replicas_24h >= 10)
cat("\nPUNTO 3c:\n")
## 
## PUNTO 3c:
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.765

JUSTIFICACION

Con los parámetros actuales (carga 30 ± 10 min, descarga 20 ± 5 min y traslado exponencial con media 40 min), el camión completa en promedio unos 11 viajes por día, pero la simulación muestra que solo en un 83 % de los días logra al menos 10 entregas; es decir, en cerca del 17 % de los días no se cumple la meta. Por tanto, un solo camión no garantiza las 10 entregas diarias. Para lograrlo con alta probabilidad (≥ 95 %), se recomienda reducir el tiempo medio o la variabilidad de la carga mediante mejoras operativas —por ejemplo, bajar el promedio de 30 a 25 min— o bien incorporar un segundo camión o una segunda bahía de carga. Estas medidas aumentan la capacidad efectiva y aseguran que el número mínimo de entregas diarias se cumpla de forma consistente.