En el control de calidad industrial, es fundamental identificar el origen de defectos en productos. El Teorema de Bayes permite actualizar probabilidades de manera secuencial a medida que se obtiene nueva evidencia.
En este caso, se analiza un sistema de proveedores donde, a partir de inspecciones sucesivas, se ajusta la probabilidad de que cada proveedor sea responsable de defectos.
Aplicar el Teorema de Bayes de forma secuencial para:
# ====================================================
# BAYES — Caso 2: Control de Calidad + Actualización
# Secuencial (múltiples inspecciones)
# ====================================================
# Función que construye la tabla bayesiana
bayes_tabla <- function(prior, likel, estados) {
conjunta <- prior * likel # Probabilidad conjunta
P_E <- sum(conjunta) # Probabilidad de la evidencia
posterior <- conjunta / P_E # Probabilidad posterior
# Construcción de tabla resumen
df <- data.frame(
Estado = estados,
Prior = round(prior, 4),
Likel = round(likel, 4),
Conjunta = round(conjunta, 4),
P_E = round(P_E, 4),
Posterior = round(posterior, 4)
)
# Retorna tabla y valores
list(tabla = df, posterior = posterior, P_E = P_E)
}
Esta función automatiza el cálculo del Teorema de Bayes, permitiendo actualizar probabilidades en cada etapa.
# Estados posibles (proveedores)
estados <- c("Proveedor A", "Proveedor B", "Proveedor C")
# Probabilidades iniciales
prior <- c(0.60, 0.30, 0.10)
# Probabilidad de defecto según proveedor
p_defecto <- c(0.01, 0.04, 0.12)
# Probabilidad de conformidad
p_conforme <- c(0.99, 0.96, 0.88)
Se modela un sistema donde cada proveedor tiene distinta probabilidad de generar defectos.
# Inspección 1: pieza DEFECTUOSA
cat("=== INSPECCIÓN 1: DEFECTUOSA ===\n")
## === INSPECCIÓN 1: DEFECTUOSA ===
# Aplicación de Bayes
res1 <- bayes_tabla(prior, p_defecto, estados)
# Mostrar tabla
print(res1$tabla[, c("Estado","Prior","Likel","Conjunta","Posterior")])
## Estado Prior Likel Conjunta Posterior
## 1 Proveedor A 0.6 0.01 0.006 0.2
## 2 Proveedor B 0.3 0.04 0.012 0.4
## 3 Proveedor C 0.1 0.12 0.012 0.4
Después de detectar un defecto:
# ACTUALIZACIÓN SECUENCIAL:
# La posterior de hoy es el prior de mañana.
# Inspección 2: segunda pieza DEFECTUOSA
cat("\n=== INSPECCIÓN 2: DEFECTUOSA (prior actualizado) ===\n")
##
## === INSPECCIÓN 2: DEFECTUOSA (prior actualizado) ===
# Nueva actualización
res2 <- bayes_tabla(res1$posterior, p_defecto, estados)
# Mostrar tabla
print(res2$tabla[, c("Estado","Prior","Likel","Posterior")])
## Estado Prior Likel Posterior
## 1 Proveedor A 0.2 0.01 0.0303
## 2 Proveedor B 0.4 0.04 0.2424
## 3 Proveedor C 0.4 0.12 0.7273
La evidencia acumulada refuerza la probabilidad de proveedores defectuosos.
# Inspección 3: pieza CONFORME
cat("\n=== INSPECCIÓN 3: CONFORME ===\n")
##
## === INSPECCIÓN 3: CONFORME ===
# Actualización con evidencia positiva
res3 <- bayes_tabla(res2$posterior, p_conforme, estados)
# Mostrar tabla
print(res3$tabla[, c("Estado","Prior","Likel","Posterior")])
## Estado Prior Likel Posterior
## 1 Proveedor A 0.0303 0.99 0.0332
## 2 Proveedor B 0.2424 0.96 0.2578
## 3 Proveedor C 0.7273 0.88 0.7090
Un resultado conforme reduce la probabilidad de proveedores altamente defectuosos.
# Visualización de la evolución de posteriors
library(ggplot2); library(tidyr)
# Construcción de datos
evolución <- data.frame(
Inspección = c("Prior", "Tras Def1", "Tras Def2", "Tras Conf"),
A = c(prior[1], res1$posterior[1], res2$posterior[1], res3$posterior[1]),
B = c(prior[2], res1$posterior[2], res2$posterior[2], res3$posterior[2]),
C = c(prior[3], res1$posterior[3], res2$posterior[3], res3$posterior[3])
)
# Convertir formato
df_long <- pivot_longer(evolución, -Inspección,
names_to = "Proveedor", values_to = "Probabilidad")
# Orden de factores
df_long$Inspección <- factor(df_long$Inspección,
levels = c("Prior","Tras Def1","Tras Def2","Tras Conf"))
# Gráfico
ggplot(df_long, aes(x = Inspección, y = Probabilidad,
color = Proveedor, group = Proveedor)) +
geom_line(linewidth = 1.2) +
geom_point(size = 3.5) +
geom_label(aes(label = paste0(round(Probabilidad * 100, 1), "%")),
size = 3, show.legend = FALSE) +
scale_color_manual(values = c(A="#3a7fbd", B="#d97706", C="#b0305a")) +
scale_y_continuous(labels = function(x) paste0(round(x*100,0),"%"), limits=c(0,1)) +
labs(title = "Actualización Secuencial Bayesiana — Control de Calidad",
subtitle = "La posterior de cada inspección es el prior de la siguiente",
y = "P(Proveedor | Evidencia acumulada)") +
theme_minimal()
El gráfico muestra cómo cambian las probabilidades a medida que se acumula evidencia.
El análisis demuestra que la actualización secuencial de Bayes es una herramienta poderosa en control de calidad. Permite incorporar evidencia progresiva y mejorar la identificación del origen de defectos.
Montgomery, D. C. (2013). Introduction to statistical quality control (7th ed.). Wiley.
Ross, S. M. (2014). Introduction to probability models (11th ed.). Academic Press.
Devore, J. L. (2016). Probability and statistics for engineering and the sciences (9th ed.). Cengage Learning.
Walpole, R. E., Myers, R. H., Myers, S. L., & Ye, K. (2012). Probabilidad y estadística para ingeniería y ciencias (9a ed.). Pearson.