Controllo statistico di qualitàold · 2014-02-06 · I 7 strumenti del controllo statistico di...
Transcript of Controllo statistico di qualitàold · 2014-02-06 · I 7 strumenti del controllo statistico di...
Controllo statistico di qualità
1
Introduzione
• Un’azienda vorrebbe che tutti i pezzi prodotti
siano uguali: vuole cioè che la produzione sia
affidabile.
• L’affidabilità della produzione è affidata a due • L’affidabilità della produzione è affidata a due
momenti distinti: la progettazione della
produzione (off line) e il controllo che la
produzione sia almeno conforme ai parametri
specificati (on line).
2
I 7 strumenti del controllo statistico di qualità
ESEMPIO: Un’azienda farmaceutica decide di effettuare un controllo sul pro-
cesso di iniezione di un farmaco, per le cure tumorali, all’interno di appositi
flaconi. L’azienda assume come tollerabili un quantitativo minimo di medicinale
nei flaconi pari a 82 ml e uno massimo di 118 ml e in fase di progetto stabilisce
un quantitativo obbiettivo (target) di 95 ml. Gli operatori addetti a tale compito
hanno a disposizione le misure del contenuto dei flaconi del prodotto medici-
nale riportate nella tabella.3
I dati
Un primo approccio al problema può essere la costruzione di un isto-
gramma.
DOMANDA: quale informazione si perde effettuando un istogramma?
4
Creiamo un file contenente i dati: flaconi.txt.
Può essere fatto direttamente
il download del file dalla pagina
web con il comando:
> data<-matrix(scan('flaconi.txt'),
+ ncol=10, byrow=TRUE)
> download.file("http://oldwww.unibas.it
+ /utenti/dinardo/flaconi.txt","flaconi.txt")Il file viene collocato nella
directory di lavoro corrente
e può essere letto con il
comando:
Alternativamente il file può essere collocato nella directory
C:/Programmi/R/R-3.0.2
specificando il path tra i parametri di input. In questo caso i comandi sono:
> download.file("http://oldwww.unibas.it/utenti/dinardo/flaconi.txt",
+ "C:/Programmi/R/R-3.0.2/flaconi.txt")
6
+ "C:/Programmi/R/R-3.0.2/flaconi.txt")
trying URL 'http://oldwww.unibas.it/utenti/dinardo/flaconi.txt'
Content type 'text/plain' length 619 bytes
opened URL
downloaded 619 bytes> data<-matrix(scan('C:/Programmi/R/R-3.0.2/flaconi.txt'),ncol=10, byrow=TRUE)
Effettuiamo un istogramma dei dati. Per effettuare questo grafico,
i dati vanno collocati in un solo vettore.
> datauniv<-matrix(scan('C:/Programmi/R/R-3.0.2/flaconi.txt'),ncol=1, byrow=TRUE)
Read 120 items
• Tendenza centrale
• Variabilità
Non dà informazioni
Dall’istogramma si può subito notare come i dati seguano approssimativamente una
distribuzione normale, con una piuttosto accentuata variabilità dei dati. Rispetto al
target aziendale il processo è abbastanza centrato, ma la variabilità risulta eccessiva
per cui potrebbe essere necessaria una azione correttiva sulla variabilità del processo7
Non dà informazioni
sulla evoluzione
nel tempo.
I comandi in R per realizzare l’ultimo grafico mostrato sono:
> hist(datauniv,col='blue',labels=F,freq=F,ylim=range(0,0.06),
+ xlim=range(80,120), main='Istogramma campione univ.')
> par(new=TRUE)
> y <-seq(0,0.06,0.06/20)
> x<-rep(118,21)
> plot(x,y,type='l',col='red',lwd='4',xlim=range(80,120))
> par(new=TRUE)
8
> par(new=TRUE)
> x<-rep(95,21)
> plot(x,y,type='l',col='red',lwd='4',xlim=range(80,120))
> par(new=TRUE)
> x<-rep(82,21)
> plot(x,y,type='l',col='red',lwd='4',xlim=range(80,120))
>
Il qqnorm(datauniv) del campione univariato è:
9
Un modo diverso di seguire la produzione nel tempo consiste nell’uso
delle carte di controllo. In R, il pacchetto da usare per costruire le carte
di controllo è:
10
> install.packages('qcc')
> library(qcc)
Per costruire la carta di controllo con il pacchetto qcc, il comando è:
> qcc(data,type='xbar')
List of 11
$ call : language qcc(data = data, type = "xbar")
$ type : chr "xbar"
$ data.name : chr "data"
$ data : num [1:12, 1:10] 94 97 92 94 106 108 95 98 111 85 ...
..- attr(*, "dimnames")=List of 2
$ statistics: Named num [1:12] 99.9 102.1 92.5 94.6 104.5 ...
..- attr(*, "names")= chr [1:12] "1" "2" "3" "4" ...
11
..- attr(*, "names")= chr [1:12] "1" "2" "3" "4" ...
$ sizes : int [1:12] 10 10 10 10 10 10 10 10 10 10 ...
$ center : num 98.5
$ std.dev : num 7.69
$ nsigmas : num 3
$ limits : num [1, 1:2] 91.2 105.8
..- attr(*, "dimnames")=List of 2
$ violations:List of 2
- attr(*, "class")= chr "qcc">
Assieme alla schermata precedente, viene prodotto anche il seguente
grafico:
12
Cosa rappresenta la carta?
I punti rappresentano le medie
campionarie dei sottogruppi.
> rowMeans(data)
[1] 99.9 102.1 92.5 94.6 104.5
92.7 98.2 102.6 96.7 96.1 105.7
96.6
13
I punti sono 12, quanti sono i
giorni monitorati.
Cosa rappresenta la carta?
14
La linea di tendenza centrale rappresenta
la media di tutto il campione> mean(data)
[1] 98.51667
L’evoluzione del grafico viene monitorata in relazione ad altre due linee : UCL e LCL.
Cosa rappresenta la carta?
15
Cosa rappresentano U(pper) C(central) L(imit) e L(ower)C(entral)L(imit)?
3 /x nσ±
Poiché i punti plottati corrispondono a delle medie campionarie, viene
fatto uso della legge dei 3 sigma. Pertanto le linee superiore ed inferiore
corrispondono a
La function qcc di R usa 3 di default. Specificando il livello di confidenza
tra i parametri di input
16
tra i parametri di input
confidence.level a numeric value between 0 and 1 specifying the confidence level of the
computed probability limits.
le linee centrali vengono sostituite da
(1 )/2CONFx zn
σ−±
Come viene calcolata la deviazione standard?
17
> sd.xbar(data)
[1] 7.688976
E’ la function che serve a stimare la deviazione standard associata
alla popolazione. Si possono specificare vari parametri di input.
“UWAVE-R”: UnWeighted AVErage of subgroup estimates based on
subgroup Ranges
Quando la popolazione è gaussiana allora
18
Quando la popolazione è gaussiana allora
2[ ]E R d σ=2
1
1 N
i
i
R dN
σ=
=∑⌢
{ } { }, ,1,...,1,...,
max min range del sottogruppo esimoi i j i j
j nj nR x x i
=== − −
no. sottogruppiN = taglia del sottogruppon =
Ad esempio, usando il pacchetto matrixStats
> install.packages('matrixStats')
> library('matrixStats')
> rowRanges(data)[,1] [,2]
[1,] 85 111
[2,] 92 118
[3,] 84 108
[4,] 86 102
[5,] 93 110
> rowDiffs(rowRanges(data))[,1]
[1,] 26
[2,] 26> mean(rowDiffs(rowRanges(data)))[1] 23.66667
19
[5,] 93 110
[6,] 80 108
[7,] 87 111
[8,] 98 111
[9,] 84 111
[10,] 85 114
[11,] 88 115
[12,] 83 110
>
[2,] 26
[3,] 24
[4,] 16
[5,] 17
[6,] 28
[7,] 24
[8,] 13
[9,] 27
[10,] 29
[11,] 27
[12,] 27
>
[1] 23.66667
> mean(rowDiffs(rowRanges(data)))/3.078[1] 7.688976
12
12
1 1
(10) 12i
i
Rd
σ=
=∑⌢
[ ]2 2Vale che e invece .
Quindi non può essere valutato con .
E S E S
S
σ σ
σ
= ≠
( ) [ ]2
4 4Se , dove è un parametro che dipende da
X N E S c c nµ σ σ≈ ⇒ =
n
"UWAVE-SD" UnWeighted AVErage of subgroup estimates based on
subgroup Standard Deviations
4
1 !2 12
e ! 1 211 2 2 2 2 2
1 !2
n
n n n nc
nnπ
−
= = − − −− −
⋯
[ ]Pertanto sostituiamo con ed abbiamo cheE S S
14
1dove
N
i
i
SS S
c Nσ
=
≈ = ∑201 4
1
( )
Ni
i i
S
N c nσ
=
= ∑⌢ per taglie
diverse!
“MVLUE-R”: Minimum Variance Linear Unbiased Estimator computed as
a weighted average of subgroups estimates based on subgroup Ranges
[ ][ ] 2
2
32 2
RVar R
Var W dσ
σ σ= ⇒ = 3 3
2
R R
Rd d
dσ σ σ
= ⇒ =
Se la popolazione è gaussiana:
11 2
1
( )
Ni i
R
iN i
f R
f f d nσ
=
=+ +
∑⌢
⋯
dove: ( )
( )
2
2
2
i
i
d nf
d n
=
21
11 2 ( )iN if f d n=+ +⋯
( )3 id n
“MVLUE-SD”: Minimum Variance Linear Unbiased Estimator computed as
a weighted average of subgroups estimates based on subgroup Standard
deviations.
11 4
1
( )
Ni i
iN i
h S
h h c nσ
=
=+ +
∑⌢
⋯
dove: ( )
( )
2
4
2
41
i
i
i
c nh
c n
=−
“RMSDF”: Root Mean Square estimator computed as weighted average
of subgroup estimates based on subgroup Standard Deviations.
( ) ( )2 2
1 1
1
1 1N N
N
n S n S
n n Nσ
− + + −=
+ + −
⋯⌢
⋯
QUALE METODO SCEGLIERE?
> sd.xbar(data,std.dev="UWAVE-R")
[1] 7.688976
Taglie costanti:
n <10
22
[1] 7.688976
> sd.xbar(data,std.dev="UWAVE-SD")
[1] 7.817787
n <10
n >10
Taglie variabili:
n <10
n >10
> sd.xbar(data,std.dev="MVLUE-R")
[1] 7.688976
> sd.xbar(data,std.dev="MVLUE-SD")
[1] 7.817787
> sd.xbar(data,std.dev="RMSDF")
[1] 7.723555
>
Cosa rappresenta la carta?
23
CARTE CARTE CARTE CARTE DIDIDIDI CONTROLLOCONTROLLOCONTROLLOCONTROLLO
24
Number beyond limits = 0 Non ci sono punti che cadono al di fuori
dei limiti di controllo.
25
dei limiti di controllo. Number violating runs = 0 Regole di zona
26
>obj<- qcc(data,type='xbar')
List of 11
$ call : language qcc(data = data, type = "xbar")
$ type : chr "xbar"
$ data.name : chr "data"
$ data : num [1:12, 1:10] 94 97 92 94 106 108 95 98 111 85 ...
..- attr(*, "dimnames")=List of 2
$ statistics: Named num [1:12] 99.9 102.1 92.5 94.6 104.5 ...
..- attr(*, "names")= chr [1:12] "1" "2" "3" "4" ...
$ sizes : int [1:12] 10 10 10 10 10 10 10 10 10 10 ...
matrice 12 righe
e 10 colonne
SULLE INFORMAZIONI CONTENUTE IN OBJ
27
$ sizes : int [1:12] 10 10 10 10 10 10 10 10 10 10 ...
$ center : num 98.5
$ std.dev : num 7.69
$ nsigmas : num 3
$ limits : num [1, 1:2] 91.2 105.8
..- attr(*, "dimnames")=List of 2
$ violations:List of 2
- attr(*, "class")= chr "qcc"
> obj$violations$beyond.limits
integer(0)
$violating.runs
numeric(0)
> obj$statistics1 2 3 4 5 6 7 8 9 10 11 12
99.9 102.1 92.5 94.6 104.5 92.7 98.2 102.6 96.7 96.1 105.7 96.6
28
29
30
La carta della media va letta assieme ad una carta che restituisca la va-
riabilità del campione casuale. Quella che segue è la R-Chart.
> qcc(data, type='R')> mean(rowDiffs(rowRanges(data)))[1] 23.66667C
31
La carta della media va letta assieme ad una carta che restituisca la va-
riabilità del campione casuale. Quella che segue è la R-Chart.
> qcc(data, type='R')
3
2
3 3R
Rd
dσ =
linee inf. e sup. 3R
R σ±
32
Quella che segue è la S-Chart.
> qcc(data, type=‘S’)
2
4
2
4
13 [ ] 3
cD S S
c
−=
Si usa per taglie dei sottogruppi maggiori di 10.
linee inf. e sup. 3 [ ]S D S±
33
4
Il grafico riporta i dati all’interno di ogni sottogruppo: questi vengono di-
sposti su una stessa linea, e ogni linea viene posizionata in corrispon-
denza dell’etichetta del sottogruppo.
34CARTA DI TOLLERANZA
> x<-seq(1,12,1)
> for (i in 1:12){
+ plot(rep(i,10),data[i,],type='b',lwd=4,col='red',xlim=range(0,12),ylim=range(70,
120),ylab=' ')
+ par(new=TRUE)
ISTRUZIONI IN R
Quello che segue è un esempio di possibili istruzioni in R per generare il grafico mostra-
to in precedenza:
35
+ par(new=TRUE)
+ }
> plot(x,rep(91.22,12),type='l',col='blue',lwd=4,ylim=range(70,120),xlim=range(0,
12),ylab=' ')
> par(new=TRUE)
>
plot(x,rep(105.81,12),type='l',col='blue',lwd=4,ylim=range(70,120),xlim=range(0,
12),ylab=' ')
>
La carta della tolleranza è una carta sulla distribuzione della variabile che si sta monitorando.
La carta della media è una carta sulla distribuzione della media campionaria della variabile
che si sta monitorando.
36
Uno spostamento della media del processo produttivo provoca l’apparire di una
anomalia sulla carta di controllo della media: anche quando tale variazione sarà
minima i punti della carta di controllo reagiranno in maniera apprezzabile
La carta di controllo e il processo stocastico relativo alla produzione…
37
Una variazione nella dispersione del processo produttivo provocherà anomalie
avvertibili sia sulla carta di controllo della media che su quella della escursione.
Carte MR (moving range)
rank x rank x
1 10,3 9 10,3
38
Non avendo più a disposizione gruppi di
misurazioni, ma singoli valori, i limiti della
carta di controllo cambiano.
L’escursione nel sottogruppo (max-min)
viene sostituita dalla differenza tra due
valori consecutivi.
1i i iMR x x+= −
1 10,3 9 10,3
2 10,1 10 9,8
3 10,3 11 10,1
4 10,1 12 9,8
5 10,2 13 10,1
6 10,7 14 9,6
7 10 15 10,1
8 9,6
> qcc(data,type='xbar.one')
39
Senza nessun altra specifica, i limiti della carta di controllo sono calco-
lati usando la media campionaria dei MR.
> qcc(data,type='xbar.one‘,std.dev=“SD”) Con questa istruzione il
calcolo
della stima
della varia-
bilità
cambia
40
> sd(datamr)/0.9823[1] 0.2942124
4con 0.9823 (15)c=
Carta p
• Si basa sulla percentuale di pezzi non conformi
nel sottogruppo monitorato.
• La numerosità campionaria dei sottogruppi
può essere non costante.può essere non costante.
• La numerosità campionaria deve essere
elevata. Perché?
• La v.a. binomiale (e di Bernoulli) gioca un
ruolo fondamentale.
41
ˆLa percentuale di pezzi non conformi è data da , dove ha legge...D
p Dn
=
...binomiale di parametri e ( =taglia del sottogruppo)n p n
I limiti di controllo sono:
(1 )3 (se 5, (1- ) 5 è approx. gaussiana)
p pp np n p D
−± > >
(1 )3 (se 5, (1- ) 5 è approx. gaussiana)
p pp np n p D
n
−± > >
Se non è nota, si può sostituire con una stima p p
1
1 num.pezzi non conformi dove
Ni
i i
i
Dp p p
N n n=
= = =∑42
Esercizio: Un concentrato di succo d'arancia è congelato e imballato in lattine di car-
tone da 180ml. Queste lattine sono costruite usando una macchina che avvolge il
cartone e poi lo appoggia su un pannello inferiore in metallo. Ispezionando una lat-
tina, possiamo stabilire se, quando è piena, si può avere una perdita del succo dalla
cucitura laterale o dal pannello inferiore. Tale non conformità può comportare un
sigillo improprio nella guarnizione laterale oppure sul pannello inferiore.
Vogliamo costruire una carta di controllo per migliorare la percentuale di lattine non
conformi prodotte dalla macchina.
A questo scopo vengono selezionati 30 campioni di n = 50 lattine ciascuno, ogni
mezz’ora su 3 periodi della giornata in cui la macchina è sempre in funzione.
43
> download.file("http://oldwww.unibas.it/utenti/dinardo/difetti.txt",
+ "C:/Programmi/R/R-3.0.2/difetti.txt")
> data<-matrix(scan('C:/Programmi/R/R-3.0.2/difetti.txt'),ncol=1,
+ byrow=TRUE)
I dati relativi all’esercizio sono disponibili al seguente indirizzo:
> qcc(data,50,type='p')
> mean(data)[1] 11.56667
> mean(data)/50
[1] 0.2313333> p<-mean(data)/50
> p-3*sqrt(p*(1-p)/50)
[1] 0.05242755
> p+3*sqrt(p*(1-p)/50)
[1] 0.4102391
> sqrt(p*(1-p))
[1] 0.421685
44
Il campione 15 e 23 sono fuori controllo statistico: pertanto vanno monitorati.
Nuovo
operatore
Quando ci sono dei sottogruppi fuori controllo statistico, la prassi suggerisce di effet-
tuare nuovamente il grafico della carta, eliminando questi campioni.
A tale scopo, affianchiamo i dati da una colonna dove inseriamo una variabile di carattere che
assume valore TRUE in corrispondenza di quei valori che desideriamo far comparire nel grafico.
45
Nuova
partita di
cartone
> setwd("C:/Programmi/R/R-3.0.2/")
Creiamo un file di nome difettinew.txt nella libreria R-3.0.2. Etichettiamo
con FALSE quei valori che non vogliamo vengano visualizzati sul grafico.
Directory corrente.
Nel workspace dati sono stati inseriti i
> dati<-read.table("difettinew.txt",header=TRUE)
46
> attach(dati)
Si rendono accessibili i vettori in
dati come variabili singole.
> obj<-qcc(value[labels],50,type="p")
Nel workspace dati sono stati inseriti i
vettori value e labels.
47
Se non si ritiene significativa la causa che ha portato al fuori controllo statistico nel
sottogruppo 21, allora per future ispezioni si mantengono questi come limiti della
carta di controllo.
Supponiamo che siano stati campionati altri 24 sottogruppi: per moni-
torare il processo usiamo i limiti di controllo che sono stati calcolati
precedentemente.Nel file difettinew.txt aggiungiamo le nuove
osservazioni ed anche un vettore contenente
le taglie dei sottogruppi.
Nella function qcc, usiamo la
variabile newdata per aggiungere
al grafico le nuove osservazioni,
mantenendo le statistiche ed i
48
mantenendo le statistiche ed i
limiti di controllo del passo
precedente.
> obj<-qcc(value[labels][1:28],
+ sizes=size[labels][1:28],type='p',
+ newdata=value[labels][29:52],
+ newsizes=size[labels][29:52])
>
49
Cambiamento della macchina per imballaggio?
Sono statisticamente differenti le due produzioni?
Carta npSi lavora non con la percentuale dei pezzi non conformi, ma con il
numero di pezzi non conformi.
ˆLa percentuale di pezzi non conformi è data da , dove ha legge...D
p Dn
=
...binomiale di parametri e p.n...binomiale di parametri e p.n
Nella carta si lavora con ( , (1- ))np D N np np p≈
I limiti della carta di controllo sono dunque: 3 (1 )np np p± −
dove viene sostituito con p p
Tornando all’esempio di prima…
50
> obj<-qcc(value[labels][1:28],sizes=size[labels][1:28],type="np",
+ newdata=value[labels][29:52],newsizes=size[labels][29:52])
51
Carta c
• Misura il numero di difetti in un lotto controllato.
• Il campionamento deve essere costante.
• E’ utile quando vi è da controllare un • E’ utile quando vi è da controllare un materiale con un flusso di produzione continuo (rullo di tessuto o cavo elettrico).
• La non conformità è da esprimersi per unità da definire (difetti al m^2, etc.)
• Il lotto è inscindibile.
52
La v.a. che conta il numero di difetti per unità di misura è ....
...una v.a. di Poisson
I limiti della carta di controllo sono 3 dove è la costante
di Poisson.
c c c±
In mancanza di un valore teorico per si utilizza la media campionaria.c
Esercizio: Si riporta il numero di non-conformità osservato in 26 cam-
pioni prodotti in una successione di 100 circuiti stampati (100 circuiti
stampati = 1 lotto).stampati = 1 lotto).
53
> setwd("C:/Programmi/R/R-3.0.2/")
> dati<-read.table("cartac.txt",header=FALSE)
> attach(dati)
Come linea centrale
ci aspettiamo: > mean(val)
[1] 19.84615Come linee superiore ed inferiore:
> mean(val)+3*sqrt(mean(val))
[1] 33.21086
> mean(val)-3*sqrt(mean(val))
[1] 6.481447
54
> sqrt(mean(val))
[1] 4.454902
Nell’esempio precedente, è stato preso in considerazione un solo lotto. Tuttavia questo
tipo di scelta non è statisticamente significativa. Sarebbe meglio ispezionare più lotti,
perché c’è maggiore possibilità di incontrare non conformità.
Ad esempio potremmo essere interessati ad ispezionare 2 lotti e mezzo,
ossia 250 circuiti.
Carta U
Si calcola il numero di non conformità totali x e lo si rapporta al numero Si calcola il numero di non conformità totali x e lo si rapporta al numero
totale m di lotti esaminati. x
um
=Il num. di pezzi non conformi totali ,
è una v.a. di Poisson, di cui / rap-
presenta il numero medio di pezzi non
conformi per unità di lotto. è il nume-
ro di pezzi non conformi per sottogrup-
po.
x
x m
n
3u
u un
= ∓
55
La successiva colonna riporta il num di difetti per lotto. Costruire la carta c.
Num. Num. m^2
1 500
2 400
3 650
In tabella sono riportati le misure (in m^2) di stoffe vendute da un certo negozio e
sulle quali sono state riscontrate delle difettosità.
Le stoffe sono suddivise in rotoli da 50m^2 di tessuto.
Num.dif.
14
12
20
In tutto, il negozio ha venduto 5375 m^2
di stoffa, suddivisi in 5375/50=107.5 rotoli
153
107.5u =
4 500
5 475
6 500
7 600
8 525
9 600
10 625
Totale 537556
11
7
10
21
16
19
23
153
107.5u =
In questo caso, non essendoci una
sola taglia comune ai sottogruppi,
i limiti di controllo sono:
1
3 (0.33,2.51)
1con 10.75
k
i
i
uu
m
m nk =
± =>
= =∑
> dati<-read.table("cartau.txt",header=TRUE)
> attach(dati)
> qcc(values, 10.75, type="u")
Il valore della taglia comune
57
> qcc(values, sizes, type="u")
Alternativamente, è possibile usare taglie diverse per
ogni sottogruppo.
58
Nell’esempio dei flaconi prodotti per l’ospedale, i limiti di specifica
stabiliti in fase di progettazione sono 82 ml e 118 ml.
La carta di controllo può essere utilizzata per descrivere la capacità del
processo di produrre all’interno dei valori di specifica.
STRATEGIA SIX-SIGMA
Una misura della percentuale di produzione che esce dai limiti di con-
trollo è un indice che fornisce la % di pezzi non conformi prodotti
59
Basta calcolare ( 82) ( 118) ipotizzando che...P X P X< + >
(98.51,7.68) dove 98.51 e 7.68 sono le stime tro-
vate con la carta di controllo.
X N x sµ σ≈ ⇐ = ⇐ =
trollo è un indice che fornisce la % di pezzi non conformi prodotti
> pnorm(82, 98.51, 7.68)+1-pnorm(118,98.51,7.68)[1] 0.02136613 (ossia 213 parti su 10.000 risultano non conformi)
Più in generale indichiamo con
( ) ( ) 1ˆ ˆ
ULe L U
T xT xp P X T P X T
σ σ
−− = < + > = Φ + − Φ
Quando % di non conformi è minima2
L UT T
x+
= ⇒
Nell’esempio è (82+118)/2=100
60
Sull’asse delle ascisse sono
riportati vari valori della
media campionaria.
Altro modo per misurare l’indice di capacità del processo è il cosidetto
PCR (process capability ratio) :
6
U Lp
T TC
σ
−=
Si noti che 6 è la definizione di capacibase della del procetà sso.σ
In genere la deviazione standard non si conosce e quindi va stimata
INDICE INDICE INDICE INDICE DIDIDIDI CAPACITA’ DEL PROCESSOCAPACITA’ DEL PROCESSOCAPACITA’ DEL PROCESSOCAPACITA’ DEL PROCESSO
In genere la deviazione standard non si conosce e quindi va stimata
dai dati. Si usa il valore restituito dalla carta di controllo.
61
Nell’esempio dei flaconi:
> cp<-(118-82)/(6*7.68)
> cp
[1] 0.78125
cp<1 : il processo non è capace di
produrre entro i limiti di specifica
cp>1: il processo è capace di produrre
entro i limiti di specifica
Se il processo non è centrato, avere PCR>1 non garantisce che il
processo produca la quasi totalità dei prodotti entro i limiti di
specifica (è capace di farlo, ma
non è detto che lo faccia)
Ci vuole un indice che tenga conto della
centratura.
min ,U LT T
Cµ µ− −
= min ,3 3
U Lpk
T TC
µ µ
σ σ
− − =
62
Calcolare gli indici Cp e Cpk
per l’esempio dato.
RELAZIONE TRA I DUE INDICI
63
Un impiegato esce di casa tutti i giorni alle 8.00 e deve entrare al lavoro alle 8.30. Per
raggiungere l’ufficio in auto ha due possibilità: attraversare la città, o seguire un percor-
so di campagna, più lungo ma meno trafficato. Per decidere quale sia il percorso più con-
veniente, misura il tempo di percorrenza più volte su entrambi i percorsi e trova che
attraversando la città impiega mediamente 25 minuti, mentre per il percorso in cam-
pagna occorrono in media 28 minuti. Quale percorso gli conviene seguire?
Vecchia risposta: l’uomo dovrebbe scegliere il percorso cittadino, che in media è più veloce
Risposta Sei Sigma: la media non è un
indicatore significativo per questo studio.
Infatti l’impiegato è penalizzato quando
arriva in ritardo, ma non ha alcun benefi-arriva in ritardo, ma non ha alcun benefi-
cio quando arriva in anticipo. L’uomo de-
finirebbe come difettosi i percorsi che
richiedono più di 30 minuti di viaggio.
Quindi si deve analizzare l’intera distri-
buzione dei dati nei due casi, riportata
in figura. Come si vede, il percorso cittadino presenta una forte variabilità dei dati,
perché è molto influenzato (oltre che poco prevedibile) dal traffico; il percorso di
campagna invece richiede un tempo praticamente costante. Visto l’alto numero di
difetti nel caso del percorso cittadino, è evidente che quello di campagna è prefe-
ribile dal punto di vista dell’impiegato. 64
In R la seguente function restituisce queste informazioni.
> process.capability(obj, spec.limits=c(82, 118))
Process Capability Analysis
Call: process.capability(object = obj, spec.limits = c(82, 118))
Number of obs = 120 Target = 100
Center = 98.51667 LSL = 82
StdDev = 7.688976 USL = 118
Capability indices:
_ _,3 3
U Lp l p u
T TC C
µ µ
σ σ
− −= =
Capability indices:
Value 2.5% 97.5%
Cp 0.7803 0.6813 0.8793
Cp_l 0.7160 0.6247 0.8073
Cp_u 0.8446 0.7416 0.9477
Cp_k 0.7160 0.6073 0.8248
Cpm 0 .7662 0.6676 0.8647
Exp<LSL 1.6% Obs<LSL 0.83%
Exp>USL 0.56% Obs>USL 0%
( )226 Target
U LPM
T TC
σ µ
−=
+ −
La variabilità è aumentata se c’è uno
scostamento significativo della media
del processo dal target
Infine Exp<LSL 1.6% Obs<LSL 0.83%
Exp>USL 0.56% Obs>USL 0%
Exp = restituisce un vettore di valori contenente la percentuale di osservazioni inferiori a
LSL e superiori a USL, sotto ipotesi di distribuzione gaussiana
> 1.6/100+0.56/100[1] 0.0216
Obs = restituisce un vettore di valori
contenente la frazione di osserva-
zioni minori di LSL e maggiori di
= % attesa di prodotti non conformi
66
USL
= % osservata di prodotti non conformi
In output il seguente grafico:
67
…ma sono costosi!
STRATEGIE DI CAMPIONAMENTO
La pratica industriale corrente preferisce la prima strategia – aumentan-
do la frequenza
68
Approccio SNAPSHOT Approccio RANDOM
Quanti k?
69
Sia la variabile aleatoria che indica il numero di sottogruppi
da estrarre prima di avere un punto al di fuori dei limiti della
carta di controllo. ha legge...
T
T
1...geometrica, ( ) (1 ) , 1,2,...kP T k p p k
−= = − =
[ ]1
ARL, tempo medio per avere un fuori controlloE Tp
=
ALR (AVERAGE LONG RUN)
pQuanto vale p? Nella carta 3-sigma, la probabilità che il processo sia in
controllo statistico è data dalla legge dei 3-sigma, ossia
Quindi la probabilità che il processo
vada fuori controllo è 1-app,
pertanto[ ] 370E T =
70
> app<- pnorm(3,0,1)-pnorm(-3,0,1)[1] 0.9973002
> 1/(1-app)
[1] 370.3983
Limiti carte Shewhart
Caratteristica principale delle carte di Shewhart è che nel calcolo
del valore della statistica da inserire nella carta di controllo,
esse fanno uso unicamente dell’informazione sul processo
contenute nell’ultimo istante di osservazione, ignorando tutti
quelli precedenti.
Ciò rende la carta di Shewart relativamente insensibile alle
piccole variazioni del livello del processo (di ampiezza in
genere non superiore a 1.5 volte la deviazione standard)
Carte CUMSUM (cumulative sum) = somme cumulate
Carte EWMA (Exponential Weighted Moving Average) = medie mobili pesate espo-
nenzialmente.71
Possibili alternative:
Queste due carte funzionano bene nei confronti di piccole variazioni
mentre non reagiscono altrettanto bene – a differenza della carta di
Shewarth – per variazioni maggiormente significative. Può quindi essere
utile combinare l’uso di queste due carte con la carta di Shewart.
Esempio: i dati nel file cumsumchart.txt sono stati costruiti al
seguente modo: i primi 20 sono stati selezionati da una popolazione
gaussiana di media 10 e deviazione standard 1. I rimanenti 10 sono
stati selezionati da una popolazione gaussiana di media 11 e di stati selezionati da una popolazione gaussiana di media 11 e di
deviazione standard 1. Questi ultimi si possono pensare come
selezionati da un processo che è andato fuori controllo statistico.
72
data<-matrix(scan('C:/Programmi/R/R-3.0.2/cumsumchart.txt'),ncol=1,byrow=TRUE)
I dati sono disponibili nel seguente file:
73
La carta della media non segnala subito la variazione!
{ }
{ }1
1
0
Nella carta CUMSUM viene effettuato un duplice grafico:
max ,0 ( )
max ,0 ( )
i i
i i
B B ii
i
XA A i
S k
k
S Z below xZ
S S Z above
µ
σ
−
−
= − − −⇒ =
= + −
Il grafico è l’output
della seguente istruzione
> cusum(data)
decision interval
74
Exponential chart
• Serve a monitorare un processo che media i
dati in modo che a questa media viene dato
sempre meno peso, man mano che il tempo
passapassa
• Viene valutata su tutto il processo e non sui
sottogruppi razionali
• Più sensibile ai drift nel tempo
• Robusta nel caso non normale
75
Sulla carta vengono plottati i valori:
1(1 )i i iz x zλ λ −= + −
0Il valore iniziale è .µ In mancanza di questo, si può usare .x
1 -bar chart
(0,1)
=0.2 in R
Xλ
λ
λ
• = ⇒
• ∈
•
2 2( ) (1 (1 ) )iVar z
λσ λ
= − −
Si dimostra che:
76
2 2( ) (1 (1 ) )2
i
iVar zλ
σ λλ
= − −
−
Questo valore caratterizza i limiti della carta di controllo, che
quindi dipendono da , ma al crescere di perdono tale dipen-
denza.
i i
>ewma(data)La carta EWNA per i dati nel file flaconi.txt.
77
I punti della successione di dati sono contrassegnati da croci,
le medie mobili sono contrassegnate da pallini.
I DIAGRAMMI DI PARETO
78
79
In R, bisogna creare un vettore contenente le frequenze assolute dei difetti:
> defect <- c(72, 103, 18, 196, 25)
Poi un vettore contenente le etichette dei difetti:
> names(defect) <- c('Imbottigliamento','Etichettatura','Liquido torbido','Capacità',
+ 'Colore bottiglia')
E infine il comando: pareto.chart(defect)
80
DIAGRAMMI DI CAUSA ED EFFETTO
81
ESEMPIO
82
SCHEDE DI CONTROLLO
83
FOGLIO DI SINTESI
84