Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Miguel Flores
21 de Noviembre de 2016
Contents
Resumen 2
Introducción 2
Software R 2
Razones para elegir R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Datos pistonrings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1
Resumen
Introducción
summary(res.qcs) plot(res.qcs)
Software 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
2
## version 1.0 (built on 2016-11-22).
## Copyright Miguel A. Flores Sanchez 2016.
1 3 5 7 9 12 15 18 21 24 27 30 33 36 39
3
74.03
74.01
diameter
73.99
73.97
0 10 20 30 40
sample
detach(pistonrings)
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)," ")))
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
¯
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)," ")))
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 .
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)
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
CL = np̄
q
np̄(1−p̄)
U CL = np̄ + 3 n
data(orangejuice)
str(orangejuice)
11
res.qcs <- qcs.np(datos.qcd)
summary(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
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)
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
16
data(pistonrings)
res.qcd <- qcd(pistonrings, type.data = "dependence")
res.qcs <- qcs.cusum(res.qcd, type = "cusum")
summary(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
LCS = µ0
q
λ(1−(1−λ)2i )
U CL = µ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)
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)
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)
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")
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)
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,])
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)])
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)
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)
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
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̄ ¯
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)
##
## 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:
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}
##
## 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")
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:
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−λ
λ
Σ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)
##
## 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")
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
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.
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
## 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
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)
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
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
delta
45
Contour plot: Cpm
1.0
0.8
0.6
gamma
0.4
0.2
0.0
delta
46
Contour plot: Cpmk
1.0
0.8
0.6
gamma
0.4
0.2
0.0
delta
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
delta
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
##
## 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)
scale = 74
60
Density
40
20
0
##
## 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
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 )
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
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
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
CNpk = 0.927
Quantiles for x[, 1]
Cpl = 0.381
40
Performance − ST [%]
Theory
Exp<LSL = 12.7 Empirical
Exp>USL = 18.4
20
Exp Total = 31
Obs<LSL = 0
Obs>USL = 0.8
10
##
## 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