Está en la página 1de 57

Control Estadístico de la Calidad con el paquete qcr

Miguel Flores
21 de Noviembre de 2016

Contents
Resumen 2

Introducción 2

Software R 2
Razones para elegir R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Datos pistonrings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Gráficos de control de la calidad univariantes 4


Gráficos para la media y el rango . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Gráficos R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Gráficos para la media y la desviación estándar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Gráfico s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Gráficos p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Gráfico np . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Gráfico c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Gráfico Cusum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Gráfico Ewma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Ejemplos Gráfico para la media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Monitoriando un proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Límites de alerta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Gráficos de Control de la Calidad Multivariantes 25


Hotelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Gráficos MCUSUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Gráficos MEWMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Gráficos de control de la calidad no paramétricos 32


Profundidad de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Gráfico de control r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Gráfico de control Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Gráfico de control S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Análisis de capacidad de un proceso 40


Asumiendo una distribución normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Non Normal parametric process capability analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Análisis de capacidad no paramétrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Un análisis completo del proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

1
Resumen

Introducción
summary(res.qcs) plot(res.qcs)

Software R

Razones para elegir R

• R es un lenguaje y entorno de programación libre lo que permite que los usuarios lo extiendan definiendo
sus propias funciones (disponible además en Linux, Mac OS, Windows).
• La comunidad científica internacional ha elegido R como la “lingua franca” del análisis de datos.
• La capacidad de combinar análisis “pre-empaquetados” con análisis ad-hoc, específicos para una situación
determinada.
• Posibilidad de crear gráficos de alta calidad.
• La comunidad de R es muy dinámica e integrada por estadísticos de gran renombre.
• Extensiones específicas a áreas nuevas: Ingenierías, Informática, Control de Calidad, Big Data, . . .

Datos pistonrings

Cargamos la libraría qcr


library(qcr)
## Loading required package: qcc
## Package 'qcc', version 2.6
## Type 'citation("qcc")' for citing this R package in publications.
## Loading required package: fda.usc
## Loading required package: fda
## Loading required package: splines
## Loading required package: Matrix
##
## Attaching package: 'fda'
## The following object is masked from 'package:graphics':
##
## matplot
## Loading required package: MASS
## Loading required package: mgcv
## Loading required package: nlme
## This is mgcv 1.8-12. For overview type 'help("mgcv-package")'.
## Loading required package: rpart
## Loading required package: mvtnorm
## Loading required package: qualityTools
## Loading required package: Rsolnp
##
## Attaching package: 'qualityTools'
## The following object is masked from 'package:stats':
##
## sigma
##
## Package qcr: Quality Control Review

2
## version 1.0 (built on 2016-11-22).
## Copyright Miguel A. Flores Sanchez 2016.

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)
## diameter sample trial
## Min. :73.97 Min. : 1.00 Mode :logical
## 1st Qu.:74.00 1st Qu.:10.75 FALSE:75
## Median :74.00 Median :20.50 TRUE :125
## Mean :74.00 Mean :20.50 NA's :0
## 3rd Qu.:74.01 3rd Qu.:30.25
## Max. :74.04 Max. :40.00
boxplot(diameter ~ sample)
74.03
74.01
73.99
73.97

1 3 5 7 9 12 15 18 21 24 27 30 33 36 39

plot(sample, diameter, cex=0.7)


lines(tapply(diameter,sample,mean))

3
74.03
74.01
diameter

73.99
73.97

0 10 20 30 40

sample

detach(pistonrings)

Gráficos de control de la calidad univariantes

Gráficos para la media y el rango

• Calcular la media y el rango de cada muestra, x̄i y Ri , respectivamente i = 1, . . . , k.


• Calcular la media y el rango global. Puesto que Ri /d2 es un estimador insesgado de σ, y definiendo
P
Ri
R̄ = i
k
se utilizará P
R̄ Ri
= i
d2 d2 k
como estimador centrado de la desviación típica teórica.
• Contrastar si cada valor x̄i debe estar en el intervalo
 
¯ 3R̄ ¯ 3R̄
x̄ − √ , x̄ + √
nd2 nd2

con probabilidad aproximada del 97.73% (utilizando intervalos de amplitud 3σ)


• Podremos encontrar los valores de los límites de control 3σ para la media como:

4
¯−
LCL = x̄ √ 3 R̄ ¯ − A2 R̄
= x̄
nd2

¯
CL = x̄
¯+
U CL = x̄ √ 3 R̄ ¯ + A2 R̄
= x̄
nd2
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áfico de control para pistonrings:x


74.015

UCL
74.010
74.005

CL
74.000
x

73.995
73.990

LCL

1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24

Sample
Chart of control x

Gráficos R

• Dado n, encontrar los valores D3 y D4 y calcular R̄. Con todo ello obtener los límites inferior D3 R̄ y
superior D4 R̄ de control.
• Construir un gráfico que presente en abscisas y en ordenadas los valores Ri . Trazar también la línea
central (R̄) y los límites de control (D3 R̄ y D4 R̄).
• Si alguna de los rangos se sale de los límites de control, se admite que el proceso no está bajo control en
ese instante.
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")

5
Gráfico de control para pistonrings: R
0.05

UCL
0.04
0.03
R

CL
0.02
0.01
0.00

LCL

1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24

Sample
Chart of control R

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

• Calcular la media y la desviación típica de cada muestra, x̄i y si , respectivamente i = 1, . . . , k.


• Calcular la media y la desviación típica global. La media global x̄ ¯ resulta ser un estimador insesgado
de la media teórica. Como la desviación típica muestral es un estimador sesgado de la desviación típica
teórica, se utilizará si /c2 , siendo c2 una constante dependiente de n y por ello se utilizará
P
s̄ si
σ̂ = = i
c2 c2 k
como estimador centrado de la desviación típica teórica.}
• Contrastar si cada valor x̄i está en el intervalo
 
¯ − √3s̄ , x̄
x̄ ¯ + √3s̄
nc2 nc2

con probabilidad aproximada del 97.74%.


• Podremos encontrar los valores de los límites de control 3σ para la media como:
¯−
LCL = x̄ √ 3 s̄ ¯ − A1 s̄
= x̄
nc2

¯
CL = x̄
¯+
U CL = x̄ √ 3 s̄ ¯ + A1 s̄
= x̄
nc2

6
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 de control para pistonrings:x


74.015

UCL
74.010
74.005
74.000

CL
x

73.995
73.990

LCL

1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24

Sample
Chart of control x

Gráfico s

• Dado n, encontrar los valores B3 y B4 y calcular s̄. Con todo ello obtener los límites inferior B3 s̄ y
superior B4 s̄ de control.
• Construir un gráfico que presente en abscisas y en ordenadas los valores si . Trazar también la línea
central (s̄) y los límites de control (B3 s̄ y B4 s̄).
• Si alguna de las desviaciones típicas se sale de los límites de control, se admite que el proceso no está
bajo control en ese instante.
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")

7
Gráfico de control para pistonrings: S
0.020

UCL
0.015
0.010

CL
S

0.005
0.000

LCL

1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24

Sample
Chart of control S

Gráficos p

• Supóngase un artículo no está conforme con probabilidad p, y que los artículos producidos sucesivamente
son independientes; si seleccionamos k muestras aleatorias de n artículos, y representando por Xi al
número de artículos defectuosos, tendremos que Xi ∼ B(n, p).
p
• Sabemos que µ = np y σ = np(1 − p).
Xi
• Para cada muestra, definimos la variable aleatoria fracción disconforme muestral como p̂i = n . Observar
que p̂i seguirá una distribución binomial con varianza:
E(Xi )
E(p̂i ) = n =p
V ar(Xi ) p(1−p)
V ar(p̂i ) = n2 = n .
 q 
• Por tanto, limn→∞ p̂i = N p, p(1−p)
n .

• Si p es desconocida, la podemos estimar:


Pk
p̄ = k1 i=1 p̂i .
• Según el modelo de Shewart tendremos que:
q
LCL = p̄ − 3 p̄(1−
n
p̄)

CL = p̄
q
p̄(1−p̄)
U CL = p̄ + 3 n

8
• En caso de que el tamaño muestral (ni ) diferentes, el estimador para p ser??a:
Pk
ni p̂i
p̄ = Pi=1
k .
ni
i=1

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:
• sample (muestra): identificación de la muestra
• D: número de unidades defectuosas
• size (tamaño): tamaño de la muestra
• trial (ensayo): muestras de prueba (verdadero / falso)
data(orangejuice)
str(orangejuice)

## 'data.frame': 54 obs. of 4 variables:


## $ D : int 12 15 8 10 4 7 16 9 14 10 ...
## $ sample: int 1 2 3 4 5 6 7 8 9 10 ...
## $ size : int 50 50 50 50 50 50 50 50 50 50 ...
## $ trial : logi TRUE TRUE TRUE TRUE TRUE TRUE ...
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)

## p chart for orangejuice


##
## Summary of group statistics:
## p
## Min. :0.0400
## 1st Qu.:0.1000
## Median :0.1400
## Mean :0.1778
## 3rd Qu.:0.2400
## Max. :0.4800
##
## Group sample size: 50
## Number of groups: 54
## Center of group statistics: 0.1777778
## Standard deviation: 0.3823256
##
## Control limits:
## LCL UCL
## 0.01557078 0.3399848
##

9
## Beyond limits of control:
## [1] 0.34 0.44 0.40 0.36 0.48
##
## Violationg runs:
## [1] 0.18 0.24 0.12 0.04 0.08 0.06 0.12 0.10 0.08 0.16 0.10 0.12 0.14 0.10
## [15] 0.12 0.06 0.10
plot(res.qcs)

orangejuice
0.5
0.4

UCL
0.3
0.2

CL
p

0.1

LCL
0.0
−0.1

1 3 5 7 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54

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

10
x

UCL
0.4
0.3

CL
p

0.2
0.1

LCL
0.0

1 2 3 4 5 6 7 8 9 11 13 15 17 19 21 23 25 27 29

Sample
Chart of control p

Gráfico np

• En algunas ocasiones interesa analizar el número medio de disconformidades en lugar de su proporción;


en este caso se utilizarón los llamados gráficos NP.
• Para la construcción de este tipo de gráficos se estimarán las proporciones de la misma forma que en
los gráficos P pero se construirán los gráficos basados en la media del proceso del siguiente modo:
q
LCL = np̄ − 3 np̄(1− n
p̄)

CL = np̄
q
np̄(1−p̄)
U CL = np̄ + 3 n
data(orangejuice)
str(orangejuice)

## 'data.frame': 54 obs. of 4 variables:


## $ D : int 12 15 8 10 4 7 16 9 14 10 ...
## $ sample: int 1 2 3 4 5 6 7 8 9 10 ...
## $ size : int 50 50 50 50 50 50 50 50 50 50 ...
## $ trial : logi TRUE TRUE TRUE TRUE TRUE TRUE ...
datos.qcd <- qcd(data = orangejuice, var.index = 1, sample.index = 2,
sizes = orangejuice$size, type.data = "atributte")

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

## np chart for orangejuice


##
## Summary of group statistics:
## np
## Min. : 2.000
## 1st Qu.: 5.000
## Median : 7.000
## Mean : 8.889
## 3rd Qu.:12.000
## Max. :24.000
##
## Group sample size: 50
## Number of groups: 54
## Center of group statistics: 8.888889
## Standard deviation: 2.70345
##
## Control limits:
## LCL UCL
## 0.7785388 16.99924
##
## Beyond limits of control:
## [1] 17 22 20 18 24
##
## Violationg runs:
## [1] 9 12 6 2 4 3 6 5 4 8 5 6 7 5 6 3 5
plot(res.qcs)

12
orangejuice
25
20

UCL
15
10
np

CL
5

LCL
0
−5

1 3 5 7 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54

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

13
x

UCL
20
15
np

CL
10
5

LCL
0

1 2 3 4 5 6 7 8 9 11 13 15 17 19 21 23 25 27 29

Sample
Chart of control np

Gráfico c

• Para construir el diagrama de control C empezamos por tomar k muestras X1, X2 , . . . , Xk , de ni


unidades cada una, por ejemplo Xi = (Xi1 , . . . , Xini ). Sea u el número esperado de unidades defectuosas
en cada una de las muestras.
• Para cada muestra se calcula el número uij de defectos de la unidad Xij , j = 1, . . . , ni .
• Si denotamos por ci al número de defectos totales en la muestra i-ésima, es claro que + Por otro
Plado, si
ni
denotamos por ui al valor esperado de defectos en la muestra i-ésima, tendremos que ui = n1i j=1 uij .
Observar pues que ui = n1i ci , es decir, ci = ui ni .
• Notar además que E(ci ) = E(ui ni ) = ni E(ui ) = ni u.}
• Es frecuente suponer que el número de defectos (sucesos no habituales) en una poblacion grande sigue
una distribucion de Poisson: ci ∼ P oiss(ni u).

• Se cumplirá que limn→∞ ci = N (ni u, ni u).
• Si u = E[ui ] es desconocida, la podemos estimar:
k
1X
û = ui .
k i=1

• Según el modelo de Shewart tendremos que:



LCL = ni û − 3 ûni

14
CL = ni û

U CL = ni û + 3 ûni
• Como el tamaño muestral (ni ) es diferente para cada subgrupo, para calcular los límites podemos optar
por distintos métodos.
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:
• x : número de unidades defectuosas en 100 placas de circuito impreso (unidad de control)
• size (tamaño): tamaño de la muestra
• trial (ensayo) indicador muestra ensayo (verdadero / falso)
data(circuit)
str(circuit)

## 'data.frame': 46 obs. of 4 variables:


## $ x : int 21 24 16 12 15 5 28 20 31 25 ...
## $ sample: int 1 2 3 4 5 6 7 8 9 10 ...
## $ size : int 100 100 100 100 100 100 100 100 100 100 ...
## $ trial : logi TRUE TRUE TRUE TRUE TRUE TRUE ...
datos <- circuit
datos$sample <- 1:length(datos$x)
str(datos)

## 'data.frame': 46 obs. of 4 variables:


## $ x : int 21 24 16 12 15 5 28 20 31 25 ...
## $ sample: int 1 2 3 4 5 6 7 8 9 10 ...
## $ size : int 100 100 100 100 100 100 100 100 100 100 ...
## $ trial : logi TRUE TRUE TRUE TRUE TRUE TRUE ...
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)

## c chart for datos


##
## Summary of group statistics:
## c
## Min. : 5.00
## 1st Qu.:16.00
## Median :19.00
## Mean :19.17
## 3rd Qu.:22.00
## Max. :39.00
##
## Group sample size: 100
## Number of groups: 46

15
## Center of group statistics: 19.17391
## Standard deviation: 4.378803
##
## Control limits:
## LCL UCL
## 6.037505 32.31032
##
## Beyond limits of control:
## [1] 39 5
##
## Violationg runs:
## [1] 12 15
plot(res.qcs)

datos
40

UCL
30
20

CL
c

10

LCL
0

1 3 5 7 9 11 14 17 20 23 26 29 32 35 38 41 44

Sample
Chart of control c

Gráfico Cusum

• Los gráficos CUSUM se basan en la decisión de comprobar si el proceso está bajo control o no analizando
toda o la mayor parte de la muestra. Para este fin se usará el estadístico sr :
r
X
sr = (x̄i − µ0 ).
i=1

• Bajo supuestos de normalidad es evidente deducir la distribución del estadístico sr :


rσ 2
 
sr ∈ N r(µ − µ0 ), 0 .
n

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

## cusum chart for pistonrings


##
## Summary of group statistics:
## cusum
## Min. :73.99
## 1st Qu.:74.00
## Median :74.00
## Mean :74.00
## 3rd Qu.:74.01
## Max. :74.02
##
## Group sample size: 5
## Number of groups: 40
## Center of group statistics: 74.0036
## Standard deviation: 0.01007094
##
## Control limits:
## [1] -5 5
##
## Beyond limits of control:
## [1] 73.9902 74.0060 73.9966 74.0008 74.0074 73.9982 74.0092 73.9998
## [9] 74.0016 74.0024 73.9982 73.9922 73.9974
##
## Violationg runs:
## [1] 74.0196 74.0234 74.0128
plot(res.qcs)

17
pistonrings
10

UCL
5
Cusum

CL
0
−5

LCL

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39

Sample
Chart of control cusum

Gráfico Ewma

• En los gráficos EWMA se representan promedios de la observación contemporánea y las observaciones


anteriores, donde se da más peso a las observaciones más recientes (medias móviles yi ).
• Se define como:
yi = λxi + (1 − λ)yi−1
q
λ(1−(1−λ)2i )
• Los límites de control y la línea central son entonces: LCL = µ0 − 3σ 2−λ

LCS = µ0
q
λ(1−(1−λ)2i )
U CL = µ0 + 3σ 2−λ

• Si i es muy elevado se tiene que, aproximadamente,


q
λ
LCL = µ0 − 3σ 2−λ

LCS = µ0
q
λ
U CL = µ0 + 3σ 2−λ
data(pistonrings)
res.qcd <- qcd(pistonrings, type.data = "dependence")
res.qcs <- qcs.ewma(res.qcd, type = "ewma")
summary(res.qcs)
plot(res.qcs)

18
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)

## 'data.frame': 200 obs. of 3 variables:


## $ diameter: num 74 74 74 74 74 ...
## $ sample : int 1 1 1 1 1 2 2 2 2 2 ...
## $ trial : logi TRUE TRUE TRUE TRUE TRUE TRUE ...
pistonrings.qcd<-qcd(pistonrings)
class(pistonrings.qcd)

## [1] "qcd" "data.frame"


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

Control Chart Xbar for pistonrings I


74.02

UCL
74.01

CL
x

74.00
73.99

LCL

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39

Sample
Chart of control x
summary(res.qcs)

## xbar chart for pistonrings


##

19
## Summary of group statistics:
## xbar
## Min. :73.99
## 1st Qu.:74.00
## Median :74.00
## Mean :74.00
## 3rd Qu.:74.01
## Max. :74.02
##
## Group sample size: 5
## Number of groups: 40
## Center of group statistics: 74.0036
## Standard deviation: 0.01007094
##
## Control limits:
## LCL UCL
## 73.99009 74.01712
##
## Beyond limits of control:
## [1] 74.0196 74.0234
##
## Violationg runs:
## [1] 74.0128
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")

20
Control Chart Xbar for pistonrings II
73.990 73.995 74.000 74.005 74.010 74.015

UCL

CL
x

LCL

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37

Sample
Chart of control x
summary(res.qcs)

## xbar chart for pistonrings


##
## Summary of group statistics:
## xbar
## Min. :73.99
## 1st Qu.:74.00
## Median :74.00
## Mean :74.00
## 3rd Qu.:74.01
## Max. :74.02
##
## Group sample size: 5
## Number of groups: 37
## Center of group statistics: 74.00239
## Standard deviation: 0.009992796
##
## Control limits:
## LCL UCL
## 73.98898 74.0158
##
## Beyond limits of control:
## [1] 74.0166
##
## Number violationg runs: 0

21
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")

Control Chart Xbar for pistonrings III


74.015

UCL
74.010
74.005

CL
x

74.000
73.995
73.990

LCL

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35

Sample
Chart of control x
summary(res.qcs)

## xbar chart for pistonrings


##
## Summary of group statistics:
## xbar
## Min. :73.99
## 1st Qu.:74.00
## Median :74.00
## Mean :74.00
## 3rd Qu.:74.01
## Max. :74.01
##
## Group sample size: 5
## Number of groups: 36
## Center of group statistics: 74.00199
## Standard deviation: 0.01004347
##
## Control limits:

22
## LCL UCL
## 73.98852 74.01547
##
## Number beyond limits: 0
##
## Number violationg runs: 0

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)

Control Chart Xbar for pistonrings


74.015

UCL
74.010
74.005

CL
74.000
x

73.995
73.990

LCL

1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24

Sample
Chart of control x
res.qcs <- qcs.add(x = res.qcs, value = y[,c(1,2)])

## Warning in qcc(data = x, sizes = sizes, type = type, confidence.level =


## conf.nsigma, : 'std.dev' is not used when limits is given
plot(res.qcs)

23
Control Chart Xbar for pistonrings
74.02

UCL
74.01

CL
x

74.00
73.99

LCL

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39

Sample
Chart of control x
summary(res.qcs)

## xbar chart for Control Chart Xbar for pistonrings


##
## Summary of group statistics:
## xbar
## Min. :73.99
## 1st Qu.:74.00
## Median :74.00
## Mean :74.00
## 3rd Qu.:74.01
## Max. :74.02
##
## Group sample size: 5
## Number of groups: 40
## Center of group statistics: 74.0036
## Standard deviation: 0.01007094
##
## Control limits:
## LCL UCL
## 73.98805 74.0143
##
## Beyond limits of control:
## [1] 74.0166 74.0196 74.0234
##
## Violationg runs:

24
## [1] 74.0128

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)

Control Chart Xbar for pistonrings


74.015

UCL
74.010
74.005

CL
74.000
x

73.995
73.990

LCL

1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24

Sample
Chart of control x

Gráficos de Control de la Calidad Multivariantes


En esta sección se utilizan los conjuntos de datos del paquete MSQC que deben ser de tipo array. Este tipo
de dato es una generalización del tipo de dato data frame o matriz que se maneja en R. En el caso de que
no sea un array el paquete qcr lo transforma de manera automática a array a través de la función mqcd. A
continuación se presentan los conjuntos de datos que se utilizan para los ejemplos.
• Pasador de una clavija (Dowel pin): Diámetro y longitud de un proceso de fabricación de un pasador
de clavija.
• Target archery: Conjunto de datos de tiro con arco en la ronda de clasificación. En esta etapa el arquero
dispara 72 flechas en 12 fines de seis flechas. La información que se da en las coordenadas x e y. Es un
array de dimenciones 24 x 2 x 3.

25
Hotelling

Consideremos un proceso de control en el que se observan p variables que se distribuyen segúnn una Normal
p variante con un vector de medias µ0 = (µ01 , µ02 , . . . , µ0p ) y una matriz Σ0 de varianzas-covarianzas de
orden p denotada por Np (µ0 , Σ0 ). Se desea contrastar las hipótesis: H0 : µi = µ0 vs. H1 : µi 6= µ0 para
determinar si el proceso está bajo control. Para esto se diseñan criterios para determinar si el proceso esta
fuera de control que utilizan el estadístico T 2 de Hotelling que dependiendo del estado de proceso sigue una
determinada distribución.
• Cuando el proceso está bajo control, (µi = µ0 ), existe una probabilidad α de que el estadístico Ti2
2
exceda al valor crítico Xp,α . Por ello se toma como indicación o señal de fuera de control un valor del
estadístico Ti2 que supera al valor Xp,α
2
.
El estadístico T 2 Hotelling es:

t
Ti2 = n X̄i − µ0 Σ−1

0 X̄i − µ0

donde X̄i = X̄i1 , . . . , X̄ip es el vector de medias para las p−características, en la i−ésima muestra. Cuando
el tamaño del subgrupo n = 1, se obtendrán vectores de observaciones en lugar de vectores de medias.
En el contexto geométrico, el estadístico T 2 es una proporción de la distancia (Mahalanobis) al cuadrado entre
una observación multivariada y el vector de valores objetivo (vector de media), donde puntos equidistantes
forman elipsoides alrededor de dicho vector. A mayor valor de T 2 , mayor es la distancia entre la observación
y el valor objetivo.
Si µ0 y Σ0 son conocidos y el proceso está bajo control, el estadístico Ti2 se distribuye como una chi-cuadrado
central con p grados de libertad (Ti2 ≈ Xp2 ).
• Cuando el proceso no está bajo control, el estadístico Ti2 se distribuye como una variable chi- cuadrado
t
no central con p grados de libertad y con parámetro de no centralidad: λ = n (µ1 − µ0 ) Σ−1 0 (µ1 − µ0 ),
con µ1 6= µ0 ; donde µ1 es el vector de medias de las p características, cuando existe un cambio d en al
menos una de las medias.
En la práctica, el valor del estadístico T 2 se estima mediante los correspondientes valores muestrales, dando
como resultado la siguiente expresión:

¯ t S −1 X̄ − X̄
   
T 2 = n X̄ − X̄ ¯

Con distribución bajo la hipótesis nula:

p (m − 1) (n − 1)
T2 ≈ Fα,p,mn−m−p+1
mn − m − p + 1

Es decir, el estadístico T 2 sigue apróximadamente en este caso una F de Snedecor con p y (mn − m − p + 1)
grados de libertad, para un nivel de significación del α%.
Dado que tanto la distribución X 2 y la F son asimétricas con sesgo a la derecha, se considera únicamente la
expresión para el límite de control superior, que viene dada por:

p (m − 1) (n − 1)
LCS = Fα,p,mn−m−p+1
mn − m − p + 1
Para el límite inferior se considera LCI = 0
Además, para procesos en los que el m es suficientemente grande, m > 100, se puede aproximar este límite
por LCS = X2α,p .

26
Alt (1985) recomienda usar estos límites en una primera fase, lo que denomina análisis retrospectivo, para
una vez estimado el límite de control por este medio, calcular un segundo límite para la segunda fase, la de
m+1
monotorización del proceso, para ello propone un cambio consistente en multiplicar por la expresión m−1
obteniendo así una nueva expresión para el límite de control superior LCS.
En el caso de observaciones individuales, es decir n = 1, suponiendo que se tienen un total de m muestras,
para evaluar p variables de control, el correspondiente gráfico de control se construye mediante:

p (m + 1) (n − 1)
LCS = Fα,p,m−p
m2 − mp
LCI = 0

data(dowel1)
str(dowel1)

## 'data.frame': 40 obs. of 2 variables:


## $ diameter: num 0.492 0.501 0.491 0.492 0.505 0.5 0.497 0.509 0.49 0.499 ...
## $ length : num 0.988 1.011 1.008 0.97 1.003 ...
data.mqcd <- mqcd(dowel1)
res.mqcs <- mqcs.t2(data.mqcd)
summary(res.mqcs)

##
## Summary of group statistics:
## V1
## Min. :0.09137
## 1st Qu.:0.60154
## Median :1.66096
## Mean :1.95000
## 3rd Qu.:2.64402
## Max. :5.34020
##
## Number of quality characteristics: 2
## Number of samples or observations: 40
## Number of observations or sample size: 1
##
## Mean Vector:
## 0.500875 1.001825
## Covariance Matrix:
## diameter length
## [1,] 4.908654e-05 8.584936e-05
## [2,] 8.584936e-05 4.199429e-04
##
## Control limits:
## lcl ucl
## 0.00000 12.44888
##
## Number beyond limits: 0
plot(res.mqcs, title =" Hotelling Control Chart for dowel1")

27
Hotelling Control Chart for dowel1

UCL
12
10
8
T2

6
4
2
0

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39

Sample
Hotelling

Gráficos MCUSUM

Los gráficos CUSUM pueden extenderse también al caso multivariante, aunque no hay una única forma de
hacerlo.
Los primeros en realizar estudios en la materia fueron Woodall y Ncube (1985), usando un esquema basado
en múltiples (p) CUSUM univariantes.
Healy (1987) desarrolló un modelo de gráfico CUSUM multivariante mediante:

Gi−1 + at (xi − µ0 ) − 0, 5λµ1 , 0


 
Gi = max
Donde:
• µ0 : Vector de medias cuando el proceso está bajo control
• Σ0 : Matriz de varianzas-covarianzas bajo control
• µ1 : Vector de medias cuando el proceso no est’a bajo control
• λµ1 : Ra’iz cuadrada del par’ametro de descentrado
t
• at = λµA
1
, A = (µ1 − µ0 ) Σ−1
0

Para interpretar el gráfico se considera que se produce una señal de alarma cuando Gi supera un cierto valor
de referencia H, convenientemente elegido y que se encuentra tabulado. Hawkins (1991) desarrolla un modelo
para variables ajustadas mediante regresión multivariante, en base a la suposición de que cuando se produce
un cambio en la media, se produce de una determinada manera. Concretamente se asume que el cambio se
debe a una variación de magnitud d en la media de una de las variables.

28
Otras propuesta de gráficos MCUSUM son los de Croisier (1988) o los de Pignatiello y Runger (1990). En el
paquete qcr se ha implementado el procedimiento de Croisier que reduce cada observación multivariada a un
escalar y luego construye el estadístico CUSUM con los escalares.
Croisier considera el siguiente estadístico:
q t
Ti = Ti2 = n X̄i − µ0 Σ−1
p 
0 X̄i − µ0
Crosier considera el estadístico T porque de esa manera, se acumulan distancias en lugar de distancias al
cuadrado. El estadístico MCUSUM se calcula de la siguiente manera:
%
Si = max {0, Si−1 + Ti − k}

donde S0 ≥ 0 (en general se considera S0 = 0) y k > 0.


El gráfico MCUSUM da una señal de fuera de control cuando el valor de Si es mayor que un cierto valor h
que depende del valor del ARL deseado cuando el proceso está funcionando en el valor objetivo [Si > h].
Para determinar los valores de h y k para p = 2, 5, 10 y 20 y para valores de ARL de 200 y de 500 cuando el
proceso está bajo control Crosier empleo procesos de Markov. Estas tablas se diseñaron para detectar un
cambio d = 1 en el vector de medias, donde d = λ , con λ parámetro de no centralidad. En este caso especial
los valores de k ’optimos se aproximan a p.
data(dowel1)
str(dowel1)

## 'data.frame': 40 obs. of 2 variables:


## $ diameter: num 0.492 0.501 0.491 0.492 0.505 0.5 0.497 0.509 0.49 0.499 ...
## $ length : num 0.988 1.011 1.008 0.97 1.003 ...
data.mqcd <- mqcd(dowel1)
res.mqcs <- mqcs.mcusum(data.mqcd)
summary(res.mqcs)

##
## Summary of group statistics:
## V1
## Min. :0.0000
## 1st Qu.:0.7749
## Median :1.1501
## Mean :1.3818
## 3rd Qu.:1.9987
## Max. :3.8409
##
## Number of quality characteristics: 2
## Number of samples or observations: 40
## Number of observations or sample size: 1
##
## Mean Vector:
## 0.500875 1.001825
## Covariance Matrix:
## diameter length
## [1,] 4.908654e-05 8.584936e-05
## [2,] 8.584936e-05 4.199429e-04
##
## Control limits:
## lcl ucl

29
## 0.0 5.5
##
## Number beyond limits: 0
plot(res.mqcs, title =" MCUSUM Control Chart for dowel1")

MCUSUM Control Chart for dowel1

UCL
5
4
mcusum

3
2
1
0

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39

Sample
MCUSUM

Gráficos MEWMA

El gráfico de medias móviles ponderadas exponencialmente para el caso multivariante (MEWMA) es una
extensión a esta nueva situación del correspondiente gráfico univariante. La extensión multivariante, propuesta
por Lowry (1992), adopta la forma:

Zi = ΛXi + (I − Λ) Zi−1

donde: Xi es el vector de medias muestrales y Λ es la matriz diagonal formada por los valores λ para las
distintas variables. Los λj marcan la profundidad de la memoria para cada variable. A mayor valor de rj ,
menor profundidad. I es la matriz identidad y se considera como valor inicial Z0 = 0.
La información que proporcionan los Zi se recoge en el estadístico:

Ti2 = Zit Σ−1


Zi Zi

Donde Σ−1
Zi es la inversa de la matriz de varianzas-covarianzas de los Zi .

La señal de salida de control se produce cuando Ti2 supera un cierto valor h, (h > 0) seleccionado de manera
tal de lograr un cierto valor de ARL cuando el proceso está bajo control. Si no existe a priori ninguna razón

30
para ponderar en forma diferente las observaciones pasadas de cada una de las p variables (como generalmente
sucede), entonces se considera λ1 = · · · = λp .
La matriz ΣZi puede obtenerse a partir de los elementos de la matriz de varianzascovarianzas correspondiente
a las variables analizadas mediante la expresi’on:

λ h 2i
i
ΣZi = 1 − (1 − λ) Σx
2−λ

donde Σx es la matriz de varianzas-covarianzas original.


Cuando r = 1, el gráfico MEWMA coincide con el gráfico de control T 2 dado que el valor asintótico de la
matriz de varianza-covarianza de Zi es:

λ
ΣZi = Σx
2−λ

En lo que respecta al límite de control (superior) empleado, Runger y Prabhu (1996) sugieren una aproxi-
mación mediante cadenas de Markov, que permite estudiar el funcionamiento del gráfico referente al ARL.
Proporcionan además una serie de recomendaciones para la selección de los par’ametros del gráfico.
En lo que se refiere al parámetro λ, Montgomery (1991) recomienda que su valor está comprendido entre 0.05
y 0.25. Cuanto mayor sea el valor del parámetro, menor importancia se le estará dando a los valores más
alejados en el tiempo. En aplicaciones prácticas se elige 0.1 como el valor del parámetro λ.
data(dowel1)
str(dowel1)

## 'data.frame': 40 obs. of 2 variables:


## $ diameter: num 0.492 0.501 0.491 0.492 0.505 0.5 0.497 0.509 0.49 0.499 ...
## $ length : num 0.988 1.011 1.008 0.97 1.003 ...
data.mqcd <- mqcd(dowel1)
res.mqcs <- mqcs.mewma(data.mqcd)
summary(res.mqcs)

##
## Summary of group statistics:
## V1
## Min. :0.04165
## 1st Qu.:0.95586
## Median :1.69276
## Mean :1.62204
## 3rd Qu.:1.89606
## Max. :4.17595
##
## Number of quality characteristics: 2
## Number of samples or observations: 40
## Number of observations or sample size: 1
##
## Mean Vector:
## 0.500875 1.001825
## Covariance Matrix:
## diameter length
## [1,] 4.908654e-05 8.584936e-05
## [2,] 8.584936e-05 4.199429e-04
##

31
## Control limits:
## lcl ucl
## 0.0000 8.6336
##
## Number beyond limits: 0
plot(res.mqcs, title =" MEWMA Control Chart for dowel1")

MEWMA Control Chart for dowel1

UCL
8
6
mewma

4
2
0

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39

Sample
MEWMA

Gráficos de control de la calidad no paramétricos


Los gráficos de control que se presenta en esta sección son propuestas por Regina Liu (Liu, 1995). La idea
principal bajo sus gráficos de control es reducir cada medida multivariante a un índice univariado, o mejor
dicho a su ordenamiento relativo del centro hacia afuera inducido por profundidad de datos. Este planteo
es completamente no paramétrico, y así las cartas resultantes son válidas sin suposiciones paramétricas
en el modelo del proceso. Estos gráficos permiten detectar simultáneamente el cambio en localización
(desplazamiento de la media) y el incremento de escala (cambio en variabilidad) en un proceso.
Liu desarrolló los gráficos de control r, Q y S los cuales pueden ser vistos como generalizaciones multivariadas
basadas en profundidad de datos de los gráficos univariadas X, x̄ y Cusum respectivamente.

Profundidad de datos

En el análisis multivariante, el término profundidad se refiere al grado de centralidad de un punto con respecto
a una nube de puntos o una distribución de probabilidad. Por tanto, es posible definir un orden en el espacio
euclídeo multidimensional a través de la profunidad de un dato.

32
Según Dyckerhoff ,(Dyckerhoff, 2004) y expuestas por Cascos (Cascos, 2011) la definición de la función de
profundidad es:
Si se fija una distribución P en Rd , una función de profundidad es una función acotada Dp : Rd −→ R que
asigna a cada punto de Rd su grado de centralidad respecto de P.
Las funciones de profundidad con las que se pueden realizar los gráficos de control son:
• Profundidad Simplicial (Liu, 1990)
• Profundidad de Mahalanobis (Mahalanobis 1936)
• Profundidad Semiespacial (Half-Space) o de Tukey (Hodges, 1955, Tukey, 1975)
• Profundidad de Verosimilitud (Likelihood Depth), (Fraiman y Meloche, 1996), (Liu, 1999)
• Profundidad de las Proyecciones (Random Projection Depth) (Zuo y Serfling, 2000)
Para el cálculo de las profundidades se utiliza el paquete fda.qcr.

Estadísticos derivados de la profundidad de datos

Sea G la distribución k−dimensional y Y1 , Y2 , . . . , Ym ; m observaciones aleatorias de G. La mencionada


muestra es una muestra de referencia en el contexto de control de calidad y se considera como medidas
de los productos producidos en un proceso bajo control. Sean X1 , X2 , . . . , Xn las nuevas observaciones
provenientes del proceso de manufactura, se asume que siguen una distribución F , si la calidad del producto
se ha deteriorado o si el proceso está fuera de control, caso contrario siguen una distribución G.
Si se ordenan todas las profundidades DG (Yi ) en orden ascendente y se usa Y[j] para denominar al punto de
la muestra asociado con el j−ésimo valor de profundidad más pequeño, entonces Y[1] , . . . , Y[m] siendo Y[m]
el punto más central. Mientras más pequeño el índice (o rango) de un punto, más externo será ese punto
respecto de la distribución subyacente G (.).
Liu (Liu, 1995) define el rango (Rank):
rG (y) = P {DG (Y ) ≤ DG (y) | Y ∼ G}
Y ∼ G indica que la variable aleatoria Y sigue la distribución G.
Para el caso en que G es desconocida y sólo se conoce la muestra {Y1 , . . . , Ym }:
]{DGm (Yj )≤DGm (y),j=1,...,m}
rGm (y) = m

Si Fn (.) representa la distribución empírica de la muestra X1 , X2 , ..., Xn entonces en el mismo trabajo, Liu
define, (Liu, 1995). índice Q:
Q (G, F ) = P {DG (Y ) ≤ DG (X) | Y ∼ G, X ∼ F } = EF [rG (X)]
Pn
Q (G, Fn ) = n1 i=1 rG (Xi )
Pn
Q (Gm , Fn ) = n1 i=1 rGm (Xi )

Gráfico de control r

Se calcula {rG (X1 ) , rG (X2 ) , . . . , rG (Xn )} ó {rGm (X1 ) , rGm (X2 ) , . . . , rGm (Xn )} si sólo está disponible
Y1 , . . . , Ym pero no G.
El gráfico de control r, consiste en graficar el estadístico rank versus el tiempo. Cuyo límite de control central
LC = 0.5 y límite inferior es LCI = α, donde α es la tasa de falsa alarma. El proceso es declarado fuera de
control si al menos uno de los estadísticos rank cae bajo LCI. Un valor pequeño del estadístico rank rGm (X)
0
significa que sólo una muy pequeña proporción de Yi son más externos que X. Entonces, si se asume que
X ∼ F entonces un valor pequeño de rGm (X) sugiere una posible desviación desde G a F . Esta puede ser
por un desplazamiento en la localización y/o un incremento en escala de la variable de calidad.

33
Aunque el gráfico r no dispone de la línea UCL para hacer de CL la línea central de la región bajo control,
la línea CL sirve como punto de referencia que permite observar si aparece o se está gestando un patrón o
tendencia en una secuencia de muestras. Sí rGm (X) es mayor que 0.5; hay indicios de una disminución en
escala con quizás un despreciable desplazamiento de localización. Esto es visto como una mejora en calidad
dada una ganancia en la precisión, y así el proceso no se vería como fuera de control.
set.seed(356)
mu<-c(0,0)
Sigma<- matrix(c(1,0,0,1),nrow = 2,ncol = 2)
u <- c(2,2)
S <- matrix(c(4,0,0,4),nrow = 2,ncol = 2)
G <- rmvnorm(540, mean = mu, sigma = Sigma)
x<- rmvnorm(40,mean=u,sigma = S)
x <- rbind(G[501:540,],x)
M <- G[1:500,]
data.npqcd <- npqcd(x,M)
str(data.npqcd)

## List of 2
## $ x: num [1:80, 1:2, 1] 0.995 -1.274 -1.174 -0.347 0.931 ...
## $ G: num [1:500, 1:2] 0.306 -0.322 1.389 1.438 -0.784 ...
## - attr(*, "data.name")= chr "DATA"
## - attr(*, "type.data")= chr "Multivariate"
## - attr(*, "class")= chr [1:2] "npqcd" "list"
res.npqcs <- npqcs.r(data.npqcd,method = "Liu", alpha=0.025)
str(res.npqcs)

## List of 9
## $ npqcd :List of 2
## ..$ x: num [1:80, 1:2, 1] 0.995 -1.274 -1.174 -0.347 0.931 ...
## ..$ G: num [1:500, 1:2] 0.306 -0.322 1.389 1.438 -0.784 ...
## ..- attr(*, "data.name")= chr "DATA"
## ..- attr(*, "type.data")= chr "Multivariate"
## ..- attr(*, "class")= chr [1:2] "npqcd" "list"
## $ type : chr "r"
## $ depth.data: num [1:80, 1] 0.0243 0.0866 0.0292 0.2412 0.1214 ...
## $ statistics: num [1:80, 1] 0.242 0.532 0.268 0.974 0.666 0.268 0.42 0.136 0.824 0.118 ...
## $ alpha : num 0.025
## $ limits : Named num [1:2] 0.025 0.5
## ..- attr(*, "names")= chr [1:2] "lcl" "cl"
## $ data.name : chr "DATA"
## $ method : chr "Liu"
## $ violations: int [1:25] 42 43 44 46 48 49 50 52 53 54 ...
## - attr(*, "class")= chr [1:2] "npqcs.r" "npqcs"
summary(res.npqcs)

##
## Summary of group statistics:
## V1
## Min. :0.0140
## 1st Qu.:0.0140
## Median :0.1970
## Mean :0.3018
## 3rd Qu.:0.4810

34
## Max. :0.9760
##
## Number of quality characteristics: 2
## Number of samples or observations: 80
## Number of observations or sample size: 1
## Control limits:
## lcl cl
## 0.025 0.500
##
## Beyond limits of control:
## [1] 0.014 0.014 0.014 0.014 0.014 0.014 0.014 0.014 0.014 0.014 0.014
## [12] 0.014 0.014 0.014 0.014 0.014 0.016 0.014 0.014 0.014 0.014 0.014
## [23] 0.014 0.014 0.014
plot(res.npqcs,title =" r Control Chart")

r Control Chart
1.0
0.8
0.6
Rank

CL
0.4
0.2

LCL= 0.025
0.0

1 4 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63 67 71 75 79

Sample

Gráfico de control Q

La idea detrás del gráfico Q es similar a la del gráfico X̄. Si X1 , X2 , . . . son univariadas y G es normal, el
gráfico X̄ dibuja los promedios de subconjuntos consecutivos de tamaño. Una característica de este gráfico,
es que puede prevenir una falsa alarma cuando el proceso en realidad está en control pero algún punto de la
muestra individual cayó fuera de los límites de control debido sólo a fluctuaciones aleatorias. Esta es una
ventaja del gráfico X̄ sobre el gráfico X.
Para el caso del gráfico Q, se dibuja los promedios de subconjuntos
 consecutivos
 de tama~o n, del estadístico
rank (rG (Xi ) ó rGm (Xi )) que se denota por Q G, Fnj ó Q Gm , Fnj , aquí Fnj es la distribución empírica de

35
los Xi .
  
El gráfico Q dibuja los siguientes conjuntos de puntos: Q Gm , Fnj , Q Gm , Fnj , . . . . , si sólo se dispone
de {Y1 , Y2 , . . . , Ym }.
Los límites de control son los siguientes:
n≥5
1 
CL = 0.5; LCL = 0.5 − Zα (12n) 2 para dibujar Q G, Fnj
q
1 1 1
 
CL = 0.5; LCL = 0.5 − Zα 12Ĺ m + n para dibujar Q Gm , Fnj
n<5
1
(n!α) n
CL = 0.5; LCL = n
set.seed(12345)
mu<-c(0,0)
Sigma<- matrix(c(1,0,0,1),nrow = 2,ncol = 2)
u <- c(2,2)
S <- matrix(c(4,0,0,4),nrow = 2,ncol = 2)
G <- rmvnorm(540, mean = mu, sigma = Sigma)
x<- rmvnorm(40,mean=u,sigma = S)
x <- rbind(G[501:540,],x)
n <- 4 # samples
m <- 20 # measurements
k <- 2 # number of variables
x.a <- array(,dim=c(n,k,m))
for (i in 1:m){
x.a[,,i] <- x[(1+(i-1)*n):(i*n),] }
M <- G[1:500,]
data.npqcd <- npqcd(x.a,M)
str(data.npqcd)

## List of 2
## $ x: num [1:4, 1:2, 1:20] 1.6775 -0.8564 -0.3809 -0.0718 0.0795 ...
## $ G: num [1:500, 1:2] 0.586 -0.109 0.606 0.63 -0.284 ...
## - attr(*, "data.name")= chr "DATA"
## - attr(*, "type.data")= chr "Multivariate"
## - attr(*, "class")= chr [1:2] "npqcd" "list"
res.npqcs <- npqcs.Q(data.npqcd,method = "Liu", alpha=0.025)
str(res.npqcs)

## List of 8
## $ npqcd :List of 2
## ..$ x: num [1:4, 1:2, 1:20] 1.6775 -0.8564 -0.3809 -0.0718 0.0795 ...
## ..$ G: num [1:500, 1:2] 0.586 -0.109 0.606 0.63 -0.284 ...
## ..- attr(*, "data.name")= chr "DATA"
## ..- attr(*, "type.data")= chr "Multivariate"
## ..- attr(*, "class")= chr [1:2] "npqcd" "list"
## $ type : chr "Q"
## $ statistics: num [1:20] 0.352 0.604 0.346 0.623 0.456 ...
## $ alpha : num 0.025
## $ limits : Named num [1:2] 0.22 0.5
## ..- attr(*, "names")= chr [1:2] "lcl" "cl"
## $ data.name : chr "DATA"

36
## $ method : chr "Liu"
## $ violations: int [1:10] 11 12 13 14 15 16 17 18 19 20
## - attr(*, "class")= chr [1:2] "npqcs.Q" "npqcs"
summary(res.npqcs)

##
## Summary of group statistics:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.01400 0.08638 0.25720 0.28720 0.46450 0.62350
##
## Number of quality characteristics: 2
## Number of samples or observations: 4
## Number of observations or sample size: 20
## Control limits:
## lcl cl
## 0.2200279 0.5000000
##
## Beyond limits of control:
## [1] 0.1135 0.1580 0.0590 0.1680 0.0565 0.0900 0.0140 0.0755 0.0640 0.1115
plot(res.npqcs,title =" Q Control Chart")

Q Control Chart
0.6
0.5

CL
0.4
Q_n

0.3

LCL= 0.220027934
0.2
0.1
0.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Sample

37
Gráfico de control S
Pn
El gráfico de control S se inspira en el gráfico de control univariado CUSUM. Esta dibuja i=1 (X − µ) lo
cual refleja el patrón de la desviación total del valor esperado. Este gráfico de control es más efectivo que los
gráficos X o X̄ en detectar pequeños cambios del proceso.
En el gráfico de control S se dibujan los puntos correspondientes a las expresiones siguientes:
En el caso de contar con G:
Pn
Sn (G) = i=1 rG (Xi ) − 12


Los límites de control son los siguientes:


1
n 2
CL = 0; LCL = −Zα 12
En el caso de contar con Y1 , . . . , Ym :
Pn
Sn (Gm ) = i=1 rGm (Xi ) − 12


Los Límites de Control son los siguientes:


q
( 1 +1)
CL = 0; LCL = −Zα n2 m12 n
Los límites de control LCL en ambos casos constituyen una curva en vez de una recta; si n es grande el
gráfico de control S fácilmente excedería el tamaño del papel, por lo que se estandariza de la siguiente manera
respectivamente:

Sn (G)
Sn∗ (G) = √ n
12

Sn∗ (Gm ) = qSn (G1m )1


( + )
n2 m n 12

Los límites de control en los dos casos son los siguientes:


CL = 0; LCL = −Zα
set.seed(12345)
mu<-c(0,0)
Sigma<- matrix(c(1,0,0,1),nrow = 2,ncol = 2)
u <- c(2,2)
S <- matrix(c(4,0,0,4),nrow = 2,ncol = 2)
G <- rmvnorm(540, mean = mu, sigma = Sigma)
x<- rmvnorm(40,mean=u,sigma = S)
x.a <- rbind(G[501:540,],x)
M <- G[1:500,]
data.npqcd <- npqcd(x.a,M)
str(data.npqcd)

## List of 2
## $ x: num [1:80, 1:2, 1] 1.6775 -0.8564 -0.3809 -0.0718 0.6707 ...
## $ G: num [1:500, 1:2] 0.586 -0.109 0.606 0.63 -0.284 ...
## - attr(*, "data.name")= chr "DATA"
## - attr(*, "type.data")= chr "Multivariate"
## - attr(*, "class")= chr [1:2] "npqcd" "list"
res.npqcs <- npqcs.S(data.npqcd,method = "Liu", alpha=0.05)
str(res.npqcs)

## List of 8
## $ npqcd :List of 2

38
## ..$ x: num [1:80, 1:2, 1] 1.6775 -0.8564 -0.3809 -0.0718 0.6707 ...
## ..$ G: num [1:500, 1:2] 0.586 -0.109 0.606 0.63 -0.284 ...
## ..- attr(*, "data.name")= chr "DATA"
## ..- attr(*, "type.data")= chr "Multivariate"
## ..- attr(*, "class")= chr [1:2] "npqcd" "list"
## $ type : chr "S"
## $ statistics: num [1:80] -0.741 -0.66 -1.292 -1.025 -0.515 ...
## $ alpha : num 0.05
## $ limits : Named num [1:2] 0 -1.64
## ..- attr(*, "names")= chr [1:2] "cl" "lcl"
## $ data.name : chr "DATA"
## $ method : chr "Liu"
## $ violations: int [1:33] 48 49 50 51 52 53 54 55 56 57 ...
## - attr(*, "class")= chr [1:2] "npqcs.S" "npqcs"
summary(res.npqcs)

##
## Summary of group statistics:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -6.12300 -3.58100 -0.85900 -2.00800 -0.42440 0.03105
##
## Number of quality characteristics: 2
## Number of samples or observations: 80
## Number of observations or sample size: 1
## Control limits:
## cl lcl
## 0.000000 -1.644854
##
## Beyond limits of control:
## [1] -1.710765 -1.836190 -2.043093 -2.245696 -2.444181 -2.638716 -2.829460
## [8] -2.937644 -2.929749 -3.040439 -3.220669 -3.397692 -3.569932 -3.613600
## [15] -3.782822 -3.949234 -4.112929 -4.273995 -4.432519 -4.588579 -4.742254
## [22] -4.893616 -4.947340 -5.095040 -5.240611 -5.384115 -5.525610 -5.665153
## [29] -5.728754 -5.743827 -5.879246 -6.012889 -6.123226
plot(res.npqcs,title =" S Control Chart")

39
S Control Chart

CL
0
−1

LCL= −1.64485362
−2
S_n

−3
−4
−5
−6

1 4 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63 67 71 75 79

Sample

Análisis de capacidad de un proceso


El análisis del capacidad de un proceso, en el caso del control de calidad se lo realiza a través del cálculo de
índices que permiten medir si un proceso es o no capaz, relacionando las especificaciones técnicas que se debe
cumplir (fijadas por el cliente ó fabricante) con la variabilidad del proceso. La interpretación de estos índices
está asociada al resultado de dicha relación.
Los índices de capacidad se cálculan generalmente como la razón entre la magnitud del rango de variación de
las especificaciones y la variabilidad del proceso en términos de σ. En el caso de valores grandes de estos
índices se tiene un proceso capaz de producir artículos que cumplen con los requerimientos del cliente. En
otras palabras, cuánto más grande sea el valor que tome el índice de capacidad, más pequeña será la cantidad
de productos fuera de los límites de especificación.
En esta sección se describirán los índices de capacidad para procesos cuya distribución subyacente es normal
y no normal(exponencial, weibull, etc.), además se presenta un método gráfico para ver si un proceso,
con distribución normal, se puede considerar capaz y finalmente se describen índices de capacidad para
distribuciones no normales.

Asumiendo una distribución normal

Los índices de capacidad más utilizados en la industria, analizan la capacidad del proceso bajo la suposición
de que el proceso es estable y de que la característica estudiada se distribuye normalmente. En la Table~??
se describen los índices Cp , Cpk , Cpm , Cpmk que se obtienen a partir de estos supuestos.

40
Kerstin Vannman (1995) propone una formulación general de estos índices mediante una expresión que
permite obtenerlos para distintos valores de dos nuevos parámetros no negativos u y v:

d − u|µ − m|
Cp (u, v) = q
2
3 σ 2 + v (µ − T )

Esta nueva expresión permite obtener los índices de Table~??, sin más que considerar valores de 0 y 1 para u
y v: Cp (0, 0) = Cp , Cp (1, 0) = Cpk , Cp (0, 1) = Cpm , Cp (1, 1) = Cpmk .
data(pistonrings)
xbar <- qcs.xbar(pistonrings[1:125,],plot = TRUE)

x
74.015

UCL
74.010
74.005

CL
74.000
x

73.995
73.990

LCL

1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24

Sample
Chart of control x
mu <-xbar$center
std.dev <-xbar$std.dev
LSL=73.99; USL=74.01
qcs.cp(parameters = c(0,0),limits = c(LSL,USL),
mu = mu,std.dev = std.dev,ylim=c(0,1), contour = FALSE)

## Cp delta gamma
## 0.3407 0.1176 0.9785
qcs.cp(object = xbar,parameters = c(0,0), limits = c(LSL,USL),ylim=c(0,1), contour = FALSE)

## Cp delta gamma
## 0.3407 0.1176 0.9785
qcs.cp(object = xbar,parameters = c(1,0), limits = c(LSL,USL),ylim=c(0,1), contour = FALSE)

41
## Cpk delta gamma
## 0.3006 0.1176 0.9785
qcs.cp(object = xbar,parameters = c(0,1), limits = c(LSL,USL),ylim=c(0,1), contour = FALSE)

## Cpm delta gamma


## 0.3382 0.1176 0.9785
qcs.cp(object = xbar,parameters = c(1,1), limits = c(LSL,USL),ylim=c(0,1), contour = FALSE)

## Cpmk delta gamma


## 0.2984 0.1176 0.9785

Gráfico de la capacidad del proceso

Deleryd y Vannman (1999) y Vannman (2001), (2006) propusieron un método gráfico basado en los índices
de capacidad para analizar la capacidad de un proceso. La ventaja de usar este tipo de gráficos, comparado
con utilizar sólo el índice de capacidad, es que los gráficos proporcionan información visual instantáneamente:
información sobre la localización y variación de la característica estudiada del proceso e información sobre la
capacidad del proceso.
Un proceso se dice que es capaz si el índice de capacidad del proceso excede un cierto valor k, donde k >
1. Algunos de los valores de k que más se usan son k = 1, k = 4/3, o k = 5/3. Se supondrá que el valor
del target coincide con el centro del intervalo de especificación, es decir, T = (U SL+LSL)
2 = m. Entonces, se
utilizará uno de los índices definidos por la familia Cp (u, v)
por ejemplo, Cpk o Cpm y se definirá el proceso como capaz si Cp (u, v) > k, dados los valores de u, v, y k.
Notemos de nuevo que si µ = T , todos los índices Cp (u, v), se reducen al mismo,Cp . Diferentes elecciones de
u, v, y k imponen diferentes restricciones en los parámetros del proceso (µ, σ). Esto se puede ver f´acilmente
en un gr´afico de capacidades. Este gráfico es simplemente un gráfico de contorno de Cp (u, v) = k como una
función de µ y σ, o como una función de δ y γ, donde δ = µ−T d y γ = σd .
La línea de contorno se obtiene reescribiento el índice Cp (u, v) como una función de δ y γ, resolviendo la
ecuación Cp (u, v) = k con respecto a γ, y graficando γ como una función de delta. Se obtiene:
r
(1 − u|δ|) 1
γ= − vδ 2 , |δ| ≤ √ , (u, v) 6= (0, 0) .
9k 2 u + 3k v
1
Cuando u = v = 0, es decir, cuando consideramos el índice Cp = k, tenemos γ = 3k , |δ| ≤ 1.
Valores de los parámetros µ y σ que proporcionen valores (δ, γ) dentro de la región acotada por la línea de
contorno Cp (u, v) = k y el eje δ proporcionarán un valor Cp (u, v) más grande que k, es decir, un proceso
capaz. Además valores de µ y σ que proporcionen valores (δ, γ) fuera de esta región proporcionarán un valor
Cp (u, v) más pequeño que k, es decir, un proceso no capaz. En el caso que el proceso es no capaz, este tipo
de gráfico es muy útil para entender si es la variabilidad, la desviación del target o ambas cosas las que se
necesitan reducir para mejorar la capacidad.
data(pistonrings)
xbar <- qcs.xbar(pistonrings[1:125,],plot = TRUE)

42
x
74.015

UCL
74.010
74.005

CL
74.000
x

73.995
73.990

LCL

1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24

Sample
Chart of control x
mu <-xbar$center
std.dev <-xbar$std.dev
LSL=73.99; USL=74.01
qcs.cp(parameters = c(0,0),limits = c(LSL,USL),
mu = mu,std.dev = std.dev,ylim=c(0,1))

## Cp delta gamma
## 0.3407 0.1176 0.9785
qcs.cp(object = xbar,parameters = c(0,0), limits = c(LSL,USL),ylim=c(0,1))

43
Contour plot: Cp
1.0
0.8
0.6
gamma

0.4
0.2
0.0

−1.0 −0.5 0.0 0.5 1.0

delta

## Cp delta gamma
## 0.3407 0.1176 0.9785
qcs.cp(object = xbar,parameters = c(1,0), limits = c(LSL,USL),ylim=c(0,1))

44
Contour plot: Cpk
1.0
0.8
0.6
gamma

0.4
0.2
0.0

−1.0 −0.5 0.0 0.5 1.0

delta

## Cpk delta gamma


## 0.3006 0.1176 0.9785
qcs.cp(object = xbar,parameters = c(0,1), limits = c(LSL,USL),ylim=c(0,1))

45
Contour plot: Cpm
1.0
0.8
0.6
gamma

0.4
0.2
0.0

−0.3 −0.2 −0.1 0.0 0.1 0.2 0.3

delta

## Cpm delta gamma


## 0.3382 0.1176 0.9785
qcs.cp(object = xbar,parameters = c(1,1), limits = c(LSL,USL),ylim=c(0,1))

46
Contour plot: Cpmk
1.0
0.8
0.6
gamma

0.4
0.2
0.0

−0.2 −0.1 0.0 0.1 0.2

delta

## Cpmk delta gamma


## 0.2984 0.1176 0.9785

Gráfico de la capacidad del proceso estimado

En la práctica los parámetros del proceso son desconocidos y necesitamos estimarlos. Podemos establecer
entonces, una regla de decisión basada en los estadísticos muestrales y un gráfico de capacidad del proceso
estimado, para usarla para decidir si un proceso se puede considerar capaz o no, cuando µ y σ son desconocidas
y necesitamos estimarlas por:

n n
1X 1X
µ̂ = x̄ = Xi y σ̂ 2 = Xi − X̄
n i=1 n i=1

que son los estimadores de máxima verosimilitud en el caso en el que la característica estudiada del proceso
se distribuye normalmente; y sea X1 , X2 , . . . , Xn una muestra aleatoria simple de una distribución normal
con media µ y varianza σ 2 .
En el paquete sólo se usa el índice Cpm para definir la región de capacidad. Para el caso general, ver Vannman
(2001). Para obtener una regla de decisión apropiada se considerará el test de hipótesis con hipótesis nula
H0 : Cpm ≤ k0 e hipótesis alternativa H1 : Cpm > k0 . Como estadístico de contraste se utiliza el estimador
Cˆpm , el cual se obtiene estimando µ y σ
La hipótesis nula se rechazará si Ĉpm > cα , donde la constante cα está determinada de modo que el nivel de
significación del test sea α. Vannman (2001) demostró que la hipótesis nula H0 : Cpm ≤ k0 puede reducirse a
H0 : Cpm = k0 . La regla de decisión que se usa consiste en que, para valores dados de α y n, el proceso se
considerará capaz si Ĉpm > cα , donde cα > k0 . Hubele y Vannman (2004) demostraron que, cuando se usa el

47
q
n
índice Cpm el valor crítico para un nivel de significación α se obtiene como cα = k0 χ2α,n , donde χ2α,n es el
cuantil α de una distibución χ2 con n grados de libertad.
data(pistonrings)
xbar <- qcs.xbar(pistonrings[1:125,],plot = TRUE)

x
74.015

UCL
74.010
74.005

CL
74.000
x

73.995
73.990

LCL

1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24

Sample
Chart of control x
mu <-xbar$center
std.dev <-xbar$std.dev
LSL=73.99; USL=74.01
qcs.hat.cpm(limits = c(LSL,USL),
mu = mu,std.dev = std.dev,ylim=c(0,1))
qcs.hat.cpm(object = xbar, limits = c(LSL,USL),ylim=c(0,1))

48
Contour plot: Cpm
1.0

Theory
Empirical
0.8
0.6
gamma

0.4
0.2
0.0

−0.3 −0.2 −0.1 0.0 0.1 0.2 0.3

delta

Non Normal parametric process capability analysis

En el documento correspondiente ISO 21747 (2006), se definen los siguientes índices:


data(pistonrings)
xbar <- qcs.xbar(pistonrings[1:125,],plot = TRUE)

49
x
74.015

UCL
74.010
74.005

CL
74.000
x

73.995
73.990

LCL

1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24

Sample
Chart of control x
limits = c(lsl = 73.99, usl = 74.01)
qcs.pcr(xbar, "normal", limits = limits)

50
Process Capability using normal distribution for x
LSL = 74 USL = 74
n = 125
A = 0.14
TARGET p = 0.969
70

mean = 74
sd = 0.00979
60
50
Density

40
30
20
10

73.985 73.990 73.995 74.000 74.005 74.010 74.015

##
## Process Capability Analysis
##
## Call:
## qcs.pcr(object = xbar, distribution = "normal", limits = limits)
##
## Number of obs = 125 Target = 74
## Center = 74 LSL = 73.99
## StdDev = 0.009785 USL = 74.01
##
## Capability indices:
##
## Value
## Cp 0.3407
## Cp_l 0.3807
## Cp_u 0.3006
## Cp_k 0.3006
##
##
## PPM:
##
## Exp<LSL 1.267e+05 Obs<LSL 0
## Exp>USL 1.836e+05 Obs>USL 1e+12
## Exp Total 3.103e+05 Obs Total 1e+12
##
## Test:

51
##
##
## Anderson Darling Test for normal distribution
##
## data: x
## A = 0.1399, mean = 74.001, sd = 0.005, p-value = 0.9694
## alternative hypothesis: true distribution is not equal to normal
qcs.pcr(xbar, "weibull", limits = limits)

Process Capability using weibull distribution for x


LSL = 74 USL = 74
n = 125
A = 0.73
TARGET p < 0.05
shape = 18233
80

scale = 74
60
Density

40
20
0

73.985 73.990 73.995 74.000 74.005 74.010 74.015

##
## Process Capability Analysis
##
## Call:
## qcs.pcr(object = xbar, distribution = "weibull", limits = limits)
##
## Number of obs = 125 Target = 74
## Center = 74 LSL = 73.99
## StdDev = 0.009785 USL = 74.01
##
## Capability indices:
##
## Value
## Cp 0.5801
## Cp_l 0.4861
## Cp_u 0.8402
## Cp_k 0.4861

52
##
##
## PPM:
##
## Exp<LSL 3.283e+04 Obs<LSL 0
## Exp>USL 9965 Obs>USL 1e+12
## Exp Total 4.279e+04 Obs Total 1e+12
##
## Test:
##
##
## Anderson Darling Test for weibull distribution
##
## data: x
## A = 0.7297, shape = 18232.755, scale = 74.004, p-value <= 0.05
## alternative hypothesis: true distribution is not equal to weibull

Análisis de capacidad no paramétrico

Las hipótesis tradicionales sobre los datos como la normalidad o la independencia son frecuentemente violadas
en muchas situaciones reales. Así, en escenarios en los que los supuestos de normalidad no se verifican, los
índices definidos en las secciones anteriores no son válidos. Pearn y Chen (1997) y Tong y Chen (1998)
propusieron generalizaciones de Cp (u, v) para el caso de distribuciones arbitrarias de los datos:

d − u|M − m|
CN p (u, v) = q
F99.865 −F0.135 2 2

3 6 + v (M − T )

donde Fα el correspondiente percentil (100 α)% de la distribución y M la mediana del proceso.


Pearn y Chen, propusieron el siguiente estimador:

d − u|M̂ − m|
ĈN p (u, v) = r 2  2
Up −Lp
3 6 + v M̂ − T

donde Up es un estimador para F99.865 , Lp es un estimador para F99.865 y M̂ es un estimador para M, y sus
estimaciones se pueden obtener utilizando las tablas desarrolladas por Gruska et al. (1989). Sin embargo la
distribución del proceso subyacente es siempre desconocida. Chang y Lu (1994) calcularon estimaciones para
F99.865 , F99.865 y M basándose en los percentiles muestrales en vez de en las tablas de Gruska et al. (1989).
Se tiene así el estimador:

d − u|M̂ − m|
ĈN p (u, v) = r 2  2
F̂99.865 −F̂0.135
3 6 + v M̂ − T

xbar <- qcs.xbar(pistonrings[1:125,],plot = TRUE)

53
x
74.015

UCL
74.010
74.005

CL
74.000
x

73.995
73.990

LCL

1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24

Sample
Chart of control x
x<-xbar$statistics[[1]]
LSL=73.99; USL=74.01
median <-median(x)
lq=as.numeric(quantile(x,probs=0.00135))
uq=as.numeric(quantile(x,probs=0.99865))
qcs.cpn(parameters = c(0,0),limits = c(LSL,USL),
median = median, q=c(lq,uq))

## CNp
## 1.0082
qcs.cpn(object = xbar,parameters = c(0,0), limits = c(LSL,USL))

## CNp
## 1.0082
qcs.cpn(object = xbar,parameters = c(1,0), limits = c(LSL,USL))

## CNpk
## 0.9275
qcs.cpn(object = xbar,parameters = c(0,1), limits = c(LSL,USL))

## CNpm
## 0.9799
qcs.cpn(object = xbar,parameters = c(1,1), limits = c(LSL,USL))

## CNpmk

54
## 0.9015

Un análisis completo del proceso

data(pistonrings)
xbar <- qcs.xbar(pistonrings[1:125,],plot = TRUE)

x
74.015

UCL
74.010
74.005

CL
74.000
x

73.995
73.990

LCL

1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24

Sample
Chart of control x
LSL=73.99; USL=74.01
limits = c(lsl = 73.99, usl = 74.01)
qcs.ca(xbar, limits = limits)

55
Process Capability for x
LSL = 74 USL = 74

Process Data
ST Sample n = 125
TARGET LT A = 0.14
p = 0.969
70

LSL = 74
Target = 74
USL = 74
std.dev (ST) = 0.00979
60

mean = 74
std.dev (LT) = 0.0101
Parametric Capability Process
NonParametric
(ST) Capability Process (ST)
50

Cp = 0.341 CNp = 1.01


Cpu = 0.301
Density

CNpk = 0.927
Quantiles for x[, 1]
Cpl = 0.381
40

Cpk = 0.301 CNpm = 0.98


Cpm = 0.338 CNpmk = 0.901
Cpmk = 0.298
30

Performance − ST [%]
Theory
Exp<LSL = 12.7 Empirical
Exp>USL = 18.4
20

Exp Total = 31
Obs<LSL = 0
Obs>USL = 0.8
10

Obs Total = 0.8

73.985 73.990 73.995 74.000 74.005 74.010 74.015

##
## Process Capability Analysis
##
## Call:
## qcs.ca(object = xbar, limits = limits)
##
## Number of obs = 125 Target = 74
## Center = 74 LSL = 73.99
## StdDev = 0.009785 USL = 74.01
##
## Paremetric Capability indices:
##
## Value 0.1% 99.9%
## Cp 0.3407 0.2771 0.4065
## Cp_l 0.3807 0.2739 0.4875
## Cp_u 0.3006 0.2021 0.3991
## Cp_k 0.3006 0.1944 0.4068
## Cpm 0.3382 0.2749 0.4038
##
##
## Non parametric Capability indices:
##
## Value
## CNp 1.0082
## CNpK 0.9275
## CNpm 0.9799

56
## CNpmk 0.9015
##
##
## PPM:
##
## Exp<LSL 1.267e+07 Obs<LSL 0
## Exp>USL 1.836e+07 Obs>USL 8e+05
## Exp Total 3.103e+07 Obs Total 8e+05
##
## Test:
##
##
## Anderson Darling Test for normal distribution
##
## data: xbar
## A = 0.1399, mean = 74.001, sd = 0.005, p-value = 0.9694
## alternative hypothesis: true distribution is not equal to normal

57

También podría gustarte