1. Las 7 herramientas básicas
de la calidad con R
Emilio L. Cano, Javier M. Moguerza y Mariano Prieto
VI Jornadas de Usuarios de R
Santiago de Compostela 23-24 de octubre de 2014
2. El Origen
Kaoro Ishikawa
The term “7 tools for QC” is named
after the 7 tools of the famous
warrior, Benkei. Benkei owned 7
weapons, which he used to win all
his battles. Similarly, from my own
experience, you will find that you will
be able to solve 95% of the
problems around you if you wisely
use the 7 tools of QC.
— ISHIKAWA KAORU,
Professor Emeritus,
University of Tokyo–
I2magen: http://asq.org/about-asq/who-we-are/bio_ishikawa.html
3. 7 poderosas armas 7
Benkey (S. XII)
I Sólo 7 herramientas
I Básicas: las puede utilizar cualquiera, sin
grandes conocimientos
I Permiten resolver el 95% de los
problemas . . .
I . . . Si se utilizan de forma inteligente
¡¡ Y las tenemos en R !!
3
4. 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
1
Algunos autores consideran el diagrama de flujo o el gráfico de rachas como la séptima herramienta.
4
6. 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
9. Diagrama de causa-efecto – qcc (cont.)
Cause−and−Effect diagram
Too high density
Manpower
Transport method
Methods
Materials
Supplier
Transport agency
Measurement appraisal
Measurements
Machines
Recepcionist
Record. Operator
Storage operators
Packing
Compressor type
Operation conditions
Machine adjustment
Reception
Recording method
9
10. 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
11. Diagrama de causa-efecto – SixSigma (cont.)
Cause−and−effect diagram
Transport method
Pellets Density
Too high density
Manpower
Recepcionist
Record. Operator
Storage operators
Materials
Supplier
Transport agency
Packing
Operation conditions
Compressor type
Machines
Machine adjustment
Reception
Methods
Measurement appraisal
Recording method
Measurements
11
13. 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
14. 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
15. Check sheets – ¿con R? (cont.)
I Imaginemos que podemos hacer las cuentas por proveedor . . .
data_checkSheet$A_supplier <- NA
data_checkSheet$B_supplier <- NA
data_checkSheet$C_supplier <- NA
15
16. 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
17. 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 cause
of the out-of-control point. Cross every four ticks
to 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 | | |
20. 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 que
buscar y erradicar
Veremos al final la sorprendente relación de los gráficos de control
con R. . .
20
21. 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 Chart
for pb.groups.xbar
Group
Group summary statistics
1 2 3 4 5 6 7 8 9 10 12 14 16 18 20
11.0 12.0 13.0
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
UCL
CL
LCL
l
Number of groups = 20
Center = 12.07
StdDev = 0.8878
LCL = 10.88
UCL = 13.26
Number beyond limits = 1
Number violating runs = 0
21
23. 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
24. El histograma
library(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")
Mean = 10; Standard Deviation:
0.6 1
10
Units
5
0
Weight 8 10 12 8 10 12
24
26. El principio de Pareto
I El 20% de las causas . . .
I . . . son responsables del 80% de los
efectos
I Se cumple en muchas situaciones
de forma natural
I Útil para priorizar (proyectos,
medidas de mejora, . . . )
Imagen: http://ase.signum.sns.it/foto/ParetoB.jpg CC-BY-SA
26
27. Los datos
Recordemos nuestra hoja de verificación
Ahora rellenada por el Dueño del proceso
27
29. 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
30. Gráfico de Pareto – con qcc
par(bg="white")
library(qcc)
data_pareto2 <- data_checkSheet$Total
names(data_pareto2) <- data_checkSheet$Cause
pareto.chart(x = data_pareto2,
main = "Out-of-control causes")
30
31. Gráfico de Pareto – con qcc (cont.)
Supplier
Packing
Machine adjustment
Compressor type
Transport agency
Operation conditions
Measurement appraisal
Recepcionist
Transport method
Recording method
Record. Operator
Storage operators
Reception
Out−of−control causes
Frequency
0 10 20 30 40 50 60 70
l
l
l
l
l
l
l
l
l
l
l
l
l
0% 25% 50% 75% 100%
Cumulative Percentage
31
34. 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
35. Gráfico de dispersión
par(bg = "white")
plot(merma1 ~ temperatura,
data = datosMerma,
col = "steelBlue", pch = 16)
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l l
l
l
l l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
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
merma1
35
37. 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 de
rachas o el diagrama de flujo, pero este es otro debate
37
38. Estratificación en gráficos
par(bg = "white")
plot(varlongterm, ylim = c(70,100), col = gray(.7))
l
l
1 2 3 4 5 6 7 8 9 10
70 75 80 85 90 95 100
grupo
valor
38
39. Estratificación en análisis numérico
tapply(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.
## 39
84.5 87.6 88.8 88.9 90.5 93.0
##
## $‘8‘
41. ¡R y el Control Estadístico de procesos son
hermanos!
Nacidos de los laboratorios Bell
Walter A. Shewhart, 1920s
Desarrolla el control estadístico
de la calidad
John M. Chambers, 1970s
Crea el lenguaje S
41
42. 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