Taller_Punto4

Author

Juan David Caballero Velasco

DATOS

library(qcc)
Package 'qcc' version 2.7
Type 'citation("qcc")' for citing this R package in publications.

Integrantes: Juan Caballero, Nicol Muñoz, Nohemi Castañeda, Anibal Tamayo

PUNTO_1

# x = número de reclamaciones no conformes por día
e <- c(0, 3, 4, 6, 5, 2, 8, 9, 4, 2,
       6, 4, 8, 0, 7, 20, 6, 1, 5, 7)

# Cada día se examinan 50 reclamaciones
n <- 50

# Número de días
Dias <- 1:length(e)
# a) CÁLCULO DE LÍMITES PARA EL GRÁFICO p INICIAL

# Fracción no conforme de cada día
p_i <- e / n

# Promedio de fracciones no conformes
p_barra <- sum(e) / (length(e) * n)

# Desviación estándar para gráfico p
sigma_p <- sqrt((p_barra * (1 - p_barra)) / n)

# Límites de control
LIC_p <- max(0, p_barra - 3 * sigma_p)
LC_p  <- p_barra
LSC_p <- p_barra + 3 * sigma_p

# Mostrar resultados
cat("a) GRÁFICO p INICIAL\n")
a) GRÁFICO p INICIAL
cat("p barra =", round(p_barra, 6), "\n")
p barra = 0.107 
cat("LIC =", round(LIC_p, 6), "\n")
LIC = 0 
cat("LC  =", round(LC_p, 6), "\n")
LC  = 0.107 
cat("LSC =", round(LSC_p, 6), "\n\n")
LSC = 0.238146 
# b) GRÁFICO p INICIAL EN R

par(mar = c(6, 5, 4, 6))  # margen derecho para etiquetas

plot(Dias, p_i,
     type = "b",
     pch = 19,
     lwd = 1.5,
     ylim = c(0, max(p_i, LSC_p) + 0.05),
     xlab = "Día",
     ylab = "Fracción de reclamaciones no conformes",
     main = "Gráfico de Control p Inicial\nFracción de reclamaciones no conformes",
     xaxt = "n")

axis(1, at = Dias, labels = Dias)

abline(h = LIC_p, lty = 2, lwd = 1.5)
abline(h = LC_p,  lty = 1, lwd = 1.5)
abline(h = LSC_p, lty = 2, lwd = 1.5)

# Identificar puntos fuera de control
fuera_control <- which(p_i < LIC_p | p_i > LSC_p)

# Marcar puntos fuera de control
points(Dias[fuera_control], p_i[fuera_control],
       pch = 19, cex = 1.5)

text(Dias[fuera_control], p_i[fuera_control],
     labels = paste("Día", fuera_control),
     pos = 3,
     cex = 0.8)

# Etiquetas en español
par(xpd = TRUE)
text(x = max(Dias) + 0.5, y = LIC_p, labels = "LIC", pos = 4, cex = 0.9)
text(x = max(Dias) + 0.5, y = LC_p,  labels = "LC",  pos = 4, cex = 0.9)
text(x = max(Dias) + 0.5, y = LSC_p, labels = "LSC", pos = 4, cex = 0.9)

par(xpd = FALSE)

# Conclusión del gráfico p inicial
cat("b) ANÁLISIS DEL GRÁFICO p INICIAL\n")
b) ANÁLISIS DEL GRÁFICO p INICIAL
if(length(fuera_control) == 0){
  cat("El proceso está bajo control estadístico.\n\n")
} else {
  cat("El proceso NO está bajo control estadístico.\n")
  cat("Punto(s) fuera de control: día(s)", fuera_control, "\n\n")
}
El proceso NO está bajo control estadístico.
Punto(s) fuera de control: día(s) 16 
# c) DEPURACIÓN DE DATOS Y NUEVOS LÍMITES PARA GRÁFICO p


# Se eliminan los puntos fuera de control
x_dep <- e[-fuera_control]
dias_dep <- Dias[-fuera_control]

# Fracción no conforme depurada
p_i_dep <- x_dep / n

# Nueva p barra
p_barra_dep <- sum(x_dep) / (length(x_dep) * n)

# Nueva desviación estándar
sigma_p_dep <- sqrt((p_barra_dep * (1 - p_barra_dep)) / n)

# Nuevos límites
LIC_p_dep <- max(0, p_barra_dep - 3 * sigma_p_dep)
LC_p_dep  <- p_barra_dep
LSC_p_dep <- p_barra_dep + 3 * sigma_p_dep

# Mostrar resultados depurados
cat("c) GRÁFICO p DEPURADO\n")
c) GRÁFICO p DEPURADO
cat("Se eliminó el día:", fuera_control, "\n")
Se eliminó el día: 16 
cat("Nueva p barra =", round(p_barra_dep, 6), "\n")
Nueva p barra = 0.091579 
cat("LIC =", round(LIC_p_dep, 6), "\n")
LIC = 0 
cat("LC  =", round(LC_p_dep, 6), "\n")
LC  = 0.091579 
cat("LSC =", round(LSC_p_dep, 6), "\n\n")
LSC = 0.21395 
# Gráfico p depurado
par(mar = c(6, 5, 4, 6))

plot(dias_dep, p_i_dep,
     type = "b",
     pch = 19,
     lwd = 1.5,
     ylim = c(0, max(p_i_dep, LSC_p_dep) + 0.05),
     xlab = "Día depurado",
     ylab = "Fracción de reclamaciones no conformes",
     main = "Gráfico de Control p Depurado\nFracción de reclamaciones no conformes",
     xaxt = "n")

axis(1, at = dias_dep, labels = dias_dep)

abline(h = LIC_p_dep, lty = 2, lwd = 1.5)
abline(h = LC_p_dep,  lty = 1, lwd = 1.5)
abline(h = LSC_p_dep, lty = 2, lwd = 1.5)

par(xpd = TRUE)
text(x = max(dias_dep) + 0.5, y = LIC_p_dep, labels = "LIC", pos = 4, cex = 0.9)
text(x = max(dias_dep) + 0.5, y = LC_p_dep,  labels = "LC",  pos = 4, cex = 0.9)
text(x = max(dias_dep) + 0.5, y = LSC_p_dep, labels = "LSC", pos = 4, cex = 0.9)
par(xpd = FALSE)

mtext(paste("Se eliminó el día", fuera_control, "por estar fuera de control"),
      side = 1, line = 4, cex = 0.85)

# d) GRÁFICO np CON DATOS DEPURADOS

# Línea central del gráfico np
LC_np <- n * p_barra_dep

# Desviación estándar del gráfico np
sigma_np <- sqrt(n * p_barra_dep * (1 - p_barra_dep))

# Límites de control np
LIC_np <- max(0, LC_np - 3 * sigma_np)
LSC_np <- LC_np + 3 * sigma_np

# Mostrar resultados np

cat("d) GRÁFICO np DEPURADO\n")
d) GRÁFICO np DEPURADO
cat("LIC =", round(LIC_np, 6), "\n")
LIC = 0 
cat("LC  =", round(LC_np, 6), "\n")
LC  = 4.578947 
cat("LSC =", round(LSC_np, 6), "\n\n")
LSC = 10.69749 
# Gráfico np depurado
par(mar = c(6, 5, 4, 6))

plot(dias_dep, x_dep,
     type = "b",
     pch = 19,
     lwd = 1.5,
     ylim = c(-0.5, LSC_np + 1),
     xlab = "Día depurado",
     ylab = "Número de reclamaciones no conformes",
     main = "Gráfico de Control np Depurado\nNúmero de reclamaciones no conformes por día",
     xaxt = "n")

axis(1, at = dias_dep, labels = dias_dep)

abline(h = LIC_np, lty = 2, lwd = 1.5)
abline(h = LC_np,  lty = 1, lwd = 1.5)
abline(h = LSC_np, lty = 2, lwd = 1.5)

par(xpd = TRUE)
text(x = max(dias_dep) + 0.6, y = LIC_np, labels = "LIC", pos = 4, cex = 0.9)
text(x = max(dias_dep) + 0.6, y = LC_np,  labels = "LC",  pos = 4, cex = 0.9)
text(x = max(dias_dep) + 0.6, y = LSC_np, labels = "LSC", pos = 4, cex = 0.9)
par(xpd = FALSE)

mtext(paste("Se eliminó el día", fuera_control, "por estar fuera de control"),
      side = 1, line = 4, cex = 0.85)

# CONCLUSIÓN FINAL
cat("CONCLUSIÓN FINAL\n")
CONCLUSIÓN FINAL
cat("El gráfico p inicial muestra que el proceso no está bajo control estadístico,\n")
El gráfico p inicial muestra que el proceso no está bajo control estadístico,
cat("debido a que el día", fuera_control, "supera el límite superior de control.\n")
debido a que el día 16 supera el límite superior de control.
cat("Suponiendo que existe una causa asignable, se elimina este punto y se recalculan\n")
Suponiendo que existe una causa asignable, se elimina este punto y se recalculan
cat("los límites de control. Con los datos depurados, el gráfico np presenta una\n")
los límites de control. Con los datos depurados, el gráfico np presenta una
cat("línea central de", round(LC_np, 4), ", un LIC de", round(LIC_np, 4),
    "y un LSC de", round(LSC_np, 4), ".\n")
línea central de 4.5789 , un LIC de 0 y un LSC de 10.6975 .
cat("Después de la depuración, el proceso queda bajo control estadístico.\n")
Después de la depuración, el proceso queda bajo control estadístico.

PUNTO_2

# DEFINO LOS DATOS DEL PROBLEMA
aplicaciones <- c(200, 250, 240, 300, 200, 250, 246, 258, 275, 274, 
                  219, 238, 250, 302, 219, 246, 251, 273, 245, 260)
tardes <- c(3, 4, 2, 5, 2, 4, 3, 5, 2, 1, 0, 10, 4, 6, 20, 3, 6, 7, 3, 1)

# GRAFICO CON LIMITES VARIABLES
# LIMITES PARA CADA DIA (n_i)
grafico_a <- qcc(data = tardes, 
                 sizes = aplicaciones, 
                 type = "p", 
                 title = "Gráfico de Control p (Límites Variables)")

# LIMITES DE CADA DIA CALCULADOS
print(grafico_a$limits)
 LCL        UCL
   0 0.04658227
   0 0.04358741
   0 0.04411061
   0 0.04137670
   0 0.04658227
   0 0.04358741
   0 0.04379286
   0 0.04319093
   0 0.04240662
   0 0.04245073
   0 0.04532379
   0 0.04421919
   0 0.04358741
   0 0.04129987
   0 0.04532379
   0 0.04379286
   0 0.04353681
   0 0.04249508
   0 0.04384501
   0 0.04309468
# PUNTO B: EL PROCESO ESTA EN CONTROL?

plot(grafico_a, 
     title = "Gráfico de Control: Evaluación de Control Estadístico",
     xlab = "Día", 
     ylab = "Fracción de solicitudes tardías")

# EXTRAER PUNTOS FUERA DE CONROL
fuera_de_control <- which(grafico_a$violations != 0)

if(length(fuera_de_control) > 0) {
  cat("El proceso NO está en control estadístico. Puntos fuera de control en los días:", fuera_de_control, "\n")
} else {
  cat("El proceso parece estar en control estadístico.\n")
}
El proceso NO está en control estadístico. Puntos fuera de control en los días: 1 2 
# PUNTO C LINEA CNTRAL Y CALCULOS PARA LOS LIMITES DE CONTROL

#  IDENTIFICAR LAS CAUSAS
tardes_limpias <- tardes[-fuera_de_control]
aplicaciones_limpias <- aplicaciones[-fuera_de_control]

# NUEVA LINEA CENTRAL
p_nueva <- sum(tardes_limpias) / sum(aplicaciones_limpias)
cat("La nueva línea central para monitoreo es:", p_nueva, "\n")
La nueva línea central para monitoreo es: 0.01847778 
grafico_c <- qcc(data = tardes_limpias, 
                 sizes = aplicaciones_limpias, 
                 type = "p", 
                 center = p_nueva,
                 title = "Gráfico de Control: Monitoreo Futuro (Sin Causas Asignables)")

# NUEVOS LIMITES DE CONTROL
print("Nuevos límites de control para el próximo periodo:")
[1] "Nuevos límites de control para el próximo periodo:"
print(grafico_c$limits)
 LCL        UCL
   0 0.04455676
   0 0.04180353
   0 0.04704588
   0 0.04402986
   0 0.04423676
   0 0.04363059
   0 0.04284073
   0 0.04288515
   0 0.04577851
   0 0.04466611
   0 0.04402986
   0 0.04172617
   0 0.04577851
   0 0.04423676
   0 0.04397891
   0 0.04292981
   0 0.04428928
   0 0.04353366
# PUNTO D: TAMAÑO DE MUESTRA PROMEDIO

n_promedio <- mean(aplicaciones)
cat("Tamaño de muestra promedio calculado:", n_promedio, "\n")
Tamaño de muestra promedio calculado: 249.8 
# GENERACION DEL GRAFICO
grafico_d <- qcc(data = tardes, 
                 sizes = n_promedio, 
                 type = "p", 
                 title = "Gráfico p - Límites constantes (n_avg)")

# LIMITES CONSTANTES
print(grafico_d$limits)
 LCL        UCL
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
   0 0.04359756
plot(grafico_d, 
     title = "Gráfico p - Límites constantes (Tamaño Promedio)",
     xlab = "Día", 
     ylab = "Fracción de solicitudes tardías")

# PUNTO E: GRÁFICO DE CONTROL ESTANDARIZADO

grafico_e <- qcc(data = tardes, 
                 sizes = aplicaciones, 
                 type = "p", 
                 standardize = TRUE,
                 title = "Gráfico de Control Estandarizado (Z-chart)")

plot(grafico_e, 
     title = "Gráfico de Control: Z-chart",
     xlab = "Día", 
     ylab = "Valor Z")

# DIAGNOSTICADO
fuera_de_control_e <- which(abs(grafico_e$statistics) > 3)

if(length(fuera_de_control_e) > 0) {
  cat("El proceso NO está en control estadístico. Valores Z fuera de límites en días:", fuera_de_control_e, "\n")
} else {
  cat("El proceso parece estar en control estadístico.\n")
}
El proceso parece estar en control estadístico.

PUNTO_3

# 1. CARGA DE DATOS REALES (Fuente: Imagen Tabla 7.64)
cuentas <- 1:25
errores <- c(0, 2, 1, 4, 0, 1, 3, 2, 0, 1, 0, 0, 2, 
             0, 2, 1, 4, 6, 1, 1, 3, 4, 1, 0, 1)
# a) CÁLCULO DE LÍMITES INICIALES (Gráfico c)
# Promedio de errores por cuenta (c barra)
c_barra <- mean(errores) # Suma(40) / 25 = 1.6
sigma_c <- sqrt(c_barra)

# Límites de control (Enfoque 3 sigma)
LIC <- max(0, c_barra - 3 * sigma_c)
LC  <- c_barra
LSC <- c_barra + 3 * sigma_c

# Mostrar resultados iniciales

cat("a) LÍMITES DE CONTROL INICIALES (TABLA 7.64)\n")
a) LÍMITES DE CONTROL INICIALES (TABLA 7.64)
cat("c barra (Promedio) =", round(c_barra, 4), "\n")
c barra (Promedio) = 1.6 
cat("LIC =", round(LIC, 4), "\n")
LIC = 0 
cat("LC  =", round(LC, 4), "\n")
LC  = 1.6 
cat("LSC =", round(LSC, 4), "\n\n")
LSC = 5.3947 
# b) GRÁFICO DE CONTROL EN R
par(mar = c(6, 5, 4, 6))
plot(cuentas, errores, 
type = "b", pch = 19, lwd = 1.5,
     ylim = c(0, max(errores, LSC) + 1),
     xlab = "Número de Cuenta", ylab = "Número de Errores",
     main = "Gráfico de Control c: Auditoría de Cuentas\n(Datos Reales Ejercicio 3)",
     xaxt = "n")
axis(1, at = cuentas, labels = cuentas)
abline(h = LIC, lty = 2, col = "red", lwd = 1.5)
abline(h = LC,  lty = 1, col = "purple", lwd = 1.5)
abline(h = LSC, lty = 2, col = "red", lwd = 1.5)

# Identificar y marcar puntos fuera de control (Punto 18 tiene 6 errores)
fuera_DE_control <- which(errores < LIC | errores > LSC)
if(length(fuera_DE_control) > 0) {
  points(cuentas[fuera_DE_control], errores[fuera_DE_control], col = "red", pch = 19, cex = 1.5)
  text(cuentas[fuera_DE_control], errores[fuera_DE_control], 
       labels = paste("Cuenta", fuera_DE_control), pos = 3, cex = 0.8, col = "red")
}

# Etiquetas laterales
par(xpd = TRUE)
text(x = max(cuentas) + 1, y = LIC, labels = "LIC", pos = 4, cex = 0.8)
text(x = max(cuentas) + 1, y = LC,  labels = "LC",  pos = 4, cex = 0.8)
text(x = max(cuentas) + 1, y = LSC, labels = "LSC", pos = 4, cex = 0.8)

par(xpd = FALSE)

# Gráfico usando librería qcc (Estilo Ejercicio 4)
library(qcc)
qcc(errores, type = "c", title = "Gráfico c - Análisis qcc (Tabla 7.64)")

List of 11
 $ call      : language qcc(data = errores, type = "c", title = "Gráfico c - Análisis qcc (Tabla 7.64)")
 $ type      : chr "c"
 $ data.name : chr "errores"
 $ data      : num [1:25, 1] 0 2 1 4 0 1 3 2 0 1 ...
  ..- attr(*, "dimnames")=List of 2
 $ statistics: Named num [1:25] 0 2 1 4 0 1 3 2 0 1 ...
  ..- attr(*, "names")= chr [1:25] "1" "2" "3" "4" ...
 $ sizes     : int [1:25] 1 1 1 1 1 1 1 1 1 1 ...
 $ center    : num 1.6
 $ std.dev   : num 1.26
 $ nsigmas   : num 3
 $ limits    : num [1, 1:2] 0 5.39
  ..- attr(*, "dimnames")=List of 2
 $ violations:List of 2
 - attr(*, "class")= chr "qcc"
# c) DEPURACIÓN DE DATOS

cat("c) ANÁLISIS DE CONTROL Y DEPURACIÓN\n")
c) ANÁLISIS DE CONTROL Y DEPURACIÓN
if(length(fuera_DE_control) == 0){
  cat("El proceso está bajo control estadístico.\n")
  c_barra_final <- c_barra
} else {
  cat("El proceso NO está bajo control. Punto fuera:", fuera_DE_control, "\n")
  cat("La cuenta", fuera_DE_control, "supera el LSC de", round(LSC, 4), "\n")
  # Se elimina el punto 18 para recalcular
  errores_dep <- errores[-fuera_DE_control]
  c_barra_final <- mean(errores_dep)
  cat("Nueva c barra depurada (sin cuenta 18) =", round(c_barra_final, 4), "\n")
}
El proceso NO está bajo control. Punto fuera: 18 
La cuenta 18 supera el LSC de 5.3947 
Nueva c barra depurada (sin cuenta 18) = 1.4167 
# d) ANÁLISIS DE PROBABILIDADES (POISSON) - Según requerimiento [4, 5]

cat("d) ANÁLISIS DE PROBABILIDADES (POISSON)\n")
d) ANÁLISIS DE PROBABILIDADES (POISSON)
# Se usa c_barra_final (1.4167) para proyecciones futuras
prob_0 <- dpois(0, lambda = c_barra_final)
prob_1 <- dpois(1, lambda = c_barra_final)
prob_al_menos_1 <- 1 - prob_0

cat("P(X = 0 errores) =", round(prob_0, 4), "\n")
P(X = 0 errores) = 0.2425 
cat("P(X = 1 error)   =", round(prob_1, 4), "\n")
P(X = 1 error)   = 0.3436 
cat("P(X >= 1 error)  =", round(prob_al_menos_1, 4), "\n\n")
P(X >= 1 error)  = 0.7575 
# Gráfico de barras de probabilidades
x_vals <- 0:8
probs <- dpois(x_vals, lambda = c_barra_final)
barplot(probs, names.arg = x_vals, col = "orange",
        main = "Probabilidades Poisson (Media Depurada)",
        xlab = "Número de errores esperados", ylab = "Probabilidad")

Análisis Técnico de los Resultados Reales:

  1. Estado de Control: El proceso no está bajo control estadístico inicialmente. La cuenta 18 tiene un valor de 6 errores, el cual supera el Límite Superior de Control (LSC ≈ 5.39).

  2. Depuración: Siguiendo la lógica del Ejercicio 1, el código elimina la cuenta 18 y recalcula la media (cˉ) de 1.6 a 1.4167 para monitorear el próximo periodo.

  3. Probabilidades: Con la media depurada, existe una probabilidad del 24.25% de que una cuenta seleccionada al azar no tenga errores (Cero errores) y un 75.75% de que tenga al menos uno

PUNTO_4

# Candidad de dias
dias <- 1:20
# Rollos producidos
producidos <- c(18,18,24,22,22,22,20,20,20,20,18,18,18,20,20,20,24,24,22,21)
# Total imperfecciones
Imperfecciones <- c(12,14,20,18,15,12,11,15,12,10,18,14,9,10,14,13,16,18,20,17)
# PUNTO 'A' Y 'B'
# promedio defecto por rollo
promedio_z <- sum(Imperfecciones) / sum(producidos)

# diaria tasa
diaria <- Imperfecciones / producidos

# limites
LSC_z <- promedio_z + 3 * sqrt(promedio_z / producidos)
LC_z  <- promedio_z
LIC_z <- promedio_z - 3 * sqrt(promedio_z / producidos)
LIC_z <- ifelse(LIC_z < 0, 0, LIC_z)

# grafica
delta <- 0.01
plot(dias, diaria, type = "b", ylim = c(min(LIC_z) - delta, max(LSC_z) + delta),
     xlab = "Día", ylab = "Defectos por rollo", main = "a) Ancho variable")
lines(dias, LSC_z, col = "red")
lines(dias, LIC_z, col = "red")
abline(h = LC_z, col = "purple")

# Grafico con qcc
library(qcc)
qcc(data = Imperfecciones, type = "u", sizes = producidos)

List of 11
 $ call      : language qcc(data = Imperfecciones, type = "u", sizes = producidos)
 $ type      : chr "u"
 $ data.name : chr "Imperfecciones"
 $ data      : num [1:20, 1] 12 14 20 18 15 12 11 15 12 10 ...
  ..- attr(*, "dimnames")=List of 2
 $ statistics: Named num [1:20] 0.667 0.778 0.833 0.818 0.682 ...
  ..- attr(*, "names")= chr [1:20] "1" "2" "3" "4" ...
 $ sizes     : num [1:20] 18 18 24 22 22 22 20 20 20 20 ...
 $ center    : num 0.701
 $ std.dev   : num 0.837
 $ nsigmas   : num 3
 $ limits    : num [1:20, 1:2] 0.109 0.109 0.188 0.165 0.165 ...
  ..- attr(*, "dimnames")=List of 2
 $ violations:List of 2
 - attr(*, "class")= chr "qcc"
print("El proceso se encuentra bajo control estadístico. No existen puntos fuera de los límites de control superior o inferior, y no se observan patrones no aleatorios (como rachas o tendencias) que indiquen causas asignables de variación. No es necesario realizar una depuración de muestras, ya que todas las observaciones actuales representan la variabilidad natural del proceso")
[1] "El proceso se encuentra bajo control estadístico. No existen puntos fuera de los límites de control superior o inferior, y no se observan patrones no aleatorios (como rachas o tendencias) que indiquen causas asignables de variación. No es necesario realizar una depuración de muestras, ya que todas las observaciones actuales representan la variabilidad natural del proceso"
# punto c
# tamaño de muestra promedio
media <- mean(producidos)

# limites fijos
LSC_c <- promedio_z + 3 * sqrt(promedio_z / media)
LC_c  <- promedio_z
LIC_c <- promedio_z - 3 * sqrt(promedio_z / media)
LIC_c <- ifelse(LIC_c < 0, 0, LIC_c)  

print(paste("LSC:", round(LSC_c, 4)))
[1] "LSC: 1.2547"
print(paste("LC :", round(LC_c,  4)))
[1] "LC : 0.7007"
print(paste("LIC:", round(LIC_c, 4)))
[1] "LIC: 0.1468"
# grafico
delta <- 0.05
plot(dias, diaria,
     type = "b", ylim = c(LIC_c - delta, LSC_c + delta),
     xlab = "Día", ylab = "Defectos por rollo")
abline(h = LSC_c, col = "red")
abline(h = LIC_c, col = "red")
abline(h = LC_c,  col = "purple")

# punto d
# Estandarizar
Z <- (diaria - promedio_z) / sqrt(promedio_z / producidos)

# Gráfico manual
plot(dias, Z, type = "b", ylim = c(-4, 4), xlab = "Día", ylab = "Z estandarizado")
abline(h =  3, col = "red")
abline(h = -3, col = "red")
abline(h =  0, col = "purple")

# grafico con qcc
library(qcc)
qcc(data  = Imperfecciones, type  = "u", sizes = producidos, title = "Carta Z estandarizada")

List of 11
 $ call      : language qcc(data = Imperfecciones, type = "u", sizes = producidos, title = "Carta Z estandarizada")
 $ type      : chr "u"
 $ data.name : chr "Imperfecciones"
 $ data      : num [1:20, 1] 12 14 20 18 15 12 11 15 12 10 ...
  ..- attr(*, "dimnames")=List of 2
 $ statistics: Named num [1:20] 0.667 0.778 0.833 0.818 0.682 ...
  ..- attr(*, "names")= chr [1:20] "1" "2" "3" "4" ...
 $ sizes     : num [1:20] 18 18 24 22 22 22 20 20 20 20 ...
 $ center    : num 0.701
 $ std.dev   : num 0.837
 $ nsigmas   : num 3
 $ limits    : num [1:20, 1:2] 0.109 0.109 0.188 0.165 0.165 ...
  ..- attr(*, "dimnames")=List of 2
 $ violations:List of 2
 - attr(*, "class")= chr "qcc"

PUNTO ‘E’

PUNTO VENTAJA DESVENTAJA

Punto ‘A’

Variable (Escalones)

Es el método más riguroso estadísticamente. Al ajustar los límites según el tamaño real de producción de cada día, reduce tanto las falsas alarmas como los puntos fuera de control no detectados Cuando el tamaño de muestra cambia mucho entre días, los límites se vuelven difíciles de interpretar visualmente y requieren software para su calculo

Punto ‘C’

Promedio (Líneas rectas)

Al tener límites constantes, el operario puede memorizarlos y monitorear el proceso sin necesidad de recalcular nada. Ideal para comunicar resultados a personal no técnico Puede dar falsas alarmas si la producción varía mucho

Punto ‘D’

Estandarización (Z)

Al transformar todo a una escala común (media 0, desviación 1), permite comparar el desempeño de diferentes líneas de producción o diferentes productos en un mismo gráfico El valor Z no tiene unidades físicas, por lo que un operario no puede relacionarlo directamente con el número de imperfecciones observadas en un rollo
# punto f
# Tasa actual y tasa con reducción del 10%
lambda_actual <- promedio_z 
lambda_nuevo <- promedio_z * 0.90

# Valores de X (número de defectos por rollo)
x <- 0:5

# Cálculo de probabilidades
prob_actual <- dpois(x, lambda = lambda_actual)
prob_nuevo <- dpois(x, lambda = lambda_nuevo)

# 4. Gráfico de barras
barplot(rbind(prob_actual, prob_nuevo), beside = TRUE, 
        names.arg = x, col = c("orange", "brown"),
        main = "Efecto de la reducción del 10% en defectos",
        xlab = "Defectos por rollo", ylab = "Probabilidad")
legend("topright", legend=c("Actual", "Mejorado (-10%)"), fill=c("orange", "brown"))

print("Con el lambda original, la mayor probabilidad se concentra alrededor de la media de defectos por rollo.")
[1] "Con el lambda original, la mayor probabilidad se concentra alrededor de la media de defectos por rollo."
print("Al reducir el numero medio de defectos en un 10%, la distribucion se desplaza hacia la izquierda, lo que indica menor probabilidad de encontrar muchos defectos por rollo y mayor probabilidad de encontrar pocos.")
[1] "Al reducir el numero medio de defectos en un 10%, la distribucion se desplaza hacia la izquierda, lo que indica menor probabilidad de encontrar muchos defectos por rollo y mayor probabilidad de encontrar pocos."