knitr::opts_chunk$set(
  dev = "png",
  dpi = 150,
  fig.asp = 0.618,
  fig.width = 5,
  out.width = "60%",
  fig.align = "center",
  comment = NA,
  collapse = TRUE,
  comment = "#>"
)
library(qcr)

Exploramos los datos de la base pistonrings

Los datos están en el data frame pistonrings que consta de 200 observaciones medidas en 25 muestras cada una de tamaño 5.

data(pistonrings)
attach(pistonrings)
summary(pistonrings)
boxplot(diameter ~ sample)
plot(sample, diameter, cex=0.7)
lines(tapply(diameter,sample,mean))
detach(pistonrings)

Gráficos de control de la calidad univariantes

Gráficos para la media y el rango

x <- droplevels(pistonrings[1:125,])
res.qcs <- qcs.xbar(x, data.name="pistonrings", std.dev = "UWAVE-R")
plot(res.qcs, title = expression(paste("Gráfico de control para pistonrings:", bar(x)," ")))

Gráficos R

x <- droplevels(pistonrings[1:125,])
res.qcs <- qcs.R(x, data.name="pistonrings",std.dev = "UWAVE-R")
plot(res.qcs, title = "Gráfico de control para pistonrings: R")

Gráficos para la media y la desviación estándar

x <- droplevels(pistonrings[1:125,])
res.qcs <- qcs.xbar(x, data.name = "pistonrings", std.dev = "UWAVE-SD")
plot(res.qcs, title = expression(paste("Gráfico de control para pistonrings:", bar(x)," ")))

Gráfico s

x <- droplevels(pistonrings[1:125,])
res.qcs <- qcs.S(x, data.name = "pistonrings", std.dev = "UWAVE-SD")
plot(res.qcs, title = "Gráfico de control para pistonrings: S")

Gráficos $p$

Datos

Jugo de naranja (orangejuice): Es un data frame con 54 Observaciones y 4 variables. Donde se mide el jugo de naranja concentrado congelado que se envasa en latas de cartón de 6 oz. Estas latas se forman en una máquina de hilatura. Una lata es inspeccionado para determinar si, cuando se llena, el líquido puede derramarse ya sea en la costura lateral o alrededor de la articulación de la parte inferior. Si esto ocurre, una lata se considera no conforme.

Se tomaron 30 muestras de 50 latas cada una en intervalos de media hora durante un período de tres turnos (la máquina estaba en funcionamiento continuo). A partir de la muestra 15 se utiliza un nuevo bacth de stock.

Las variables del data frame son:

data(orangejuice)
str(orangejuice)

datos.qcd <- qcd(data = orangejuice, var.index = 1, sample.index = 2,
                sizes = orangejuice$size, type.data = "atributte")

res.qcs <- qcs.p(datos.qcd)
summary(res.qcs)
plot(res.qcs)

datos.qcs <- qcs.p(orangejuice[orangejuice$trial,c(1,2)], sizes = orangejuice[orangejuice$trial,3])
plot(datos.qcs)

Gráfico np

data(orangejuice)
str(orangejuice)
datos.qcd <- qcd(data = orangejuice, var.index = 1, sample.index = 2,
                sizes = orangejuice$size, type.data = "atributte")

res.qcs <- qcs.np(datos.qcd)
summary(res.qcs)
plot(res.qcs)

datos.qcs <- qcs.np(orangejuice[orangejuice$trial,c(1,2)], sizes = orangejuice[orangejuice$trial,3])
plot(datos.qcs)

Gráfico c

Datos

Placas impresas (Circuit boards data): Número de no conformidades observadas en 26 muestras sucesivas de 100 placas de circuitos impresos. Muestra 6 y 20 están fuera de los límites de control. Muestra 6 fue examinado por un nuevo inspector que no había reconocido varios tipos de no conformidades.

Además, el número inusualmente grande de las no conformidades en la muestra 20 se debío a un problema de control de la temperatura en la máquina de soldadura, que fue reparado subsequentemente. Los últimos 20 muestras son otras muestras recogidas en las unidades de inspección (cada una formada por 100 paneles). Las variables del data frame son:

data(circuit)
str(circuit)
datos <- circuit
datos$sample <- 1:length(datos$x)
str(datos)

datos.qcd <- qcd(data = datos, var.index = 1,sample.index = 2,
                sizes = 100, type.data = "atributte")
res.qcs <- qcs.c(datos.qcd)
summary(res.qcs)
plot(res.qcs)

Gráfico Cusum

data(pistonrings)
res.qcd <- qcd(pistonrings, type.data = "dependence")
res.qcs <- qcs.cusum(res.qcd, type = "cusum")
summary(res.qcs)
plot(res.qcs)

Gráfico Ewma

 data(pistonrings)
 res.qcd <- qcd(pistonrings, type.data = "dependence")
 res.qcs <- qcs.ewma(res.qcd, type = "ewma")
 summary(res.qcs)
 plot(res.qcs)

Ejemplos Gráfico para la media

En la siguiente sección se presentan gráficos de control para monitorizar la tendencia central de la variable de calidad: diamétro de los aros de los pistones.

Estabilizando el proceso

Se realiza un gráfico de medias para monitorizar el diámetro de los piston rings:

str(pistonrings)
pistonrings.qcd<-qcd(pistonrings)
class(pistonrings.qcd)

res.qcs <- qcs.xbar(pistonrings.qcd)
plot(res.qcs,title="Control Chart Xbar for pistonrings I", std.dev = "UWAVE-R")
summary(res.qcs)  

Se crea el objeto qcd (Quality Control Data) y el objeto qcs (Quality Control Statistics) del tipo xbar.

Con el comando summary se obtienen las estimaciones de la media y la varianza así como los límites de control y con el comando plot se realiza el correspondiente gráfico de control.

Además para indicar que el tipo de estimación de la varianza es por medio de Rangos, en la opción std.dev = "UWAVE-R" (método de estimación por defecto).

Se puede observar tres puntos que indican que el proceso está fuera de control. Dos de estos salen fuera de los límites de control y un punto que está dentro de los límites pero corresponde a una racha.

Por tanto, el proceso no esta bajo control. Se utiliza la función state.control que permite eliminar los puntos fuera de control y adempás devuelve un objeto del tipo qcd que se utiliza para construir un nuevo gráfico de control.

res.qcd <- state.control(res.qcs)
res.qcs <- qcs.xbar(res.qcd)
plot(res.qcs,title="Control Chart Xbar for pistonrings II")
summary(res.qcs)  

Aún existe un punto fuera de los límites de control. Se utiliza la función state.control para la eliminación de puntos fuera de control y se estiman los límites de control hasta que el proceso este bajo control, es decir, no existan puntos fuera de los límites o rachas.

res.qcd <- state.control(res.qcs)
res.qcs <- qcs.xbar(res.qcd)
plot(res.qcs,title="Control Chart Xbar for pistonrings III")
summary(res.qcs)  

Monitoriando un proceso

En este ejemplo se parte de un proceso bajo control (Fase I) y una vez calculado los límites se realiza la monitorización del proceso (Fase II). Para la Fase I se considera las primeras 25 muestras de los datos de piston rings y para la Fase II se utilizan el resto de las muestras.

x <- droplevels(pistonrings[1:125,])
y <- droplevels(pistonrings[126:200,])

res.qcs <- qcs.xbar(x, data.name="Control Chart Xbar for pistonrings")
plot(res.qcs)

res.qcs <- qcs.add(x = res.qcs, value = y[,c(1,2)]) 
plot(res.qcs)
summary(res.qcs)

Límites de alerta

x <- droplevels(pistonrings[1:125,])
res.qcs <- qcs.xbar(x, data.name="Control Chart Xbar for pistonrings")
plot(res.qcs,conf.nsigma.alert=2)


mflores72000/qcr documentation built on July 1, 2023, 9:17 p.m.