las 7 herramientas básicas de la calidad con r
TRANSCRIPT
Las 7 herramientas básicasde la calidad con R
Emilio L. Cano, Javier M. Moguerza y Mariano Prieto
VI Jornadas de Usuarios de RSantiago de Compostela 23-24 de octubre de 2014
El Origen
Kaoro IshikawaThe term “7 tools for QC” is namedafter the 7 tools of the famouswarrior, Benkei. Benkei owned 7weapons, which he used to win allhis battles. Similarly, from my ownexperience, you will find that you willbe able to solve 95 % of theproblems around you if you wiselyuse the 7 tools of QC.
— ISHIKAWA KAORU,Professor Emeritus,University of Tokyo–
Imagen: http://asq.org/about-asq/who-we-are/bio_ishikawa.html2
7 poderosas armas 7
Benkey (S. XII)
I Sólo 7 herramientas
I Básicas: las puede utilizar cualquiera, singrandes conocimientos
I Permiten resolver el 95 % de losproblemas . . .
I . . . Si se utilizan de forma inteligente
¡¡ Y las tenemos en R !!3
Las 7 herramientas
1. Diagrama de causa-efecto
2. Hoja de verificación o comprobación
3. Gráfico de control
4. Histograma
5. Gráfico de Pareto
6. Gráfico de dispersión
7. Estratificación1
1Algunos autores consideran el diagrama de flujo o el gráfico de rachas como la séptima herramienta.
4
1. Diagrama de causa-efecto
También conocido como . . .
I Diagrama de Ishikawa
I Diagrama de espina de pescado
Herramienta soft
I Se identifica un problema
I Se identifican las posible causas
I Se agrupan en las 5Ms (o 5Ms+E)
6
Diagrama de causa-efecto – qcc
cManpower <- c("Recepcionist", "Record. Operator","Storage operators")
cMaterials <- c("Supplier", "Transport agency","Packing")
cMachines <- c("Compressor type","Operation conditions","Machine adjustment")
cMethods <- c("Reception", "Transport method")cMeasurements <- c("Recording method",
"Measurement appraisal")cGroups <- c("Manpower", "Materials", "Machines",
"Methods", "Measurements")cEffect <- "Too high density"
7
Diagrama de causa-efecto – qcc (cont.)
library(qcc)par(bg = "white")cause.and.effect(
cause = list(Manpower = cManpower,Materials = cMaterials,Machines = cMachines,Methods = cMethods,Measurements = cMeasurements),
effect = cEffect)
8
Diagrama de causa-efecto – qcc (cont.)
Cause−and−Effect diagram
Too high density
Manpower
Methods
Materials
Measurements
Machines
Recepcionist
Record. Operator
Storage operators
Supplier
Transport agency
Packing
Compressor type
Operation conditions
Machine adjustment
Reception
Transport method
Recording method
Measurement appraisal
9
Diagrama de causa-efecto – SixSigma
library(SixSigma)ss.ceDiag(
effect = cEffect,causes.gr <- cGroups,causes = list(cManpower, cMaterials, cMachines,
cMethods, cMeasurements),main = "Cause-and-effect diagram",sub = "Pellets Density")
10
Diagrama de causa-efecto – SixSigma (cont.)
Cause−and−effect diagram
Pellets Density
Too high density
ManpowerRecepcionist
Record. OperatorStorage operators
MaterialsSupplier
Transport agencyPacking
Machines
Compressor typeOperation conditions
Machine adjustment
Methods
ReceptionTransport method
Measurements
Recording methodMeasurement appraisal
11
Check sheet (hoja de verificación)
La usamos para contar eventos, agrupados por categorías
Imagen:http://asq.org/learn-about-quality/data-collection-analysis-tools/overview/check-sheet.html
13
Check sheets – ¿con R?
I Podemos crear un data.frame para guardar las cuentas
data_checkSheet <- rbind(data.frame(Group = "Manpower",
Cause = cManpower),data.frame(Group = "Machines",
Cause = cMachines),data.frame(Group = "Materials",
Cause = cMaterials),data.frame(Group = "Methods",
Cause = cMethods),data.frame(Group = "Measurements",
Cause = cMeasurements))
14
Check sheets – ¿con R? (cont.)
I Imaginemos que podemos hacer las cuentas por proveedor . . .
data_checkSheet$A_supplier <- NAdata_checkSheet$B_supplier <- NAdata_checkSheet$C_supplier <- NA
15
Check sheets – ¿con R? (cont.)
I Y tendríamos este data.frame en nuestro espacio de trabajo
data_checkSheet
## Group Cause A_supplier B_supplier C_supplier## 1 Manpower Recepcionist NA NA NA## 2 Manpower Record. Operator NA NA NA## 3 Manpower Storage operators NA NA NA## 4 Machines Compressor type NA NA NA## 5 Machines Operation conditions NA NA NA## 6 Machines Machine adjustment NA NA NA## 7 Materials Supplier NA NA NA## 8 Materials Transport agency NA NA NA## 9 Materials Packing NA NA NA## 10 Methods Reception NA NA NA## 11 Methods Transport method NA NA NA## 12 Measurements Recording method NA NA NA## 13 Measurements Measurement appraisal NA NA NA
16
Check-sheets – RMarkdown para recoger datos
---title: "Out of control pellets density check sheet"author: "Quality Control Department"date: "31/01/2015"output: html_document---
Instructions: Mark ticks for the more likely causeof the out-of-control point. Cross every four ticksto make five.
‘‘‘{r, echo=FALSE, results=’asis’}source("checksheet_data.R")library(xtable)print(xtable(data_checkSheet), type = "HTML",
html.table.attributes ="border=1 width=100% cellpadding=10")
‘‘‘
|Week|Operator|Signature||----|--------|---------|| | | |17
El gráfico de control
I La estrella del control estadístico de procesos
I Fácil de dibujar y de interpretar. . .
I Sólida base científica
I Cada punto del gráfico es un contraste de hipótesis
I Identifica situaciones fuera de control cuyas causas hay quebuscar y erradicar
Veremos al final la sorprendente relación de los gráficos de controlcon R. . .
20
El gráfico de control - con el paquete qcc
library(qcc, quietly = TRUE)pb.groups.xbar <- with(ss.data.pb2, qcc.groups(pb.humidity, pb.group))pb.xbar <- qcc(pb.groups.xbar, type="xbar")
xbar Chartfor pb.groups.xbar
Group
Gro
up s
umm
ary
stat
istic
s
1 2 3 4 5 6 7 8 9 10 12 14 16 18 20
11.0
12.0
13.0
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
LCL
UCL
CL
●
Number of groups = 20Center = 12.07StdDev = 0.8878
LCL = 10.88UCL = 13.26
Number beyond limits = 1Number violating runs = 0
21
El histograma
I No necesita presentación
I Identifica la distribución
I Si la distribución es normal, todo va bien. . .
I Podemos añadir información valiosa para el dueño del proceso
23
El histogramalibrary(ggplot2)ggplot(datos, aes(x = ctq)) +
geom_histogram(binwidth = 0.2, colour = "white", fill = "steelblue") +facet_grid(. ~ dest) +geom_vline(xintercept = c(8, 12), lwd = 1, colour = "tomato") +labs(title = "Mean = 10; Standard Deviation:", x = "Weight", y = "Units")
0.6 1
0
5
10
8 10 12 8 10 12Weight
Uni
ts
Mean = 10; Standard Deviation:
24
El principio de Pareto
I El 20 % de las causas . . .
I . . . son responsables del 80 % de losefectos
I Se cumple en muchas situacionesde forma natural
I Útil para priorizar (proyectos,medidas de mejora, . . . )
Imagen: http://ase.signum.sns.it/foto/ParetoB.jpg CC-BY-SA
26
Integrando los datos en R
data_checkSheet$A_supplier <- c(2, 0, 0, 2, 1, 7, 1,3, 6, 0, 1, 2, 0)
data_checkSheet$B_supplier <- c(0, 0, 1, 1, 2, 1, 12,1, 2, 1, 0, 0, 1)
data_checkSheet$C_supplier <- c(0, 1, 0, 6, 0, 2, 2,4, 3, 0, 1, 0, 2)
data_checkSheet$Total <- data_checkSheet$A_supplier +data_checkSheet$B_supplier +data_checkSheet$C_supplier
28
Integrando los datos en R (cont.)
. . . Y lo tenemos todo en el mismo sitio
data_checkSheet
## Group Cause A_supplier B_supplier C_supplier Total## 1 Manpower Recepcionist 2 0 0 2## 2 Manpower Record. Operator 0 0 1 1## 3 Manpower Storage operators 0 1 0 1## 4 Machines Compressor type 2 1 6 9## 5 Machines Operation conditions 1 2 0 3## 6 Machines Machine adjustment 7 1 2 10## 7 Materials Supplier 1 12 2 15## 8 Materials Transport agency 3 1 4 8## 9 Materials Packing 6 2 3 11## 10 Methods Reception 0 1 0 1## 11 Methods Transport method 1 0 1 2## 12 Measurements Recording method 2 0 0 2## 13 Measurements Measurement appraisal 0 1 2 3
29
Gráfico de Pareto – con qcc
par(bg="white")library(qcc)data_pareto2 <- data_checkSheet$Totalnames(data_pareto2) <- data_checkSheet$Causepareto.chart(x = data_pareto2,
main = "Out-of-control causes")
30
Gráfico de Pareto – con qcc (cont.)
Sup
plie
r
Pac
king
Mac
hine
adj
ustm
ent
Com
pres
sor
type
Tran
spor
t age
ncy
Ope
ratio
n co
nditi
ons
Mea
sure
men
t app
rais
al
Rec
epci
onis
t
Tran
spor
t met
hod
Rec
ordi
ng m
etho
d
Rec
ord.
Ope
rato
r
Sto
rage
ope
rato
rs
Rec
eptio
n
Out−of−control causes
Fre
quen
cy
●
●
●
●
●
●
●
●
●
●●
●●
010
2030
4050
6070
0%25
%50
%75
%10
0%
Cum
ulat
ive
Per
cent
age
31
Gráfico de Pareto – con qcc (cont.)
#### Pareto chart analysis for data_pareto2## Frequency Cum.Freq. Percentage Cum.Percent.## Supplier 15 15 22.059 22.06## Packing 11 26 16.176 38.24## Machine adjustment 10 36 14.706 52.94## Compressor type 9 45 13.235 66.18## Transport agency 8 53 11.765 77.94## Operation conditions 3 56 4.412 82.35## Measurement appraisal 3 59 4.412 86.76## Recepcionist 2 61 2.941 89.71## Transport method 2 63 2.941 92.65## Recording method 2 65 2.941 95.59## Record. Operator 1 66 1.471 97.06## Storage operators 1 67 1.471 98.53## Reception 1 68 1.471 100.00
32
El gráfico de dispersión
I Otro viejo conocido
I Otra herramienta sencilla
I Sirve para identificar relaciones entre variables
I Puede darnos pistas sobre las causas de los problemas. . .
I . . . pero sabemos que correlación no es lo mismo que causalidad
I Habría que confirmar con diseño de experimentos (con R, claro)
34
Gráfico de dispersión
par(bg = "white")plot(merma1 ~ temperatura,
data = datosMerma,col = "steelBlue", pch = 16)
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
2.2 2.4 2.6 2.8 3.0 3.2
0.2
0.3
0.4
0.5
0.6
0.7
temperatura
mer
ma1
35
Estratificación
I Básicamente, se aplica a todas las demás herramientas
I Y cualquier otro método utilizado
I Se trata de utilizar cuantas variables de clasificación podamos
I Para hacer los análisis por grupos
I Algunos autores cambian esta herramienta por el gráfico derachas o el diagrama de flujo, pero este es otro debate
37
Estratificación en gráficos
par(bg = "white")plot(varlongterm, ylim = c(70,100), col = gray(.7))
●
●
1 2 3 4 5 6 7 8 9 10
7075
8085
9095
100
grupo
valo
r
38
Estratificación en análisis numéricotapply(varlongterm$valor, varlongterm$grupo, summary)
## $‘1‘## Min. 1st Qu. Median Mean 3rd Qu. Max.## 85.6 89.1 91.2 90.5 91.4 94.3#### $‘2‘## Min. 1st Qu. Median Mean 3rd Qu. Max.## 88.2 90.7 91.5 92.5 94.5 98.2#### $‘3‘## Min. 1st Qu. Median Mean 3rd Qu. Max.## 85.3 86.1 88.1 88.0 89.4 91.5#### $‘4‘## Min. 1st Qu. Median Mean 3rd Qu. Max.## 85.9 88.7 89.3 89.7 90.9 93.3#### $‘5‘## Min. 1st Qu. Median Mean 3rd Qu. Max.## 87.8 90.7 91.4 91.5 92.6 94.3#### $‘6‘## Min. 1st Qu. Median Mean 3rd Qu. Max.## 86.0 88.9 89.6 89.6 90.6 93.6#### $‘7‘## Min. 1st Qu. Median Mean 3rd Qu. Max.## 84.5 87.6 88.8 88.9 90.5 93.0#### $‘8‘## Min. 1st Qu. Median Mean 3rd Qu. Max.## 89.4 90.0 91.5 91.7 92.6 95.3#### $‘9‘## Min. 1st Qu. Median Mean 3rd Qu. Max.## 88.4 91.0 91.7 92.0 93.5 94.6#### $‘10‘## Min. 1st Qu. Median Mean 3rd Qu. Max.## 87.6 89.8 91.0 91.3 93.0 95.9
39
¡R y el Control Estadístico de procesos sonhermanos!
Nacidos de los laboratorios Bell
Walter A. Shewhart, 1920sDesarrolla el control estadístico
de la calidad
John M. Chambers, 1970sCrea el lenguaje S
41
Referencias
E. L. Cano, J. M. Moguerza, and A. Redchuk.Six Sigma with R. Statistical Engineering for Process Improvement, volume 36 of Use R!Springer, New York, 2012.
K. Ishikawa.Introduction to Quality Control.Taylor and Francis, 1990.
D. Montgomery.Statistical Quality Control: A Modern Introduction.Wiley, 2013.
L. Webber and M. Wallace.Quality Control for Dummies.Wiley, 2011.
42