Asignatura: Control de Calidad
Profesor: Ivan Mauricio Bermudez Vera
Universidad: Universidad del Valle

1 Introducción

En este trabajo se determina un plan de inspeccion por muestreo utilizando la norma MIL-STD-105E para un lote de tamano 3000 unidades con un nivel de calidad aceptable (AQL = 2.5%).

Se analizan planes de muestreo simple y doble para diferentes niveles de inspeccion y se evaluan mediante las curvas OC, AOQ y ATI.

Parámetros del problema

  • Tamano de lote: N = 3000
  • AQL: 2.5%
  • Niveles de inspeccion: I, II y III
  • Tipos de inspeccion: Normal, Reducida y Severa

2 Parámetros generales

N   <- 3000
P   <- seq(0.000, 0.140, 0.001)
pd  <- seq(0, 0.14, 0.01)
AQL <- 2.5

3 Plan de muestreo simple

3.1 Tabla de parámetros MIL-STD-105E

Para N = 3000 y AQL = 2.5%, las letras codigo y parametros son:

tabla_params <- data.frame(
  Inspeccion = c(rep("Normal", 3), rep("Reducida", 3), rep("Severa", 3)),
  Nivel      = rep(c("I", "II", "III"), 3),
  Letra      = rep(c("H", "K", "L"), 3),
  n          = c(50, 125, 200, 20, 50, 80, 50, 125, 200),
  Ac         = c(3,  7,   10,  2,  5,  6,  2,  5,   8)
)

kable(tabla_params, align = "c",
      caption = "Parámetros MIL-STD-105E - Muestreo Simple (N = 3000, AQL = 2.5%)") %>%
  kable_styling(full_width = FALSE,
                bootstrap_options = c("striped", "hover", "bordered", "condensed")) %>%
  collapse_rows(columns = 1, valign = "middle") %>%
  row_spec(0, bold = TRUE, background = "#8b1a1a", color = "white")
Parámetros MIL-STD-105E - Muestreo Simple (N = 3000, AQL = 2.5%)
Inspeccion Nivel Letra n Ac
Normal I H 50 3
II K 125 7
III L 200 10
Reducida I H 20 2
II K 50 5
III L 80 6
Severa I H 50 2
II K 125 5
III L 200 8

3.2 Inspección Normal

Parámetros - Inspección Normal (N = 3000, AQL = 2.5%)

  • Nivel I - Letra H: n = 50, Ac = 3
  • Nivel II - Letra K: n = 125, Ac = 7
  • Nivel III - Letra L: n = 200, Ac = 10
plan_N1 <- OC2c(n = 50,  c = 3,  type = "binomial", pd = pd)
plan_N2 <- OC2c(n = 125, c = 7,  type = "binomial", pd = pd)
plan_N3 <- OC2c(n = 200, c = 10, type = "binomial", pd = pd)
df_oc <- data.frame(
  pd = rep(pd, 3),
  prob = c(plan_N1@paccept, plan_N2@paccept, plan_N3@paccept),
  Nivel = rep(c("Nivel I", "Nivel II", "Nivel III"), each = length(pd))
)

p <- ggplot(df_oc, aes(pd, prob, color = Nivel)) +
  geom_line(size = 1.2) +
  geom_vline(xintercept = 0.025, linetype = "dashed") +
  labs(
    title = "Curva OC - Inspeccion Normal",
    x = "Proporcion defectuosa",
    y = "Probabilidad de aceptacion"
  ) +
  theme_minimal(base_size = 14)

ggplotly(p)

Curva OC - Inspeccion Normal

3.2.1 Análisis de la curva OC

La curva OC muestra la probabilidad de aceptar un lote en funcion de la proporcion de unidades defectuosas.

En general, los planes con mayor tamano de muestra (Nivel III) presentan curvas mas pronunciadas, lo que significa que discriminan mejor entre lotes de buena y mala calidad. Por el contrario, los planes con muestras mas pequenas (Nivel I) tienen curvas mas suaves y tienden a aceptar con mayor probabilidad lotes con mayor proporcion de defectuosos.

AOQ_N1 <- pd * plan_N1@paccept * (N - 50)  / N
AOQ_N2 <- pd * plan_N2@paccept * (N - 125) / N
AOQ_N3 <- pd * plan_N3@paccept * (N - 200) / N

plot(pd, AOQ_N1,
     type = "l", lwd = 2, col = "#2980b9",
     xlab = "Proporcion defectuosa",
     ylab = "AOQ",
     ylim = c(0, max(AOQ_N1, AOQ_N2, AOQ_N3)),
     main = "Curva AOQ - Inspeccion Normal")
lines(pd, AOQ_N2, lwd = 2, col = "#e74c3c")
lines(pd, AOQ_N3, lwd = 2, col = "#27ae60")
abline(v = 0.025, lty = 2, col = "gray50")
grid()
legend("topright",
       legend = c("Nivel I", "Nivel II", "Nivel III"),
       col = c("#2980b9", "#e74c3c", "#27ae60"), lwd = 2)
Curva AOQ - Inspeccion Normal

Curva AOQ - Inspeccion Normal

3.2.2 Análisis de la curva AOQ

La curva AOQ representa la calidad promedio de salida despues del proceso de inspeccion.

Los planes con tamanos de muestra mayores (Nivel III) generan valores maximos de AOQ mas bajos, lo que significa que la calidad promedio enviada al cliente es mejor. En contraste, los planes con muestras pequenas (Nivel I) presentan valores maximos de AOQ mas altos.

ATI_N1 <- 50  + (1 - plan_N1@paccept) * (N - 50)
ATI_N2 <- 125 + (1 - plan_N2@paccept) * (N - 125)
ATI_N3 <- 200 + (1 - plan_N3@paccept) * (N - 200)

plot(pd, ATI_N1,
     type = "l", lwd = 2, col = "#2980b9",
     xlab = "Proporcion defectuosa",
     ylab = "ATI",
     ylim = c(0, max(ATI_N1, ATI_N2, ATI_N3)),
     main = "Curva ATI - Inspeccion Normal")
lines(pd, ATI_N2, lwd = 2, col = "#e74c3c")
lines(pd, ATI_N3, lwd = 2, col = "#27ae60")
abline(v = 0.025, lty = 2, col = "gray50")
grid()
legend("topleft",
       legend = c("Nivel I", "Nivel II", "Nivel III"),
       col = c("#2980b9", "#e74c3c", "#27ae60"), lwd = 2)
Curva ATI - Inspeccion Normal

Curva ATI - Inspeccion Normal

3.2.3 Análisis de la curva ATI

La curva ATI muestra el numero promedio de unidades inspeccionadas.

Los planes con muestras pequenas (Nivel I) presentan valores de ATI mas bajos. En cambio, los planes con muestras grandes (Nivel III) generan mayores valores de ATI, lo que implica mayores costos y tiempos de inspeccion.

4 Conclusión: Mejor plan de muestreo simple

Considerando simultaneamente las curvas OC, AOQ y ATI, el plan de muestreo simple mas conveniente corresponde a Inspección normal - Nivel II (n = 125, Ac = 7) porque:

  • Proporciona mejor discriminacion entre lotes buenos y defectuosos segun la curva OC.
  • Mantiene una calidad promedio de salida (AOQ) menor que el Nivel I.
  • Presenta un costo de inspeccion moderado, ya que el ATI es menor que en el Nivel III.

4.1 Inspección Reducida

Parámetros - Inspección Reducida (N = 3000, AQL = 2.5%)

  • Nivel I - Letra H: n = 20, Ac = 2
  • Nivel II - Letra K: n = 50, Ac = 5
  • Nivel III - Letra L: n = 80, Ac = 6
plan_R1 <- OC2c(n = 20, c = 2, type = "binomial", pd = pd)
plan_R2 <- OC2c(n = 50, c = 5, type = "binomial", pd = pd)
plan_R3 <- OC2c(n = 80, c = 6, type = "binomial", pd = pd)
plot(pd, plan_R1@paccept,
     type = "l", lwd = 2, col = "#2980b9",
     xlab = "Proporcion defectuosa",
     ylab = "Probabilidad de aceptacion",
     ylim = c(0, 1),
     main = "Curva OC - Inspeccion Reducida")
lines(pd, plan_R2@paccept, lwd = 2, col = "#e74c3c")
lines(pd, plan_R3@paccept, lwd = 2, col = "#27ae60")
abline(v = 0.025, lty = 2, col = "gray50")
grid()
legend("topright",
       legend = c("Nivel I (n=20, Ac=2)",
                  "Nivel II (n=50, Ac=5)",
                  "Nivel III (n=80, Ac=6)"),
       col = c("#2980b9", "#e74c3c", "#27ae60"), lwd = 2)
Curva OC - Inspeccion Reducida

Curva OC - Inspeccion Reducida

AOQ_R1 <- pd * plan_R1@paccept * (N - 20) / N
AOQ_R2 <- pd * plan_R2@paccept * (N - 50) / N
AOQ_R3 <- pd * plan_R3@paccept * (N - 80) / N

plot(pd, AOQ_R1,
     type = "l", lwd = 2, col = "#2980b9",
     xlab = "Proporcion defectuosa",
     ylab = "AOQ",
     ylim = c(0, max(AOQ_R1, AOQ_R2, AOQ_R3)),
     main = "Curva AOQ - Inspeccion Reducida")
lines(pd, AOQ_R2, lwd = 2, col = "#e74c3c")
lines(pd, AOQ_R3, lwd = 2, col = "#27ae60")
abline(v = 0.025, lty = 2, col = "gray50")
grid()
legend("topright",
       legend = c("Nivel I", "Nivel II", "Nivel III"),
       col = c("#2980b9", "#e74c3c", "#27ae60"), lwd = 2)
Curva AOQ - Inspeccion Reducida

Curva AOQ - Inspeccion Reducida

ATI_R1 <- 20 + (1 - plan_R1@paccept) * (N - 20)
ATI_R2 <- 50 + (1 - plan_R2@paccept) * (N - 50)
ATI_R3 <- 80 + (1 - plan_R3@paccept) * (N - 80)

plot(pd, ATI_R1,
     type = "l", lwd = 2, col = "#2980b9",
     xlab = "Proporcion defectuosa",
     ylab = "ATI",
     ylim = c(0, max(ATI_R1, ATI_R2, ATI_R3)),
     main = "Curva ATI - Inspeccion Reducida")
lines(pd, ATI_R2, lwd = 2, col = "#e74c3c")
lines(pd, ATI_R3, lwd = 2, col = "#27ae60")
abline(v = 0.025, lty = 2, col = "gray50")
grid()
legend("topleft",
       legend = c("Nivel I", "Nivel II", "Nivel III"),
       col = c("#2980b9", "#e74c3c", "#27ae60"), lwd = 2)
Curva ATI - Inspeccion Reducida

Curva ATI - Inspeccion Reducida


4.2 Inspección Severa

Parámetros - Inspección Severa (N = 3000, AQL = 2.5%)

  • Nivel I - Letra H: n = 50, Ac = 2
  • Nivel II - Letra K: n = 125, Ac = 5
  • Nivel III - Letra L: n = 200, Ac = 8
plan_S1 <- OC2c(n = 50,  c = 2, type = "binomial", pd = pd)
plan_S2 <- OC2c(n = 125, c = 5, type = "binomial", pd = pd)
plan_S3 <- OC2c(n = 200, c = 8, type = "binomial", pd = pd)
plot(pd, plan_S1@paccept,
     type = "l", lwd = 2, col = "#2980b9",
     xlab = "Proporcion defectuosa",
     ylab = "Probabilidad de aceptacion",
     ylim = c(0, 1),
     main = "Curva OC - Inspeccion Severa")
lines(pd, plan_S2@paccept, lwd = 2, col = "#e74c3c")
lines(pd, plan_S3@paccept, lwd = 2, col = "#27ae60")
abline(v = 0.025, lty = 2, col = "gray50")
grid()
legend("topright",
       legend = c("Nivel I (n=50, Ac=2)",
                  "Nivel II (n=125, Ac=5)",
                  "Nivel III (n=200, Ac=8)"),
       col = c("#2980b9", "#e74c3c", "#27ae60"), lwd = 2)
Curva OC - Inspeccion Severa

Curva OC - Inspeccion Severa

AOQ_S1 <- pd * plan_S1@paccept * (N - 50)  / N
AOQ_S2 <- pd * plan_S2@paccept * (N - 125) / N
AOQ_S3 <- pd * plan_S3@paccept * (N - 200) / N

plot(pd, AOQ_S1,
     type = "l", lwd = 2, col = "#2980b9",
     xlab = "Proporcion defectuosa",
     ylab = "AOQ",
     ylim = c(0, max(AOQ_S1, AOQ_S2, AOQ_S3)),
     main = "Curva AOQ - Inspeccion Severa")
lines(pd, AOQ_S2, lwd = 2, col = "#e74c3c")
lines(pd, AOQ_S3, lwd = 2, col = "#27ae60")
abline(v = 0.025, lty = 2, col = "gray50")
grid()
legend("topright",
       legend = c("Nivel I", "Nivel II", "Nivel III"),
       col = c("#2980b9", "#e74c3c", "#27ae60"), lwd = 2)
Curva AOQ - Inspeccion Severa

Curva AOQ - Inspeccion Severa

ATI_S1 <- 50  + (1 - plan_S1@paccept) * (N - 50)
ATI_S2 <- 125 + (1 - plan_S2@paccept) * (N - 125)
ATI_S3 <- 200 + (1 - plan_S3@paccept) * (N - 200)

plot(pd, ATI_S1,
     type = "l", lwd = 2, col = "#2980b9",
     xlab = "Proporcion defectuosa",
     ylab = "ATI",
     ylim = c(0, max(ATI_S1, ATI_S2, ATI_S3)),
     main = "Curva ATI - Inspeccion Severa")
lines(pd, ATI_S2, lwd = 2, col = "#e74c3c")
lines(pd, ATI_S3, lwd = 2, col = "#27ae60")
abline(v = 0.025, lty = 2, col = "gray50")
grid()
legend("topleft",
       legend = c("Nivel I", "Nivel II", "Nivel III"),
       col = c("#2980b9", "#e74c3c", "#27ae60"), lwd = 2)
Curva ATI - Inspeccion Severa

Curva ATI - Inspeccion Severa


4.2.1 Análisis de resultados

Considerando simultaneamente las curvas OC, AOQ y ATI, el plan de muestreo simple mas conveniente es el de inspeccion normal, Nivel II (n = 125, Ac = 7).

Este plan se considera el mas adecuado porque:

  • Proporciona mejor discriminacion entre lotes buenos y malos que el Nivel I, segun la curva OC.
  • Mantiene una calidad promedio de salida (AOQ) menor, reduciendo el riesgo de enviar productos defectuosos.
  • Presenta un costo de inspeccion moderado, ya que el ATI es menor que en el Nivel III.

En consecuencia, el Nivel II bajo inspeccion normal ofrece un equilibrio adecuado entre proteccion al consumidor, control de calidad y costo de inspeccion.

5 Punto 1B. Plan de muestreo doble

5.1 Tablas de parámetros

tabla1 <- data.frame(
  Nivel   = c("I", "I", "II", "II", "III", "III"),
  Muestra = c(1, 2, 1, 2, 1, 2),
  Tamano  = c(32, 32, 80, 80, 125, 125),
  Ac      = c(1, 4, 3, 9, 5, 12),
  Re      = c(3, 5, 6, 10, 9, 13)
)

kable(tabla1, align = "c", caption = "Plan de muestreo doble - Inspeccion Normal") %>%
  add_header_above(c(" " = 1, "Inspeccion Normal" = 4)) %>%
  collapse_rows(columns = 1, valign = "middle") %>%
  kable_styling(full_width = FALSE,
                bootstrap_options = c("striped", "hover", "bordered")) %>%
  row_spec(0, bold = TRUE, background = "#2980b9", color = "white")
Plan de muestreo doble - Inspeccion Normal
Inspeccion Normal
Nivel Muestra Tamano Ac Re
I 1 32 1 3
2 32 4 5
II 1 80 3 6
2 80 9 10
III 1 125 5 9
2 125 12 13
tabla2 <- data.frame(
  Nivel   = c("I", "I", "II", "II", "III", "III"),
  Muestra = c(1, 2, 1, 2, 1, 2),
  Tamano  = c(32, 32, 80, 80, 125, 125),
  Ac      = c(0, 3, 2, 6, 4, 10),
  Re      = c(3, 4, 5, 7, 7, 11)
)

kable(tabla2, align = "c", caption = "Plan de muestreo doble - Inspeccion Estricta") %>%
  add_header_above(c(" " = 1, "Inspeccion Estricta" = 4)) %>%
  collapse_rows(columns = 1, valign = "middle") %>%
  kable_styling(full_width = FALSE,
                bootstrap_options = c("striped", "hover", "bordered")) %>%
  row_spec(0, bold = TRUE, background = "#8b1a1a", color = "white")
Plan de muestreo doble - Inspeccion Estricta
Inspeccion Estricta
Nivel Muestra Tamano Ac Re
I 1 32 0 3
2 32 3 4
II 1 80 2 5
2 80 6 7
III 1 125 4 7
2 125 10 11
tabla3 <- data.frame(
  Nivel   = c("I", "I", "II", "II", "III", "III"),
  Muestra = c(1, 2, 1, 2, 1, 2),
  Tamano  = c(13, 13, 32, 32, 50, 50),
  Ac      = c(0, 3, 2, 5, 3, 7),
  Re      = c(3, 4, 4, 6, 6, 8)
)

kable(tabla3, align = "c", caption = "Plan de muestreo doble - Inspeccion Reducida") %>%
  add_header_above(c(" " = 1, "Inspeccion Reducida" = 4)) %>%
  collapse_rows(columns = 1, valign = "middle") %>%
  kable_styling(full_width = FALSE,
                bootstrap_options = c("striped", "hover", "bordered")) %>%
  row_spec(0, bold = TRUE, background = "#27ae60", color = "white")
Plan de muestreo doble - Inspeccion Reducida
Inspeccion Reducida
Nivel Muestra Tamano Ac Re
I 1 13 0 3
2 13 3 4
II 1 32 2 4
2 32 5 6
III 1 50 3 6
2 50 7 8

5.2 Curvas OC - Muestreo doble

seleccionar_distribucion <- function(n, N) {
  r <- n / N
  if (r > 0.1)             return("Hipergeometrica")
  if (r <= 0.1 && n*r > 1) return("Poisson")
  return("Binomial")
}

5.2.1 Inspección Normal

Parámetros - Inspección Normal Doble

  • Nivel I: n1 = 32, n2 = 32, Ac1 = 1, Ac2 = 4, Re1 = 3, Re2 = 5
  • Nivel II: n1 = 80, n2 = 80, Ac1 = 3, Ac2 = 9, Re1 = 6, Re2 = 10
  • Nivel III: n1 = 125, n2 = 125, Ac1 = 5, Ac2 = 12, Re1 = 9, Re2 = 13
n1_1 <- c(32, 80, 125);  c1_1 <- c(1, 3, 5)
n2_1 <- c(32, 80, 125);  c2_1 <- c(5, 8, 12)

cat("Nivel I:",   seleccionar_distribucion(32,  N), "\n")
## Nivel I: Binomial
cat("Nivel II:",  seleccionar_distribucion(80,  N), "\n")
## Nivel II: Poisson
cat("Nivel III:", seleccionar_distribucion(125, N), "\n")
## Nivel III: Poisson
PaI_1 <- pbinom(c1_1[1], n1_1[1], P) +
         dbinom(c1_1[1]+1, n1_1[1], P) *
         pbinom(c2_1[1]-(c1_1[1]+1), n2_1[1], P)

PaII_1 <- ppois(c1_1[2], n1_1[2]*P) +
          dpois(c1_1[2]+1, n1_1[2]*P) *
          ppois(c2_1[2]-(c1_1[2]+1), n2_1[2]*P)

PaIII_1 <- ppois(c1_1[3], n1_1[3]*P) +
           dpois(c1_1[3]+1, n1_1[3]*P) *
           ppois(c2_1[3]-(c1_1[3]+1), n2_1[3]*P)

plot(P, PaI_1,
     type = "l", lwd = 3, col = "#2091B1",
     xlab = "Proporcion defectuosa",
     ylab = "Probabilidad de aceptacion",
     ylim = c(0, 1),
     main = "Curva OC - Muestreo Doble, Inspeccion Normal")
lines(P, PaII_1,  col = "#A732FB", lwd = 3)
lines(P, PaIII_1, col = "orange",  lwd = 3)
abline(v = 0.025, lty = 2, col = "gray50")
grid()
legend("right",
       legend = c("Nivel I", "Nivel II", "Nivel III"),
       col = c("#2091B1", "#A732FB", "orange"), lwd = 2)
Curva OC - Muestreo Doble, Inspeccion Normal

Curva OC - Muestreo Doble, Inspeccion Normal

5.2.2 Inspección Estricta

Parámetros - Inspección Estricta Doble

  • Nivel I: n1 = 32, n2 = 32, Ac1 = 0, Ac2 = 3, Re1 = 3, Re2 = 4
  • Nivel II: n1 = 80, n2 = 80, Ac1 = 2, Ac2 = 6, Re1 = 5, Re2 = 7
  • Nivel III: n1 = 125, n2 = 125, Ac1 = 4, Ac2 = 10, Re1 = 7, Re2 = 11
n1_2 <- c(32, 80, 125);  c1_2 <- c(0, 2, 4)
n2_2 <- c(32, 80, 125);  c2_2 <- c(3, 6, 10)
PaI_2 <- pbinom(c1_2[1], n1_2[1], P) +
         dbinom(c1_2[1]+1, n1_2[1], P) *
         pbinom(c2_2[1]-(c1_2[1]+1), n2_2[1], P)

PaII_2 <- ppois(c1_2[2], n1_2[2]*P) +
          dpois(c1_2[2]+1, n1_2[2]*P) *
          ppois(c2_2[2]-(c1_2[2]+1), n2_2[2]*P)

PaIII_2 <- ppois(c1_2[3], n1_2[3]*P) +
           dpois(c1_2[3]+1, n1_2[3]*P) *
           ppois(c2_2[3]-(c1_2[3]+1), n2_2[3]*P)

plot(P, PaI_2,
     type = "l", lwd = 3, col = "#2091B1",
     xlab = "Proporcion defectuosa",
     ylab = "Probabilidad de aceptacion",
     ylim = c(0, 1),
     main = "Curva OC - Muestreo Doble, Inspeccion Estricta")
lines(P, PaII_2,  col = "#A732FB", lwd = 3)
lines(P, PaIII_2, col = "orange",  lwd = 3)
abline(v = 0.025, lty = 2, col = "gray50")
grid()
legend("right",
       legend = c("Nivel I", "Nivel II", "Nivel III"),
       col = c("#2091B1", "#A732FB", "orange"), lwd = 2)
Curva OC - Muestreo Doble, Inspeccion Estricta

Curva OC - Muestreo Doble, Inspeccion Estricta

5.2.3 Inspección Reducida

Parámetros - Inspección Reducida Doble

  • Nivel I: n1 = 13, n2 = 13, Ac1 = 0, Ac2 = 3, Re1 = 3, Re2 = 4
  • Nivel II: n1 = 32, n2 = 32, Ac1 = 2, Ac2 = 5, Re1 = 4, Re2 = 6
  • Nivel III: n1 = 50, n2 = 50, Ac1 = 3, Ac2 = 7, Re1 = 6, Re2 = 8
n1_3 <- c(13, 32, 50);  c1_3 <- c(0, 2, 3)
n2_3 <- c(13, 32, 50);  c2_3 <- c(3, 5, 7)

cat("Nivel I:",   seleccionar_distribucion(13, N), "\n")
## Nivel I: Binomial
cat("Nivel II:",  seleccionar_distribucion(32, N), "\n")
## Nivel II: Binomial
cat("Nivel III:", seleccionar_distribucion(50, N), "\n")
## Nivel III: Binomial
PaI_3 <- pbinom(c1_3[1], n1_3[1], P) +
         dbinom(c1_3[1]+1, n1_3[1], P) *
         pbinom(c2_3[1]-(c1_3[1]+1), n2_3[1], P)

PaII_3 <- pbinom(c1_3[2], n1_3[2], P) +
          dbinom(c1_3[2]+1, n1_3[2], P) *
          pbinom(c2_3[2]-(c1_3[2]+1), n2_3[2], P)

PaIII_3 <- pbinom(c1_3[3], n1_3[3], P) +
           dbinom(c1_3[3]+1, n1_3[3], P) *
           pbinom(c2_3[3]-(c1_3[3]+1), n2_3[3], P)

plot(P, PaI_3,
     type = "l", lwd = 3, col = "#2091B1",
     xlab = "Proporcion defectuosa",
     ylab = "Probabilidad de aceptacion",
     ylim = c(0, 1),
     main = "Curva OC - Muestreo Doble, Inspeccion Reducida")
lines(P, PaII_3,  col = "#A732FB", lwd = 3)
lines(P, PaIII_3, col = "orange",  lwd = 3)
abline(v = 0.025, lty = 2, col = "gray50")
grid()
legend("right",
       legend = c("Nivel I", "Nivel II", "Nivel III"),
       col = c("#2091B1", "#A732FB", "orange"), lwd = 2)
Curva OC - Muestreo Doble, Inspeccion Reducida

Curva OC - Muestreo Doble, Inspeccion Reducida


5.3 Curvas AOQ - Muestreo doble

5.3.1 Inspección Normal

AOQI_1   <- PaI_1   * P * ((N - n1_1[1]) / N)
AOQII_1  <- PaII_1  * P * ((N - n1_1[2]) / N)
AOQIII_1 <- PaIII_1 * P * ((N - n1_1[3]) / N)

plot(P, AOQI_1,
     type = "l", col = "#25AD76", lwd = 3,
     xlab = "Proporcion defectuosa",
     ylab = "AOQ",
     ylim = c(0, max(AOQI_1, AOQII_1, AOQIII_1)),
     main = "Curva AOQ - Muestreo Doble, Inspeccion Normal")
lines(P, AOQII_1,  col = "#FF8A99", lwd = 3)
lines(P, AOQIII_1, col = "#F0A500", lwd = 3)
abline(v = 0.025, lty = 2, col = "gray50")
grid()
legend("topright",
       legend = c("Nivel I", "Nivel II", "Nivel III"),
       col = c("#25AD76", "#FF8A99", "#F0A500"), lwd = 2)
Curva AOQ - Muestreo Doble, Inspeccion Normal

Curva AOQ - Muestreo Doble, Inspeccion Normal

5.3.2 Inspección Estricta

AOQI_2   <- PaI_2   * P * ((N - n1_2[1]) / N)
AOQII_2  <- PaII_2  * P * ((N - n1_2[2]) / N)
AOQIII_2 <- PaIII_2 * P * ((N - n1_2[3]) / N)

plot(P, AOQI_2,
     type = "l", col = "#25AD76", lwd = 3,
     xlab = "Proporcion defectuosa",
     ylab = "AOQ",
     ylim = c(0, max(AOQI_2, AOQII_2, AOQIII_2)),
     main = "Curva AOQ - Muestreo Doble, Inspeccion Estricta")
lines(P, AOQII_2,  col = "#FF8A99", lwd = 3)
lines(P, AOQIII_2, col = "#F0A500", lwd = 3)
abline(v = 0.025, lty = 2, col = "gray50")
grid()
legend("topright",
       legend = c("Nivel I", "Nivel II", "Nivel III"),
       col = c("#25AD76", "#FF8A99", "#F0A500"), lwd = 2)
Curva AOQ - Muestreo Doble, Inspeccion Estricta

Curva AOQ - Muestreo Doble, Inspeccion Estricta

5.3.3 Inspección Reducida

AOQI_3   <- PaI_3   * P * ((N - n1_3[1]) / N)
AOQII_3  <- PaII_3  * P * ((N - n1_3[2]) / N)
AOQIII_3 <- PaIII_3 * P * ((N - n1_3[3]) / N)

plot(P, AOQI_3,
     type = "l", col = "#25AD76", lwd = 3,
     xlab = "Proporcion defectuosa",
     ylab = "AOQ",
     ylim = c(0, max(AOQI_3, AOQII_3, AOQIII_3)),
     main = "Curva AOQ - Muestreo Doble, Inspeccion Reducida")
lines(P, AOQII_3,  col = "#FF8A99", lwd = 3)
lines(P, AOQIII_3, col = "#F0A500", lwd = 3)
abline(v = 0.025, lty = 2, col = "gray50")
grid()
legend("topright",
       legend = c("Nivel I", "Nivel II", "Nivel III"),
       col = c("#25AD76", "#FF8A99", "#F0A500"), lwd = 2)
Curva AOQ - Muestreo Doble, Inspeccion Reducida

Curva AOQ - Muestreo Doble, Inspeccion Reducida


5.4 Evaluación del modelo doble

5.4.1 Inspección Normal

plan_N_I   <- OC2c(n=n1_1[1], c=c1_1[1], type="binomial", pd=pd)
plan_N_II  <- OC2c(n=n1_1[2], c=c1_1[2], type="poisson",  pd=pd)
plan_N_III <- OC2c(n=n1_1[3], c=c1_1[3], type="poisson",  pd=pd)

pa_N_I   <- plan_N_I@paccept
pa_N_II  <- plan_N_II@paccept
pa_N_III <- plan_N_III@paccept

pd_N_1 <- plan_N_I@pd
pd_N_2 <- plan_N_II@pd
pd_N_3 <- plan_N_III@pd
plot(pd_N_1, pa_N_I,
     type="l", col="#C0D461", lwd=3,
     xlab="Proporcion defectuosa",
     ylab="Probabilidad de aceptacion",
     main="Curvas OC - Inspeccion normal")
lines(pd_N_2, pa_N_II,  col="#FFDAB5", lwd=3)
lines(pd_N_3, pa_N_III, col="#66A1B2", lwd=3)
legend("right",
       legend=c("Nivel I","Nivel II","Nivel III"),
       col=c("#C0D461","#FFDAB5","#66A1B2"), lwd=2)
abline(v=0.025, col="#9A275A", lty=2, lwd=3)

5.4.2 Inspección Estricta

plan_E_I   <- OC2c(n=n1_2[1], c=c1_2[1], type="binomial", pd=pd)
plan_E_II  <- OC2c(n=n1_2[2], c=c1_2[2], type="poisson",  pd=pd)
plan_E_III <- OC2c(n=n1_2[3], c=c1_2[3], type="poisson",  pd=pd)

pa_E_I   <- plan_E_I@paccept
pa_E_II  <- plan_E_II@paccept
pa_E_III <- plan_E_III@paccept

pd_E_1 <- plan_E_I@pd
pd_E_2 <- plan_E_II@pd
pd_E_3 <- plan_E_III@pd
plot(pd_E_1, pa_E_I,
     type="l", col="#C0D461", lwd=3,
     xlab="Proporcion defectuosa",
     ylab="Probabilidad de aceptacion",
     main="Curvas OC - Inspeccion estricta")
lines(pd_E_2, pa_E_II,  col="#FFDAB5", lwd=3)
lines(pd_E_3, pa_E_III, col="#66A1B2", lwd=3)
legend("right",
       legend=c("Nivel I","Nivel II","Nivel III"),
       col=c("#C0D461","#FFDAB5","#66A1B2"), lwd=2)
abline(v=0.025, col="#9A275A", lty=2, lwd=3)

5.4.3 Inspección Reducida

plan_R_I   <- OC2c(n=n1_3[1], c=c1_3[1], type="binomial", pd=pd)
plan_R_II  <- OC2c(n=n1_3[2], c=c1_3[2], type="binomial", pd=pd)
plan_R_III <- OC2c(n=n1_3[3], c=c1_3[3], type="binomial", pd=pd)

pa_R_I   <- plan_R_I@paccept
pa_R_II  <- plan_R_II@paccept
pa_R_III <- plan_R_III@paccept

pd_R_1 <- plan_R_I@pd
pd_R_2 <- plan_R_II@pd
pd_R_3 <- plan_R_III@pd
plot(pd_R_1, pa_R_I,
     type="l", col="#C0D461", lwd=3,
     xlab="Proporcion defectuosa",
     ylab="Probabilidad de aceptacion",
     main="Curvas OC - Inspeccion reducida")
lines(pd_R_2, pa_R_II,  col="#FFDAB5", lwd=3)
lines(pd_R_3, pa_R_III, col="#66A1B2", lwd=3)
legend("right",
       legend=c("Nivel I","Nivel II","Nivel III"),
       col=c("#C0D461","#FFDAB5","#66A1B2"), lwd=2)
abline(v=0.025, col="#9A275A", lty=2, lwd=3)

5.4.4 Análisis de resultados

A partir de las curvas OC obtenidas para los diferentes niveles de inspeccion en el plan de muestreo doble, se observa que el Nivel I presenta las mayores probabilidades de aceptacion, lo que indica un control menos estricto del proceso. En el punto correspondiente al AQL = 2.5%, la probabilidad de aceptacion es aproximadamente superior a 0.95. Por otra parte, el Nivel III muestra una menor probabilidad de aceptacion en ese mismo punto (alrededor de 0.85-0.90), reflejando un criterio mas exigente. El Nivel II presenta un comportamiento intermedio, con probabilidades cercanas a 0.90-0.93, lo que evidencia un equilibrio entre la capacidad de deteccion de lotes defectuosos y el tamano de muestra requerido.

Los resultados obtenidos a partir de las curvas AOQ permiten respaldar la eleccion del Nivel II como el plan mas optimo, ya que presenta un comportamiento intermedio que indica un equilibrio adecuado entre el riesgo de aceptar lotes con defectos y el esfuerzo de inspeccion requerido.

6 Punto 1C. Comparación simple vs doble

A partir del analisis realizado para los planes de muestreo simple y doble, se observa que ambos presentan comportamientos similares en terminos de discriminacion entre lotes con baja y alta proporcion de defectuosos. En ambos casos, el nivel de inspeccion II bajo inspeccion normal se identifica como el mas adecuado dentro de cada esquema.

Sin embargo, al comparar ambos tipos de planes, se encuentra que el plan de muestreo doble presenta una ventaja operativa importante frente al plan simple. En el muestreo doble, la decision de aceptar o rechazar el lote puede tomarse despues de la primera muestra cuando el numero de defectuosos es claramente bajo o alto, lo que evita la necesidad de realizar siempre una inspeccion completa como ocurre en el plan simple. Esto permite reducir el numero promedio de unidades inspeccionadas, disminuyendo el esfuerzo y el costo de inspeccion en muchos casos.

En ese sentido, el plan de muestreo doble resulta mas conveniente que el plan de muestreo simple, ya que permite mantener un nivel adecuado de proteccion tanto para el productor como para el consumidor, al mismo tiempo que optimiza el esfuerzo de inspeccion.