El comprador quiere evitar lotes con nivel de calidad límite (LTPD) de 7.5 %. El director propone: muestra de \(n=50\), se acepta con \(c \le 1\) defectuosos y se rechaza con 2 o más.
# Plan de muestreo simple
N <- 100000 # lote muy grande (supuesto)
n <- 50
c <- 1
LTPD <- 0.075
# Eje X y curva OC
P <- seq(0.000, 0.140, 0.001)
Pa <- pbinom(c, n, P, lower.tail = TRUE)
# Indicadores
AOQ <- Pa * P
AOQL <- max(AOQ)
ATI <- n * Pa + N * (1 - Pa)
par(mfrow = c(1, 3))
# 1. Grafica OC
plot(P, Pa,
type = "l",
main = "OC",
xlab = "Proporción de defectos",
ylab = "Pa")
abline(v = LTPD, col = 2, lwd = 2, lty = 3)
abline(h = pbinom(c, n, LTPD), col = 2, lwd = 2, lty = 3)
# 2. Grafica AOQ
plot(P, AOQ,
type = "l",
main = "AOQ",
xlab = "Proporción de defectos",
ylab = "AOQ (Calidad de Salida)",
ylim = c(0, 0.02))
abline(h = AOQL, col = 2, lwd = 2, lty = 2)
lines(P, P, col = 3, lwd = 2, lty = 3)
legend("topleft",
legend = c("AOQ", "AOQL", "Sin inspección"),
bty = "n",
lty = c(1, 2, 3),
col = c(1, 2, 3),
lwd = 2,
cex = 0.7)
# 3. Grafica ATI
plot(P, ATI,
type = "l",
main = "ATI",
xlab = "Proporción de defectos",
ylab = "ATI (Número esperado de unidades a inspeccionar)",
ylim = c(0, N))
par(mfrow = c(1, 1))
AOQL
## [1] 0.01669696
P[which.max(AOQ)] # calidad de entrada en la que ocurre el AOQL
## [1] 0.032
Respuesta. La máxima proporción de defectuosos que se espera a la salida del plan (AOQL) es de aproximadamente 1.67 %, y ocurre cuando la calidad de entrada es cercana a 3.2 %.
# Si P = 0.07, ATI = ?
Pa_0.07 <- pbinom(c, n, 0.07, lower.tail = TRUE)
ATI_0.07 <- n * Pa_0.07 + N * (1 - Pa_0.07)
Pa_0.07
## [1] 0.1264935
ATI_0.07
## [1] 87356.97
Respuesta. Con \(p=7\%\), la probabilidad de aceptar un lote es 0.1265, es decir, cerca del 87.4 % de los lotes se rechazan y se inspeccionan completamente. Con \(N\) muy grande el ATI queda dominado por esos lotes (\(ATI \approx N(1-P_a)\)); con \(N=\) 1e+05 resulta aproximadamente 87.357 unidades. Si solo se pidiera el tamaño de muestra esperado la respuesta sería \(n = 50\).
# Riesgo del consumidor
beta <- pbinom(c, n, LTPD)
beta
## [1] 0.1025006
Respuesta. El riesgo del comprador es \(\beta = P_a(7.5\%) =\) 0.1025 (≈ 10.3 %). Un lote con 7.5 % de defectuosos se aceptaría aproximadamente 1 de cada 10 veces, valor ligeramente por encima del 10 % que suele tomarse como referencia. El plan no es del todo apropiado: ya que cumple muypoco con el objetivo del comprador de evitar la alta probabilidad delotes con esa calidad.
Se comparan: el plan original (\(n=50\), \(c=1\)), aumentar la muestra (\(n=60\), \(c=1\)) y conservar la muestra aceptando 0 defectos (\(n=50\), \(c=0\)).
planes <- data.frame(
Plan = c("Original (n=50, c=1)", "B (n=60, c=1)", "C (n=50, c=0)"),
n_plan = c(50, 60, 50),
Ac = c(1, 1, 0)
)
# Riesgo del consumidor (en LTPD), Pa en 1% y 2%, y AOQL
tabla_comparacion <- data.frame(
Plan = planes$Plan,
Beta = pbinom(planes$Ac, planes$n_plan, LTPD),
Pa_p1 = pbinom(planes$Ac, planes$n_plan, 0.01),
Pa_p2 = pbinom(planes$Ac, planes$n_plan, 0.02),
AOQL = sapply(1:3, function(i) {
max(pbinom(planes$Ac[i], planes$n_plan[i], P) * P)
})
)
tabla_comparacion[, 2:5] <- round(tabla_comparacion[, 2:5], 4)
names(tabla_comparacion)[2:4] <- c("Beta (Pa en 7.5%)", "Pa en p=1%", "Pa en p=2%")
print(tabla_comparacion, row.names = FALSE)
## Plan Beta (Pa en 7.5%) Pa en p=1% Pa en p=2% AOQL
## Original (n=50, c=1) 0.1025 0.9106 0.7358 0.0167
## B (n=60, c=1) 0.0545 0.8788 0.6619 0.0139
## C (n=50, c=0) 0.0203 0.6050 0.3642 0.0073
plot(P, pbinom(1, 50, P), type = "l", lwd = 2, col = 1,
main = "Comparación de curvas OC",
xlab = "Proporción de defectos", ylab = "Pa")
lines(P, pbinom(1, 60, P), lwd = 2, col = 2)
lines(P, pbinom(0, 50, P), lwd = 2, col = 4)
abline(v = LTPD, lty = 3, col = "gray40")
legend("topright",
legend = c("n=50, c=1 (original)", "n=60, c=1", "n=50, c=0"),
col = c(1, 2, 4), lty = 1, lwd = 2, bty = "n")
Recomendación.
Se recomienda al director el plan n = 60, c = 1, porque cumple \(\beta \le 10\%\) sin romper la relación con el proveedor. Solo si la prioridad absoluta fuera evitar lotes de 7.5 %, se justificaría el plan \(n=50\), \(c=0\).
Lotes de \(N=40\,000\); se aceptan lotes con máximo 1 % de defectuosos (AQL). Se toma una muestra de \(n=1\,500\) y se acepta con 14 o menos defectuosos (con 15 o más se rechaza). El nivel de calidad rechazable (LTPD) es 4 veces el aceptable.
# Plan de muestreo simple
N <- 40000
n <- 1500
c <- 14
# Niveles de calidad
AQL <- 0.01
LTPD <- 4 * AQL # 4 %
# Criterio para la distribución: n/N
n / N
## [1] 0.0375
Como \(n/N = 0.0375 \le 0.10\), se usa la distribución binomial.
# Riesgo del productor
alpha <- 1 - pbinom(c, n, AQL)
alpha
## [1] 0.5348614
# Riesgo del consumidor
beta <- pbinom(c, n, LTPD)
beta
## [1] 4.909586e-13
Resultados
tabla_riesgos <- data.frame(
Plan = "(n=1500, c=14)",
Alfa = round(100 * alpha, 2),
Beta = format(beta, scientific = TRUE, digits = 3)
)
names(tabla_riesgos)[2:3] <- c("Alfa (%)", "Beta")
print(tabla_riesgos, row.names = FALSE)
## Plan Alfa (%) Beta
## (n=1500, c=14) 53.49 4.91e-13
P <- seq(0.000, 0.050, 0.0005)
Pa <- pbinom(c, n, P)
plot(P, Pa, type = "l", lwd = 2,
main = "Curva OC - N=40000, n=1500, c=14",
xlab = "Proporción de defectos (Calidad de entrada)",
ylab = "Pa")
abline(v = c(AQL, LTPD), col = c(3, 2), lwd = 2, lty = 3)
abline(h = c(1 - alpha, beta), col = c(3, 2), lty = 3)
points(c(AQL, LTPD), c(1 - alpha, beta), pch = 19, col = c(3, 2))
legend("topright",
legend = c("OC", "AQL (1%)", "LTPD (4%)"),
bty = "n", lty = c(1, 3, 3), col = c(1, 3, 2), lwd = 2)
Respuesta.
Opinión del plan. El plan protege totalmente al consumidor, pero es excesivamente estricto con el productor:puesto que se rechazaría más de la mitad de los lotes que sí cumplen el 1 % pactado. Esto ocurre debido a que con \(p=1\%\) se esperan \(np = 15\) defectuosos y se acepta con 14 o menos, de modo que el punto de corte queda justo en la media. Para balancear los riesgos conviene aumentar el número de aceptación \(c\) (o reducir \(n\)).
Lotes de \(N=500\), plan de muestreo doble: \(n_1=10\), \(Ac_1=0\), \(Re_1=2\); \(n_2=20\), \(Ac_2=1\), \(Re_2=2\). AQL = 5 %. Durante un periodo de prueba de 10 lotes, si se rechazan al menos 2 se cancela el contrato.
N3 <- 500
n1 <- 10; Ac1 <- 0; Re1 <- 2
n2 <- 20; Ac2 <- 1; Re2 <- 2 # Ac2 y Re2 son acumulados (d1 + d2)
AQL3 <- 0.05
lotes_prueba <- 10
rech_max <- 2 # se cancela si se rechazan al menos 2 lotes
# Criterio para la distribución: tamaño máximo de muestra / lote
(n1 + n2) / N3
## [1] 0.06
Como \((n_1+n_2)/N = 0.06 \le 0.10\), se usa la distribución binomial.
Paso 1: probabilidad de aceptar un lote. Se acepta en la primera muestra si \(d_1 = 0\). Si \(d_1 = 1\) se toma la segunda muestra y se acepta si \(d_1 + d_2 \le 1\), es decir, \(d_2 = 0\). Con \(d_1 \ge 2\) se rechaza.
\[P_a = P(d_1=0) + P(d_1=1)\,P(d_2=0)\]
# Binomial
Pa_doble <- function(p) {
Pa_1 <- pbinom(Ac1, n1, p) # acepta en la 1a muestra: P(d1 = 0)
Pa_2 <- 0
for (d1 in (Ac1 + 1):(Re1 - 1)) { # pasa a la 2a muestra: d1 = 1
Pa_2 <- Pa_2 + dbinom(d1, n1, p) * pbinom(Ac2 - d1, n2, p)
}
Pa_1 + Pa_2
}
Pa_3 <- Pa_doble(AQL3) # prob. de aceptar un lote con p = 5%
Pr_3 <- 1 - Pa_3 # prob. de rechazar un lote con p = 5%
Pa_3
## [1] 0.7117047
Pr_3
## [1] 0.2882953
Paso 2: probabilidad de cancelar el contrato. Sea \(X\) el número de lotes rechazados entre los 10 del periodo de prueba, \(X \sim \text{Binomial}(10, P_r)\). El contrato se cancela si \(X \ge 2\):
\[P(\text{cancelar}) = P(X \ge 2) = 1 - P(X \le 1)\]
P_cancelar <- 1 - pbinom(rech_max - 1, lotes_prueba, Pr_3)
P_cancelar
## [1] 0.8315946
Respuesta. Aunque el productor cumpla el nivel de calidad pactado (5 %), la probabilidad de que el contrato sea cancelado es de aproximadamente 0.8316 (≈ 83.2 %). Cada lote se rechaza con probabilidad cercana a 0.288, y con 10 lotes de prueba es muy probable que se rechacen al menos 2. El plan es muy riesgoso para el productor.
P3 <- seq(0.000, 0.300, 0.002)
Pa_curva <- Pa_doble(P3)
P_cancelar_curva <- 1 - pbinom(rech_max - 1, lotes_prueba, 1 - Pa_curva)
par(mfrow = c(1, 2))
# 1. Curva OC del plan doble
plot(P3, Pa_curva,
type = "l", lwd = 2,
main = "OC plan doble",
xlab = "Proporción de defectos",
ylab = "Pa")
abline(v = AQL3, col = 2, lwd = 2, lty = 3)
abline(h = Pa_3, col = 2, lwd = 2, lty = 3)
# 2. Probabilidad de cancelar el contrato
plot(P3, P_cancelar_curva,
type = "l", lwd = 2,
main = "Probabilidad de cancelar el contrato",
xlab = "Proporción de defectos",
ylab = "P(cancelar)")
abline(v = AQL3, col = 2, lwd = 2, lty = 3)
abline(h = P_cancelar, col = 2, lwd = 2, lty = 3)
par(mfrow = c(1, 1))