las 7 herramientas básicas de la calidad con r

43
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

Upload: emilio-lopez-cano

Post on 18-Jul-2015

316 views

Category:

Business


0 download

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

5

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

2. Check sheet (hoja de verificación)

12

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

Check-sheets – Listo

18

3. El gráfico de control

19

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

4. El Histograma

22

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

5. El gráfico de Pareto

25

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

Los datosRecordemos nuestra hoja de verificación

Ahora rellenada por el Dueño del proceso

27

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

6. Gráfico de dispersión (scatterplot)

33

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

7. Estratificación

36

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

La sorpresa

40

¡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