Exposición Control de Calidad

Ejercicio 2

Se sabe que un proceso normal es estable. Sin embargo, el proceso está posiblemente descentrado y sus parámetros se desconocen. Derívese un intervalo de confianza (1 − 𝛼) × 100% para el índice 𝐶𝑝𝑘 basado en la estimación puntual que se hace del índice de Clements para procesos centrados en una muestra de tamaño 𝑛 tomada del proceso.

Resumen del desarrollo

  • Cálculo de Cpk y estimación de parámetros: Se calcula el índice de capacidad del proceso (Cpk) utilizando los parámetros dados (media mu y desviación estándar sigma), luego se estima un valor de Cpk a partir de muestras simuladas, y se realiza un cálculo de Cpk utilizando el promedio y la desviación estándar obtenidos de las simulaciones.

  • Bootstrap y cálculo del intervalo de confianza: Se aplica el método de bootstrap para obtener una distribución de estimaciones de Cpk al generar múltiples muestras de los datos simulados, y luego se calcula un intervalo de confianza para el valor de Cpk utilizando el promedio y la desviación estándar de las estimaciones obtenidas a través de las muestras bootstrap.

# Borrar variables previas
rm(list=ls(all=TRUE))

# Definir parámetros
mu = 3
sigma = 2

LES = 10
LEI = 2
M = (LES + LEI)/2
d = (LES - LEI)/2

# Función Cpk
Cpk <- function(mu,sigma){
  aux = ((LES - LEI)/(6*sigma))*(1 - (abs(mu - M)/d))
  return(aux)
}
Cpk.t = Cpk(mu,sigma)

# Simulación
n = 30
c4 = 0.94
m = 20
x = NULL
nm = NULL
xj = numeric(n)
xb = numeric(m)
s = numeric(m)

set.seed(123)
for (i in 1:m) {
  xj = rnorm(n,mu,sigma)
  xb[i] = mean(xj)
  s[i] = sd(xj)
  x = c(x,xj)
  nm = c(nm,rep(i,n))
}
data = cbind(x,nm)
xbb = mean(xb)
sigma.hat = mean(s)/c4

Cpk.hat = Cpk(xbb,sigma.hat)

# Bootstrap
S = 1000
xj = NULL
xb = numeric(m)
s = numeric(m)
Cpk.s = numeric(S)

set.seed(17)
for (i in 1:S) {
  for (j in 1:m) {
    xj = sample(data[nm == j,1], replace = TRUE)
    xb[j] = mean(xj)
    s[j] = sd(xj)
  }
  xbb.s = mean(xb)
  sigma.s = mean(s)/c4
  Cpk.s[i] = Cpk(xbb.s,sigma.s)
}

# Intervalo de confianza
alfa = 0.05
cpk.b = mean(Cpk.s)
cpk.sd = sd(Cpk.s)

IC = cpk.b + c(-1,1)*qnorm(1-(alfa/2))*cpk.sd

# Crear tabla
resultados <- data.frame(
  Métrica = c("Cpk Teórico", "Cpk Estimado", "Media Bootstrap", "Desviación Bootstrap", "Límite Inferior IC", "Límite Superior IC"),
  Valor = c(Cpk.t, Cpk.hat, cpk.b, cpk.sd, IC[1], IC[2])
)

# Mostrar tabla en HTML con kableExtra
kable(resultados, format = "html", digits = 4) %>%
  kable_styling("striped", full_width = F, position = "center")
Métrica Valor
Cpk Teórico 0.1667
Cpk Estimado 0.1693
Media Bootstrap 0.1732
Desviación Bootstrap 0.0135
Límite Inferior IC 0.1468
Límite Superior IC 0.1997
df_plot <- data.frame(xb = xb)

Gráfico