41
Controllo statistico dei processi Casi di studio risolti con GNU R Paolo Bosetti Dipartimento di Ingegneria Meccanica e Strutturale Universit`a di Trento corso di Gestione dell’Innovazione e dei Progetti, A.A. 2005/06 Novembre 2005

Esercizi di Statistica

Embed Size (px)

DESCRIPTION

Alcuni esercizi di statistica inferenziale risolti con R

Citation preview

Page 1: Esercizi di Statistica

Controllo statistico dei processi

Casi di studio risolti con GNU R

Paolo BosettiDipartimento di Ingegneria Meccanica e Strutturale

Universita di Trentocorso di Gestione dell’Innovazione e dei Progetti, A.A. 2005/06

Novembre 2005

Page 2: Esercizi di Statistica

ii Paolo Bosetti - Universita di Trento

Page 3: Esercizi di Statistica

Indice

1 Statistica Inferenziale 11.1 Note iniziali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Test inferenziali su due trattamenti . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.1 Inferenza sulle medie, varianza nota . . . . . . . . . . . . . . . . . . . . . 21.2.2 t-Test a un campione, a varianza ignota, a un lato . . . . . . . . . . . . . 31.2.3 t-Test a un campione, a varianza ignota, a un lato . . . . . . . . . . . . . 41.2.4 t-Test a due campioni, a varianza ignota, a due lati . . . . . . . . . . . . . 51.2.5 t-Test accoppiato, varianza ignota, a due lati . . . . . . . . . . . . . . . . 61.2.6 t-Test accoppiato, a varianza ignota, a due lati . . . . . . . . . . . . . . . 81.2.7 F-test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.3 Test inferenziali su piu di due trattamenti . . . . . . . . . . . . . . . . . . . . . . 91.3.1 Note iniziali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.3.2 Esercizio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.3.3 Esercizio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.4 Contrasti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.3.5 Esercizio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2 Quality Control ChartsStatistica di Controllo di Processo 232.1 Note iniziali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2 Carte di controllo per dati attribuiti . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.2.1 Carte p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2.2 Carte np . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.3 Carte c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.2.4 Carte u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.3 Carte di controllo per dati variabili . . . . . . . . . . . . . . . . . . . . . . . . . . 312.3.1 Carte x−R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

iii

Page 4: Esercizi di Statistica

INDICE

iv Paolo Bosetti - Universita di Trento

Page 5: Esercizi di Statistica

Introduzione

Questa breve memoria contiene una traccia degli esercizi di statistica proposti agli studenti delcorso di Gestione dell’Innovazione e dei Progetti.

Il documento e stato composto in LATEX 2εcon il supporto della libreria R Sweave[1], checonsente di mescolare liberamente codice R nel documento LATEX.

v

Page 6: Esercizi di Statistica

INDICE

vi Paolo Bosetti - Universita di Trento

Page 7: Esercizi di Statistica

Capitolo 1

Statistica Inferenziale

1.1 Note iniziali

In questo capitolo vengono risolti mediante il pacchetto GNU R alcuni esercizi di statisticainferenziale su due trattamenti e su piu trattamenti (ANOVA). Una dettagliata esposizione dellebasi teoriche puo essere reperita sui testi di Montgomery e di Ross ([3, 4]).

Per la soluzione degli esercizi saranno impiegate le funzioni di distribuzione di R. Le funzioninecessarie hanno nomi cosı costruiti:

[d|p|q|r][norm|t|chisq|f](arg1,...,argn)

dove le prime lettere indicano la funzione e sono seguiti dal nome della distribuzione (rispetti-vamente: normale, t di Student, chi quadro, F di Snedecor). Le funzioni d riportano la densitadi probabilita, le p riportano la distribuzione cumulativa, le q riportano i quantili, e le r gene-rano n valori opportunamente distribuiti. Si noti che le funzioni di tipo p e q possono riferirsialla probabilita cumulativa inferiore o superiore, specificando rispettivamente lower.tail=T olower.tail=F. Ad esempio:

pt(t0,n,lower.tail=F)

restituisce la probabilita di riscontrare, in una variabile casuale distribuita come tn, un valoresuperiore a t0. Le funzioni q, infine, sono le inverse delle funzioni p (vedi Figura 1.1).

> split.screen(c(2, 2))

[1] 1 2 3 4

> screen(1)

> curve(pt(x, 10), xlim = c(-5, 5), xlab = "t", main = "Lower tail")

> screen(2)

> curve(qt(x, 10), xlim = c(0, 1), xlab = "p", main = "Lower tail")

> screen(3)

> curve(pt(x, 10, lower.tail = F), xlim = c(-5, 5), xlab = "t",

+ main = "Upper tail")

> screen(4)

> curve(qt(x, 10, lower.tail = F), xlim = c(0, 1), xlab = "p",

+ main = "Upper tail")

1

Page 8: Esercizi di Statistica

CAPITOLO 1. STATISTICA INFERENZIALE

−4 0 2 4

0.0

0.4

0.8

Lower tail

t

pt(x

, 10)

0.0 0.4 0.8

−2

02

Lower tail

p

qt(x

, 10)

−4 0 2 4

0.0

0.4

0.8

Upper tail

t

pt(x

, 10,

low

er.ta

il =

F)

0.0 0.4 0.8

−2

02

Upper tail

p

qt(x

, 10,

low

er.ta

il =

F)

Figura 1.1: Curve di distribuzione e di probabilita

1.2 Test inferenziali su due trattamenti

1.2.1 Inferenza sulle medie, varianza nota

Si suppone che la viscosita di un detergente liquido sia pari a 800 centistoke a 25°C. le misureeffettuate su un campione casuale di 16 elementi rilevano un viscosita media pari a 812 centistokes.Supponendo che la varianza della popolazione sia pari a 25 centistoke,

1. stabilire le ipotesi da verificare

2. Verificare le ipotesi con α = 0.05

3. Ricavare il valore di probabilita associato al test

4. calcolare i limiti dell’intervallo di probabilita al 95%

Soluzione

Le ipotesi di test sono:

H0 : µ = µ0 = 800

H1 : µ 6= µ0

La variabile di test e:

Z0 =y − µ0

σ/√n

=812− 800

25/4= 1.92

Il valore critico della variabile di test risulta pari a:

Z0.025 = 1.96

Di conseguenza, siccome risulta |Z0| < Z0.025, l’ipotesi nulla non puo essere rigettata.Il livello di probabilita associato all’errore di tipo I puo essere ottenuto dalla funzione di

distribuzione integrale sulla coda superiore (upper tail). Con R, si puo scrivere:

2 Paolo Bosetti - Universita di Trento

Page 9: Esercizi di Statistica

1.2. TEST INFERENZIALI SU DUE TRATTAMENTI

−4 −2 0 2 4

0.0

0.2

0.4

0.6

0.8

1.0

Z0

p

dnorm

pnorm

Z0.025

Figura 1.2: Distribuzione della statistica di test Z0

> pnorm(Z0, lower.tail = F)

[1] 0.02742895

dove il valore p = 0.027429 comporta che la probabilita di commettere un errore di tipo II, ossiaaccettare l’ipotesi nulla H0 quando essa e falsa, vale 1− p = 0.972571

I limiti dell’intervallo di confidenza possono essere cosı calcolati:

U = y + Zα/2σ/√n = 824.25

L = y − Zα/2σ/√n = 799.75

1.2.2 t-Test a un campione, a varianza ignota, a un lato

Il tempo di vita di una bibita gassata imbottigliata e una variabile casuale con distribuzionenormale. Un campione di 10 bottiglie scelte a caso viene utilizzato per dimostrare che la vitamedia e superiore a 120 giorni. I valori del tempo di vita del campione sono:

> days

[1] 108 124 124 106 115 138 163 159 134 139

Si assuma α = 0.01.

Soluzione

Le ipotesi da verificare sono quelle relative ad un t-test ad un campione, a varianza ignota e nelcaso di ipotesi alternativa ad un lato:

H0 : µ = µ0 = 120

H1 : µ > µ0

3

Page 10: Esercizi di Statistica

CAPITOLO 1. STATISTICA INFERENZIALE

Il valore della statistica di controllo e: t0 = 1.779758, mentre t0.01,9 = 2.821438, e il livello diprobabilita e p = 0.054409. L’ipotesi nulla va quindi accettata, con il 1−p = 94.56% di probabilitadi commettere un errore di tipo II in caso contrario. In altre parole non c’e evidenza statisticache la vita media del prodotto superi i 120 giorni.

I limiti dell’intervallo di confidenza risultano essere:

U = y + tα,n−1S/√n = 148.438

L = y − tα,n−1S/√n = 60.996

Ricorrendo alla funzione t.test di R:

> t.test(days, mu = mu0, alternative = "g", conf.level = alpha)

One Sample t-test

data: days

t = 1.7798, df = 9, p-value = 0.05441

alternative hypothesis: true mean is greater than 120

1 percent confidence interval:

148.4382 Inf

sample estimates:

mean of x

131

1.2.3 t-Test a un campione, a varianza ignota, a un lato

Sulla base di un campione di 16 tempi di riparazione per strumenti elettronici, si vuole stabilirese il tempo di riparazione medio e maggiore di 225 ore, con una probabilita di errore pari a 0.05.Il campione e il seguente (tempi in ore):

> rt

[1] 159 224 222 149 280 379 362 260 101 179 168 485 212 264 250 170

Soluzione

Le ipotesi da verificare sono quelle relative ad un t-test ad un campione, a varianza ignota e nelcaso di ipotesi alternativa ad un lato:

H0 : µ = µ0 = 225

H1 : µ > µ0

Ricorrendo alla funzione t.test di R si ottiene:

> t.test(rt, mu = mu0, alternative = "g", conf.level = alpha)

One Sample t-test

data: rt

t = 0.6685, df = 15, p-value = 0.257

alternative hypothesis: true mean is greater than 225

5 percent confidence interval:

4 Paolo Bosetti - Universita di Trento

Page 11: Esercizi di Statistica

1.2. TEST INFERENZIALI SU DUE TRATTAMENTI

284.7679 Inf

sample estimates:

mean of x

241.5

Dal valore di probabilita 0.257 > 0.05 si deduce che l’ipotesi nulla H0 : µ = µ0 non puo essererigettata, e la probabilita di commettere un errore di tipo II e pari a 74.3% .

Si noti inoltre che risulta

tα,n−1 = qt(alpha,n-1,lower.tail=F) = 1.7531 > t0 = 0.6685

che conferma la mancanza di evidenza statistica per rifiutare l’ipotesi nulla. La relativamenteridotta probabilita di errori di tipo II, infine, e dovuta all’elevata varianza del campione (S =98.7259).

1.2.4 t-Test a due campioni, a varianza ignota, a due lati

Usando i dati, relativi alla resistenza a compressione di campioni di cemento preparati i duedifferenti mortai, disponibili alll’URL http://meccablog.ing.unitn.it/data/mortar.dat, ve-rificare che i due campioni abbiano medie differenti (α = 0.05).

Soluzione

Le ipotesi da verificare sono quelle relative ad un t-test ad due campioni, a varianza ignota e nelcaso di ipotesi alternativa a due lati:

H0 : µ1 = µ2

H1 : µ1 6= µ2

In R, si caricano i dati mediante la funzione read.table direttamente dall’URL specificata:

> mortar <- read.table("http://meccablog.ing.unitn.it/data/mortar.dat",

+ header = T)

> attach(mortar)

> mortar

Observation Mortar Strength

1 1 1 17.50

2 2 1 17.63

3 3 1 18.25

4 4 1 18.00

5 5 1 17.86

6 6 1 17.75

7 7 1 18.22

8 8 1 17.90

9 9 1 17.96

10 10 1 18.15

11 1 2 16.85

12 2 2 16.40

13 3 2 17.21

14 4 2 16.35

5

Page 12: Esercizi di Statistica

CAPITOLO 1. STATISTICA INFERENZIALE

15 5 2 16.52

16 6 2 17.04

17 7 2 16.96

18 8 2 17.15

19 9 2 16.59

20 10 2 16.57

Ricorrendo alla funzione t.test di R si ottiene:

> test <- t.test(Strength ~ Mortar, var.equal = T, conf.level = alpha)

> test

Two Sample t-test

data: Strength by Mortar

t = 9.1094, df = 18, p-value = 3.678e-08

alternative hypothesis: true difference in means is not equal to 0

5 percent confidence interval:

1.149917 1.166083

sample estimates:

mean in group 1 mean in group 2

17.922 16.764

Siccome p = 3.678e− 08 < 0.05, se ne deduce che l’ipotesi nulla puo essere rigettata, con unaprobabilita di errore di tipo I pari a 3.678e − 08. Il diagramma boxplot dei dati (Figura 1.3)conferma la conclusione.

1 2

16.5

17.0

17.5

18.0

Mortar

Str

engt

h

Figura 1.3: Box-plot per i dati mortar.dat

1.2.5 t-Test accoppiato, varianza ignota, a due lati

Si vuole verificare che la media delle misure di durezza effettuate con due differenti indentatori siauguale. A tale scopo sono effettuate 20 prove di durezza su 10 campioni dello stesso materiale,

6 Paolo Bosetti - Universita di Trento

Page 13: Esercizi di Statistica

1.2. TEST INFERENZIALI SU DUE TRATTAMENTI

effettuando due indentazioni per campione con le due differenti punte. I dati risultanti sonodisponibili all’URL: http://meccablog.ing.unitn.it/data/hardness.dat. Si consideri unlimite di confidenza α = 0.05.

Soluzione

Le ipotesi da verificare sono quelle relative ad un t-test accoppiato, a varianza ignota e uguale enel caso di ipotesi alternativa a due lati:

H0 : µd = 0

H1 : µd 6= 0

Ricorrendo alla funzione t.test di R si ottiene:

> t.test(Tip1, Tip2, var.equal = T, conf.level = alpha, paired = T)

Paired t-test

data: Tip1 and Tip2

t = -0.2641, df = 9, p-value = 0.7976

alternative hypothesis: true difference in means is not equal to 0

5 percent confidence interval:

-0.12441052 -0.07558948

sample estimates:

mean of the differences

-0.1

Siccome p = 0.7976 > 0.05, se ne deduce che l’ipotesi nulla non puo essere rigettata, con unaprobabilita di errore di tipo II pari a 0.2024 in caso contrario. Il diagramma boxplot dei dati(Figura 1.4) conferma la conclusione.

23

45

67

89

Indenter

Har

dnes

s

Figura 1.4: Box-plot dei dati hardness.dat

7

Page 14: Esercizi di Statistica

CAPITOLO 1. STATISTICA INFERENZIALE

1.2.6 t-Test accoppiato, a varianza ignota, a due lati

Il diametro esterno di un cuscinetto a sfera viene misurato da 12 ispettori, ciascuno dei qualicompie due misure con due calibri differenti. I dati risultanti sono disponibili all’URL:http://meccablog.ing.unitn.it/data/bearing.dat. Valutare se esiste una effettiva differenza sullemedie delle misure effettuate con i due calibri. Si consideri un limite di confidenza α = 0.05.

Soluzione

Le ipotesi da verificare sono quelle relative ad un t-test accoppiato nel caso di ipotesi alternativaa due lati:

H0 : µd = 0

H1 : µd 6= 0

Ricorrendo alla funzione t.test di R si ottiene:

> t.test(Caliper1, Caliper2, conf.level = alpha, paired = T)

Paired t-test

data: Caliper1 and Caliper2

t = 0.4318, df = 11, p-value = 0.6742

alternative hypothesis: true difference in means is not equal to 0

5 percent confidence interval:

0.0002128566 0.0002871434

sample estimates:

mean of the differences

0.00025

Siccome p = 0.6742 > 0.05, se ne deduce che l’ipotesi nulla non puo essere rigettata, con unaprobabilita di errore di tipo II pari a 0.3258 in caso contrario. Il diagramma boxplot dei daticonferma la conclusione.

1.2.7 F-test

Uno strumento di misura utilizzato per il controllo di un processo industriale viene sostituito conun nuovo strumento dello stesso tipo. Il responsabile sospetta che il vecchio strumento abbiauna varianza superiore a quello nuovo. Per verificare l’ipotesi preleva due campioni di n1 = 12 en2 = 10 osservazioni, caratterizzati da varianze S2

1 = 14.5 e S22 = 10.8.

Soluzione

Le ipotesi da verificare sono:

H0 : σ21 = σ2

2

H1 : σ21 > σ2

2

La statistica di test e:

F0 =S2

1

S22

=14.5

10.8= 1.34

Utilizzando R, si calcola Fα,n1−1,n2−1 = F0.05,11,9:

8 Paolo Bosetti - Universita di Trento

Page 15: Esercizi di Statistica

1.3. TEST INFERENZIALI SU PIU DI DUE TRATTAMENTI

0.26

40.

265

0.26

60.

267

0.26

80.

269

Caliper

Dia

met

er

Figura 1.5: Box-plot per i dati bearing.dat

> qf(0.05, 11, 9, lower.tail = F)

[1] 3.102485

Per tanto, siccome F0 = 1.34 < F0.05,11,9 = 3.10, l’ipotesi nulla non puo essere rigettata.

1.3 Test inferenziali su piu di due trattamenti

1.3.1 Note iniziali

R mette a disposizione due funzioni per effettuare l’analisi di varianza: aov() e anova(). Laprima e piu adatta ad analisi di varianza di modelli ad effetti fissi, mentre la seconda funzione epiu flessibile e consente di effettuare analisi piu complesse anche sui cosiddetti modelli lineari.

Di fatto, le due sessioni alternative sono:

• summary(aov(y~x,data=df))

• anova(lm(y~x,data=df))

la funzione aov(), come si vede, ha il vantaggio di non richiedere di costruire il modellolineare dei dati mediante lm(). Tuttavia, la funzione anova() restituisce un oggetto piu riccodi informazioni e piu utile per impieghi successivi. Le informazioni disponibili possono essereelencate mediante la funzione attributes().

1.3.2 Esercizio

Il tempo di coagulazione del sangue di 4 campioni di ratti alimentati con 4 differenti diete(A,B,C e D) e riportato nella tabella disponibile all’URL: http://meccablog.ing.unitn.it/data/diet.dat. Si vuole verificare che la variazione della dieta alteri significativamente il tempodi coagulazione.

9

Page 16: Esercizi di Statistica

CAPITOLO 1. STATISTICA INFERENZIALE

Soluzione

Le ipotesi che si intendono verificare possono essere espresse come:

H0 : µ1 = µ2 = · · · = µ4

H1 : µi 6= 0 per almento un i = 1 . . . 4

Si inizia importando i dati e definendo un modello lineare:

> df <- read.table("http://meccablog.ing.unitn.it/data/diet.dat",

+ header = T)

> attach(df)

> df.lm <- lm(cTime ~ diet, d = df)

E opportuno verificare la normalita dei residui (Figura 1.6). I residui possono essere ritenutidistribuiti secondo la normale se il diagramma Q-Q riporta i punti allineati secondo una retta ei diagrammi dei residui rispetto ai punti interpolati non mostri pattern.

> split.screen(c(2, 2))

[1] 9 10 11 12

> screen(1)

> boxplot(cTime ~ diet, range = 0, xlab = "Diet", ylab = "Coag. time",

+ main = "Boxplot")

> screen(2)

> qqnorm(df.lm$res)

> qqline(df.lm$res)

> screen(3)

> plot(df.lm$fit, df.lm$res, xlab = "Fitted", ylab = "Residuals",

+ main = "Residual-Fitted plot")

> screen(4)

> plot(jitter(df.lm$fit), df.lm$res, xlab = "Fitted", ylab = "Residuals",

+ main = "Jittered plot")

Nel Q-Q plot i punti risultano adeguatamente allineati lungo la retta passante per il primoed il terzo quartile (ottenuta col comando qqline()). Si noti che i residui non hanno σ2 = 1 equindi la retta in questione non ha necessariamente pendenza unitaria.

Il diagramma Residual-Fitted plot riporta i residui per tutti gli na = N punti contro i puntiinterpolati τi, definiti come:

yij = µ+ τi + εij

Il diagramma Jittered plot e analogo al precedente, ma presenta i punti corrispondenti affian-cati anziche sovrapposti, evidenziando la molteplicita.

Dato che i diagrammi non presentano anomalie, si puo assumere che l’errore campionario siadistribuito in maniera normale e procedere con l’analisi della varianza.

> df.anova <- anova(df.lm)

> df.anova

Analysis of Variance Table

Response: cTime

10 Paolo Bosetti - Universita di Trento

Page 17: Esercizi di Statistica

1.3. TEST INFERENZIALI SU PIU DI DUE TRATTAMENTI

A B C D

6065

70

Boxplot

DietC

oag.

tim

e

●●

●●

●●

●●

●●●

●●

●●

●●

−2 −1 0 1 2

−4

04

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

●●

●●

●●●

●●

●●●●

●●

●●

●●

61 63 65 67

−4

04

Residual−Fitted plot

Fitted

Res

idua

ls

●●

●●

●●

●●

●●●

●●

●●

●●

62 64 66 68

−4

04

Jittered plot

FittedR

esid

uals

Figura 1.6: Verifica di normalita

Df Sum Sq Mean Sq F value Pr(>F)

diet 3 228 76.0 13.571 4.658e-05 ***

Residuals 20 112 5.6

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Un valore di F0 = 13.571 e sufficientemente elevato da suggerire di rigettare l’ipotesi nulla.Il p-value pari a 4.68 · 10−5 e il massimo livello di α che porta a rigettare l’ipotesi nulla.

Eventuali outliers possono essere individuati osservando la distribuzione dei residui standar-dizzati, che ci si aspetta siano N(0, 1) (vedi Figura 1.7).

> stdres <- df.lm$res/sqrt(df.anova$"Mean Sq"[2])

> close.screen(all = T)

> plot(stdres, ylim = c(-3, 3), title = "Standardized residuals")

> abline(h = 1, col = "green")

> abline(h = 2, col = "orange")

> abline(h = 3, col = "red")

> abline(h = -1, col = "green")

> abline(h = -2, col = "orange")

> abline(h = -3, col = "red")

Se la distribuzione degli errori e normale, i residui standardizzati sono distribuiti come eij ∼NID(0, 1). In tal caso tra ±1 rientrano il 68% dei punti, tra ±2 il 95% e tra ±3 il 99.7%,corrispondenti a

> floor(length(cTime) * c(1 - 0.68, 1 - 0.95, 1 - 0.997))

[1] 7 1 0

Non si evidenziano veri outlier e la distribuzione si conferma discretamente normale.Un ulteriore test di normalita sui residui puo essere effettuato confrontandone la densita di

distribuzione con la curva di distribuzione normale (Figura 1.8).

11

Page 18: Esercizi di Statistica

CAPITOLO 1. STATISTICA INFERENZIALE

● ●

5 10 15 20

−3

−2

−1

01

23

Index

stdr

es

Figura 1.7: Distribuzione dei residui standardizzati

> plot(density(stdres))

> curve(dnorm(x), add = T, col = "red")

−3 −2 −1 0 1 2 3

0.0

0.1

0.2

0.3

0.4

density.default(x = stdres)

N = 24 Bandwidth = 0.3758

Den

sity

Figura 1.8: Densita di distribuzione (in nero) e distribuzione normale corrispondente (in rosso)

1.3.3 Esercizio

La resistenza di una fibra sintetica misto cotone viene testata mediante prove a trazione per 5differenti composizioni: 10, 15, 20, 25, 30% di cotone. I dati risultanti sono disponibili all’URL:http://meccablog.ing.unitn.it/data/anova.dat. Si vuole verificare che la variazione delcontenuto in cotone alteri significativamente la resistenza a trazione delle fibre.

12 Paolo Bosetti - Universita di Trento

Page 19: Esercizi di Statistica

1.3. TEST INFERENZIALI SU PIU DI DUE TRATTAMENTI

Soluzione

Si inizia importando i dati e verificandone la distribuzione in un boxplot (Figura 1.9):

> df <- read.table("http://meccablog.ing.unitn.it/data/anova.dat",

+ header = TRUE)

> attach(df)

The following object(s) are masked from 'mortar':

Observation, Strength

> df.lm <- lm(Strength ~ factor(Cotton), d = df)

> boxplot(Strength ~ factor(Cotton), data = df, range = 0, xlab = "% in cotone",

+ ylab = "Resistenza a trazione [N/mm2]", ylim = c(0, 30))

15 20 25 30 35

05

1015

2025

30

% in cotone

Res

iste

nza

a tr

azio

ne [N

/mm

2]

Figura 1.9: Box-plot per i dati anova.dat

Si noti che e necessario utilizzare la formula Strength∼factor(Cotton) in quanto la chiavedi raggruppamento dei trattamenti e numerica anziche alfabetica come nell’esercizio precedente.

Le ipotesi che si intendono verificare possono essere espresse come:

H0 : µ1 = µ2 = · · · = µ5

H1 : µi 6= 0 per almento un i = 1 . . . 5

Dal boxplot, appare poco probabile che l’ipotesi nulla sia vera. Si procede ad una verificaquantitativa mediante un F-test:

> df.anova <- anova(df.lm)

> df.anova

Analysis of Variance Table

Response: Strength

13

Page 20: Esercizi di Statistica

CAPITOLO 1. STATISTICA INFERENZIALE

Df Sum Sq Mean Sq F value Pr(>F)

factor(Cotton) 4 475.76 118.94 14.757 9.128e-06 ***

Residuals 20 161.20 8.06

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Si conclude che la probabilita di commettere un errore di tipo I (rifiutare H0 quando e vera)e inferiore a 1 · 10−5.

Si verifica la normalita dei residui mediante un diagramma quantile-quantile mediante icomandi qqplot e qqline (Figura 1.10):

●●

● ●

● ●

● ●

−2 −1 0 1 2

−4

−2

02

4Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

Figura 1.10: Diagramma quantile-quantile per i dati anova.dat

Il diagramma evidenzia una deviazione dalla normalita solo nella coda inferiore: la robustezzapropria del test F ci consente comunque di accettare il risultato.

1.3.4 Contrasti

Assumendo i risultati dell’esercizio 1.3.3, verificare le seguenti ipotesi:

H0 : µ4 = µ5

H0 : µ1 + µ3 = µ4 + µ5

H0 : µ1 = µ3

H0 : 4µ2 = µ1 + µ3 + µ4 + µ5

Soluzione

Le ipotesi possono essere verificate utilizzando i seguenti contrasti:

H0 : µ4 = µ5 → C1 = −y4. + y5.

H0 : µ1 + µ3 = µ4 + µ5 → C2 = y1. + y3. − y4. − y5.

H0 : µ1 = µ3 → C3 = y1. − y3.

H0 : 4µ2 = µ1 + µ3 + µ4 + µ5 → C4 = yi. − 4y2. + y3. + y4. + y5.

Si preparano i dati per l’analisi:

14 Paolo Bosetti - Universita di Trento

Page 21: Esercizi di Statistica

1.3. TEST INFERENZIALI SU PIU DI DUE TRATTAMENTI

> df <- read.table("anova.dat", header = TRUE)

> attach(df)

The following object(s) are masked from 'df (position 3)':

Cotton, Observation, Strength

The following object(s) are masked from 'mortar':

Observation, Strength

> fCotton <- factor(Cotton)

> df.lm <- lm(Strength ~ fCotton, d = df)

> df.anova <- anova(df.lm)

Si definisce la matrice dei contrasti cont:

> cont <- matrix(data = c(0, 0, 0, -1, 1, 1, 0, 1, -1, -1, 1, 0,

+ -1, 0, 0, -1, 4, -1, -1, -1), nrow = 4, ncol = 5, byrow = T)

Osserviamo il risultato del modello lineare:

> summary(df.lm)

Call:

lm(formula = Strength ~ fCotton, data = df)

Residuals:

Min 1Q Median 3Q Max

-3.8 -2.6 0.4 1.4 5.2

Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept) 9.800 1.270 7.719 2.02e-07 ***

fCotton20 5.600 1.796 3.119 0.005409 **

fCotton25 7.800 1.796 4.344 0.000315 ***

fCotton30 11.800 1.796 6.572 2.11e-06 ***

fCotton35 1.000 1.796 0.557 0.583753

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.839 on 20 degrees of freedom

Multiple R-squared: 0.7469, Adjusted R-squared: 0.6963

F-statistic: 14.76 on 4 and 20 DF, p-value: 9.128e-06

Si puo osservare che il modello riporta un valore di intercetta in corrispondenza del primo trat-tamento. Cio e corretto per l’analisi F, ma riporta i valori delle yi. (nella colonna Estimate)rispetto all’intercetta. Per ottenere le somme dei trattamenti e necessario modificare la formulanella funzione lm:

> df.lm1 <- lm(Strength ~ fCotton - 1, d = df)

> summary(df.lm1)

15

Page 22: Esercizi di Statistica

CAPITOLO 1. STATISTICA INFERENZIALE

Call:

lm(formula = Strength ~ fCotton - 1, data = df)

Residuals:

Min 1Q Median 3Q Max

-3.8 -2.6 0.4 1.4 5.2

Coefficients:

Estimate Std. Error t value Pr(>|t|)

fCotton15 9.80 1.27 7.719 2.02e-07 ***

fCotton20 15.40 1.27 12.129 1.12e-10 ***

fCotton25 17.60 1.27 13.862 1.02e-11 ***

fCotton30 21.60 1.27 17.013 2.31e-13 ***

fCotton35 10.80 1.27 8.506 4.46e-08 ***

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.839 on 20 degrees of freedom

Multiple R-squared: 0.9744, Adjusted R-squared: 0.968

F-statistic: 152.1 on 5 and 20 DF, p-value: 3.336e-15

Si procede ora a calcolare i valori di SSC secondo l’equazione:

SSC =(∑ai=1 ciyi.)

2

n∑ai=1 c

2i

> n <- 5

> yi <- df.lm1$coef * n

> C <- cont %*% yi

> SSc <- matrix(0, nrow = 4, ncol = 1)

> for (i in 1:4) SSc[i] <- C[i]^2/(n * sum(cont[i, ]^2))

> print(SSc)

[,1]

[1,] 291.60

[2,] 31.25

[3,] 152.10

[4,] 0.81

Per ciascun contrasto e ora possibile calcolare il valore della statistica di test F0 = SSC/MSEed il relativo p-value:

> F0 <- SSc/anova(df.lm)$Mean[2]

> print(F0)

[,1]

[1,] 36.1786600

[2,] 3.8771712

[3,] 18.8709677

[4,] 0.1004963

16 Paolo Bosetti - Universita di Trento

Page 23: Esercizi di Statistica

1.3. TEST INFERENZIALI SU PIU DI DUE TRATTAMENTI

> pf(F0, 1, 20, low = F)

[,1]

[1,] 7.011202e-06

[2,] 6.295952e-02

[3,] 3.147387e-04

[4,] 7.545203e-01

Adottando come criterio per il rigetto dell’ipotesi nulla un valore α = 0.05, si conclude chele ipotesi nulle corrispondenti ai contrasti 1 e 3 possono essere rifiutate con una probabilita dierrore di tipo I inferiore ad α.

1.3.5 Esercizio

In un esperimento si vuole determinare l’efficacia di un veleno per ratti al variare della dietaseguita dai ratti stessi. I risultati dell’esperimento sono disponibili all’URL: http://meccablog.ing.unitn.it/data/rats.dat Analizzare il problema identificando l’opportuno modello lineare.

Soluzione

Si caricano i dati e si verifica la distribuzione dei risultati mediante due boxplot (Figura 1.11):

> df <- read.table("http://meccablog.ing.unitn.it/data/rats.dat",

+ h = T)

> attach(df)

> boxplot(Life ~ Poison, data = df, range = 0, xlab = "Poison",

+ ylab = "Life")

> boxplot(Life ~ Treat, data = df, range = 0, xlab = "Treatment",

+ ylab = "Life")

I II III

0.2

0.4

0.6

0.8

1.0

1.2

Poison

Life

A B C D

0.2

0.4

0.6

0.8

1.0

1.2

Treatment

Life

Figura 1.11: Box-plot per i dati rats.dat

Si possono verificare le interazioni mediante il comando interaction.plot (Figura 1.12):

17

Page 24: Esercizi di Statistica

CAPITOLO 1. STATISTICA INFERENZIALE

> interaction.plot(Poison, Treat, Life)

> interaction.plot(Treat, Poison, Life)

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Treat

mea

n of

Life

A B C D

Poison

IIIIII

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Poisonm

ean

of L

ifeI II III

Treat

BDCA

Figura 1.12: Interaction-plot per i dati rats.dat

Si noti, tuttavia, che tali grafici non danno alcuna informazione a proposito dell’entita dell’er-rore e che, di conseguenza, le interazioni evidenziate dai due inetraction.plot potrebbero esseredovute ai soli errori statistici piuttosto che a effettive interazioni. Per un’analisi piu quantitativae necessario costruire un modello lineare ed effettuare l’analisi della varianza:

> df.lm <- lm(Life ~ Treat * Poison, d = df)

> anova(df.lm)

Analysis of Variance Table

Response: Life

Df Sum Sq Mean Sq F value Pr(>F)

Treat 3 0.92121 0.30707 13.8056 3.777e-06 ***

Poison 2 1.03301 0.51651 23.2217 3.331e-07 ***

Treat:Poison 6 0.25014 0.04169 1.8743 0.1123

Residuals 36 0.80072 0.02224

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Si noti che il modello lineare e definito mediante la sintassi Life Treat*Poison, analoga allascrittura convenzionale:

yij = µ+ αi + βj + (αβ)ij + εij

La tabella ANOVA riporta infatti i parametri per i due fattori (Treat e Poison) e per la lorointerazione (Treat:Poison). Prima di procedere e opportuno verificare la normalita dei residui.

Dato che la Figura 1.13 mostra un evidente pattern nella distribuzione dei residui,si prova amodificare il modello:

18 Paolo Bosetti - Universita di Trento

Page 25: Esercizi di Statistica

1.3. TEST INFERENZIALI SU PIU DI DUE TRATTAMENTI

●●

●●

●●

●●

●●

●●

−2 −1 0 1 2

−0.

20.

00.

20.

4

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

●●

●●

●●

●●

●●

●●

0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

−0.

20.

00.

20.

4

FittedR

esid

uals

Figura 1.13: Diagramma Q-Q (sinistra) e diagramma dei residui (destra), Life∼Poison

> df.lm <- lm(log(Life) ~ Treat * Poison, d = df)

> plot(df.lm$fit, df.lm$res, xlab = "Fitted", ylab = "Residuals",

+ main = "Log response")

●●

−2 −1 0 1 2

−0.

4−

0.2

0.0

0.2

0.4

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

●●

−1.6 −1.4 −1.2 −1.0 −0.8 −0.6 −0.4 −0.2

−0.

4−

0.2

0.0

0.2

0.4

Fitted

Res

idua

ls

Figura 1.14: Diagramma Q-Q (sinistra) e diagramma dei residui (destra), log(Life)∼Poison

Dato che la distribuzione dei residui riportata in Figura 1.14 non e ancora soddisfacente, simodifica ulteriormente il modello:

> df.lm <- lm(1/Life ~ Treat * Poison, d = df)

> plot(df.lm$fit, df.lm$res, xlab = "Fitted", ylab = "Residuals",

+ main = "Reciprocal response")

19

Page 26: Esercizi di Statistica

CAPITOLO 1. STATISTICA INFERENZIALE

> qqnorm(df.lm$res)

> qqline(df.lm$res)

● ●

●●

●●

●●

●●

−2 −1 0 1 2

−0.

50.

00.

51.

0

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

●●

●●

● ●

●●

●●

2 3 4

−0.

50.

00.

51.

0

Reciprocal response

FittedR

esid

uals

Figura 1.15: Diagramma Q-Q (sinistra) e diagramma dei residui (destra), 1/Life∼Poison

A questo punto si puo ritenere che la distribuzione dei residui calcolati sul modello 1/Li-

fe∼Poison sia accettabilmente normale e si puo quindi procedere all’analisi ANOVA:

> anova(df.lm)

Analysis of Variance Table

Response: 1/Life

Df Sum Sq Mean Sq F value Pr(>F)

Treat 3 20.414 6.8048 28.3431 1.376e-09 ***

Poison 2 34.877 17.4386 72.6347 2.310e-13 ***

Treat:Poison 6 1.571 0.2618 1.0904 0.3867

Residuals 36 8.643 0.2401

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

> df.lm <- lm(1/Life ~ Treat + Poison, d = df)

> anova(df.lm)

Analysis of Variance Table

Response: 1/Life

Df Sum Sq Mean Sq F value Pr(>F)

Treat 3 20.414 6.8048 27.982 4.192e-10 ***

Poison 2 34.877 17.4386 71.708 2.865e-14 ***

Residuals 42 10.214 0.2432

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

20 Paolo Bosetti - Universita di Trento

Page 27: Esercizi di Statistica

1.3. TEST INFERENZIALI SU PIU DI DUE TRATTAMENTI

> summary(df.lm)

Call:

lm(formula = 1/Life ~ Treat + Poison, data = df)

Residuals:

Min 1Q Median 3Q Max

-0.82757 -0.37619 0.02116 0.27568 1.18153

Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept) 2.6977 0.1744 15.473 < 2e-16 ***

TreatB -1.6574 0.2013 -8.233 2.66e-10 ***

TreatC -0.5721 0.2013 -2.842 0.00689 **

TreatD -1.3583 0.2013 -6.747 3.35e-08 ***

PoisonII 0.4686 0.1744 2.688 0.01026 *

PoisonIII 1.9964 0.1744 11.451 1.69e-14 ***

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4931 on 42 degrees of freedom

Multiple R-squared: 0.8441, Adjusted R-squared: 0.8255

F-statistic: 45.47 on 5 and 42 DF, p-value: 6.974e-16

21

Page 28: Esercizi di Statistica

CAPITOLO 1. STATISTICA INFERENZIALE

22 Paolo Bosetti - Universita di Trento

Page 29: Esercizi di Statistica

Capitolo 2

Quality Control ChartsStatistica di Controllo di Processo

2.1 Note iniziali

Questo documento riporta esempi risolti di controllo statistico di processo. Gli esempi descrittiin questo documento sono risolti mediante il pacchetto GNU R facendo uso della libreria QCC.E necessario caricare tale libreria all’inizio della sessione R con il comando:

> library(qcc)

La libreria contiene anche i dati impiegati negli esempi sotto descritti, caricabili mediante ilcomando data().

2.2 Carte di controllo per dati attribuiti

2.2.1 Carte p

Con dimensione dei campioni costante

Un sistema di ispezione controlla la tenuta di lattine per succo d’arancia. Per impostare la cartadi controllo vengono selezionati e controllati 30 campioni di 50 lattine ogni mezz’ora. Il tabulatocontenente il numero di lattine non conformi per campione puo essere caricato direttamente dalpacchetto QCC:

> data(orangejuice)

> attach(orangejuice)

La tabella 2.1 contiene, nell’ordine, il numero del campione (sample), il numero di lattinenon conformi riscontrate (D), il numero di lattine per campione (size) e una colonna booleana(trial) che identifica la prima serie di calibrazione utilizzata per costruire la carta di controllo(trial=TRUE) dai dati raccolti in seguito (trial=FALSE).

La carta di controllo p viene costruita sulla base dei primi 30 campioni secondo le formule:

p = 1k

∑ki=1 pi

UCL = p+ 3√

p(1−p)n

LCL = p− 3√

p(1−p)n

23

Page 30: Esercizi di Statistica

CAPITOLO 2. QUALITY CONTROL CHARTSSTATISTICA DI CONTROLLO DI PROCESSO

sample D size trial1 1 12 50 TRUE2 2 15 50 TRUE3 3 8 50 TRUE4 4 10 50 TRUE5 5 4 50 TRUE6 6 7 50 TRUE7 7 16 50 TRUE8 8 9 50 TRUE9 9 14 50 TRUE

10 10 10 50 TRUE

Tabella 2.1: Dati orangejuice (parziali)

Si tratta dunque di un caso particolare di carta di controllo p con dimensione dei sottogruppicostante.

La carta di controllo, sui dati di calibrazione, puo essere realizzata mediante il comandoqcc(), il cui output e riportato in Figura 2.1:

> q <- qcc(D[trial], type = "p", sizes = size[trial])

p Chartfor D[trial]

Group

Gro

up s

umm

ary

stat

istic

s

1 3 5 7 9 11 14 17 20 23 26 29

0.1

0.2

0.3

0.4

LCL

UCL

CL

Number of groups = 30Center = 0.2313333StdDev = 0.421685

LCL = 0.05242755UCL = 0.4102391

Number beyond limits = 2Number violating runs = 0

Figura 2.1: Carta p per i dati di test.

Si evidenziano 2 punti fuori controllo: l’analisi delle possibili cause rivela che il campione 15e dovuto all’introduzione di un nuovo lotto di materie prime, mentre il campione 23 e dovutoalla presenza temporanea di un operatore inesperto. Tali punti vengono quindi eliminati e vieneri-calcolata la carta di controllo:

> inc <- setdiff(which(trial), c(15, 23))

> q1 <- qcc(D[inc], sizes = size[inc], type = "p")

> qcc(D[inc], sizes = size[inc], type = "p", newdata = D[!trial],

+ newsizes = size[!trial])

24 Paolo Bosetti - Universita di Trento

Page 31: Esercizi di Statistica

2.2. CARTE DI CONTROLLO PER DATI ATTRIBUITI

p Chartfor D[inc] and D[!trial]

Group

Gro

up s

umm

ary

stat

istic

s

1 4 7 11 15 19 23 27 31 35 39 43 47 51

0.05

0.15

0.25

0.35

LCL

UCL

CL

Calibration data in D[inc] New data in D[!trial]

Number of groups = 52Center = 0.215StdDev = 0.4108223

LCL = 0.04070284UCL = 0.3892972

Number beyond limits = 2Number violating runs = 15

Figura 2.2: Carta di controllo estesa. La linea verticale indica i nuovi dati

Si noti che, nella Figura 2.2, il punto 20 risulta oltre il nuovo limite di controllo superiore.Dato che l’indagine non ha rivelato nessuna causa imputabile, si decide di mantenere tale puntoed accettare i nuovi valori LCL, UCL e p calcolati. Il grafico viene poi completato anche con ipunti acquisiti successivamente (punti per cui trial = FALSE), che sono riportati a destra dellalinea tratteggiata verticale.

In corrispondenza del punto 31 avviene una regolazione delle impostazioni della macchina, checomporta una evidente diminuzione della difettosita. Ci si chiede se sia opportuno ri-calcolarei limiti di controllo. La decisione viene presa effettuando un test per verificare le due opposteipotesi:

H0 : p1 = p2

H1 : p1 > p2

La statistica di test da impiegare e (vedi [2, cap. 3]):

Z0 =p1 − p2√

p(1− p)(

1n1

+ 1n2

) ∼ N(0, 1)

dove:

p =n1p1 + n2p2

n1 + n2

Pertanto, dato che p1 e la media delle difettosita del primo run (da 1 a 30) e p2 e la mediadel secondo run (da 31 a 54),

> pb1 <- mean(D[inc])/50

> pb2 <- mean(D[31:54])/50

> n1 <- 50 * 30

> n2 <- 50 * (54 - 30)

> pb <- (n1 * pb1 + n2 * pb2)/(n1 + n2)

> Z0 <- (pb1 - pb2)/(sqrt(pb * (1 - pb) * (1/n1 + 1/n2)))

> print(Z0)

25

Page 32: Esercizi di Statistica

CAPITOLO 2. QUALITY CONTROL CHARTSSTATISTICA DI CONTROLLO DI PROCESSO

[1] 7.181959

> pnorm(Z0, low = F)

[1] 3.435983e-13

Dato che 3.436e− 13 < 0.05 ci e lecito rigettare l’ipotesi nulla con una probabilita d’errore paria 3.436e− 11%, e costruire una nuova carta di controllo con limiti ridotti (vedi Figura 2.3):

> q2 <- qcc(D[inc], sizes = size[inc], type = "p", newdata = D[!trial],

+ newsizes = size[!trial])

> q3 <- qcc(D[31:54], sizes = size[31:54], type = "p")

> plot(q2, ylim = c(0, 0.5))

> abline(h = q3$limits[1], col = "gray", lty = "dashed")

> abline(h = q3$limits[2], col = "gray", lty = "dashed")

> abline(h = q3$center, col = "gray", lty = "dashed")

p Chartfor D[inc] and D[!trial]

Group

Gro

up s

umm

ary

stat

istic

s

1 4 7 11 15 19 23 27 31 35 39 43 47 51

0.0

0.1

0.2

0.3

0.4

0.5

LCL

UCL

CL

Calibration data in D[inc] New data in D[!trial]

Number of groups = 52Center = 0.215StdDev = 0.4108223

LCL = 0.04070284UCL = 0.3892972

Number beyond limits = 2Number violating runs = 15

Figura 2.3: Carta di controllo con i nuovi limiti (in verde)

Con dimensione dei campioni variabile

Nel caso in cui la dimensione (numero di elementi) dei campioni sia variabile, l’ampiezza deilimiti di controllo dipende dalla dimensione dei campioni:

p = 1k

∑ki=1 pi

UCL = p+ 3√

p(1−p)ni

LCL = p− 3√

p(1−p)ni

Un esempio puo essere realizzato a partire dai dati disponibili all’URL: http://meccablog.ing.unitn.it/data/p_data.dat:

26 Paolo Bosetti - Universita di Trento

Page 33: Esercizi di Statistica

2.2. CARTE DI CONTROLLO PER DATI ATTRIBUITI

sample size D1 1 100 122 2 80 83 3 80 64 4 100 95 5 110 106 6 110 127 7 100 118 8 100 169 9 90 10

10 10 90 6

Tabella 2.2: Dati con dimensione variabile dei campioni (parziali)

> df <- read.table("http://meccablog.ing.unitn.it/data/p_data.dat",

+ h = T)

> attach(df)

Mediante il comando qcc() si procede a realizzare la carta di controllo riportata in Figura2.4:

> qcc(D, sizes = size, type = "p")

p Chartfor D

Group

Gro

up s

umm

ary

stat

istic

s

1 3 5 7 9 11 13 15 17 19 21 23 25

0.00

0.05

0.10

0.15

0.20

● ●

● ●

LCL

UCL

CL

Number of groups = 25Center = 0.0955102StdDev = 0.2939184

LCL is variableUCL is variable

Number beyond limits = 1Number violating runs = 0

Figura 2.4: Carta di controllo p con campioni di dimensione variabile

2.2.2 Carte np

Una carta di controllo np si differenzia da una carta p solo per il fatto di analizzare il numerototale np di non conformita anziche la frazione (o proporzione) p. Se n e il numero di campioni

27

Page 34: Esercizi di Statistica

CAPITOLO 2. QUALITY CONTROL CHARTSSTATISTICA DI CONTROLLO DI PROCESSO

per sottogruppo e k e il numero di sottogruppi, allora:

p =1

kn

k∑i=1

xi

LCL = np− 3√np(1− p)

UCL = np− 3√np(1− p)

Sulla base degli sessi dati orangejuice, e possibile realizzare una carta di controllo npmediante la funzione qcc()(vedi Figura 2.5):

> data(orangejuice)

> attach(orangejuice)

> qcc(D[trial], type = "np", sizes = size[trial])

np Chartfor D[trial]

Group

Gro

up s

umm

ary

stat

istic

s

1 3 5 7 9 11 14 17 20 23 26 29

510

1520

LCL

UCL

CL

Number of groups = 30Center = 11.56667StdDev = 2.981763

LCL = 2.621377UCL = 20.51196

Number beyond limits = 2Number violating runs = 0

Figura 2.5: Carta di controllo np dei dati orangejuice.

2.2.3 Carte c

Un produttore di schede elettroniche verifica il numero di non-conformita osservate su 26 campionidi 100 schede ciascuno. I relativi dati sono disponibili nella libreria QCC come data framecircuit. La Tabella 2.3 contiene un estratto dei dati: la colonna x riporta il numero di non-conformita per campione, la colonna size il numero di schede per campione. Si realizza la cartadi controllo c per il processo mediante il solito comando qcc() (Figura 2.6).

> data(circuit)

> attach(circuit)

> q1 <- qcc(x[trial], sizes = size[trial], type = "c")

Si eliminano i punti fuori controllo (punto 6: errore dell’operatore e mancato rilevamen-to di non conformita; punto 20: guasto a un termostato e conseguente innalzamento dellatemperatura), si ri-calcolano i limiti e si estende la carta di controllo ai nuovi dati (Figura2.7):

28 Paolo Bosetti - Universita di Trento

Page 35: Esercizi di Statistica

2.2. CARTE DI CONTROLLO PER DATI ATTRIBUITI

x size trial1 21 100 TRUE2 24 100 TRUE3 16 100 TRUE4 12 100 TRUE5 15 100 TRUE6 5 100 TRUE7 28 100 TRUE8 20 100 TRUE9 31 100 TRUE

10 25 100 TRUE

Tabella 2.3: Dati con dimensione variabile dei campioni (parziali)

c Chartfor x[trial]

Group

Gro

up s

umm

ary

stat

istic

s

1 3 5 7 9 11 13 15 17 19 21 23 25

510

1520

2530

3540

LCL

UCL

CL

Number of groups = 26Center = 19.84615StdDev = 4.454902

LCL = 6.481447UCL = 33.21086

Number beyond limits = 2Number violating runs = 0

Figura 2.6: Carta di controllo c per la produzione di schede elettroniche.

> inc <- setdiff(which(trial), q1$violations$beyond)

> q2 <- qcc(x[inc], sizes = size[inc], type = "c", newdata = x[!trial],

+ newsizes = size[!trial])

2.2.4 Carte u

E necessario realizzare una carta di controllo per una linea di assemblaggio di personal computer.I relativi dati sono disponibili nella libreria QCC come data frame pcmanufact. La Tabella 2.4contiene un estratto dei dati: la colonna x riporta il numero di non-conformita per campione, lacolonna size il numero di PC per campione. Si realizza la carta di controllo c per il processomediante il solito comando qcc() (Figura 2.8).

> data(pcmanufact)

> attach(pcmanufact)

> q1 <- qcc(x, sizes = size, type = "u")

29

Page 36: Esercizi di Statistica

CAPITOLO 2. QUALITY CONTROL CHARTSSTATISTICA DI CONTROLLO DI PROCESSO

c Chartfor x[inc] and x[!trial]

Group

Gro

up s

umm

ary

stat

istic

s

1 4 7 10 14 18 22 26 30 34 38 42

1015

2025

30

LCL

UCL

CL

Calibration data in x[inc] New data in x[!trial]

Number of groups = 44Center = 19.66667StdDev = 4.434712

LCL = 6.362532UCL = 32.9708

Number beyond limits = 0Number violating runs = 2

Figura 2.7: Carta di controllo c per la produzione di schede elettroniche, estesa a nuovi dati. Ilimiti di controllo sono sati ri-calcolati escludendo i punti in violazione durante la prima serie dicalibrazione.

u Chartfor x

Group

Gro

up s

umm

ary

stat

istic

s

1 2 3 4 5 6 7 8 9 11 13 15 17 19

01

23

LCL

UCL

CL

Number of groups = 20Center = 1.93StdDev = 3.106445

LCL = 0.06613305UCL = 3.793867

Number beyond limits = 0Number violating runs = 0

Figura 2.8: Carta di controllo u per la produzione di schede elettroniche.

30 Paolo Bosetti - Universita di Trento

Page 37: Esercizi di Statistica

2.3. CARTE DI CONTROLLO PER DATI VARIABILI

x size1 10 52 12 53 8 54 14 55 10 56 16 57 11 58 7 59 10 5

10 15 5

Tabella 2.4: Non-conformita riscontrate in campioni di personal computer (parziali)

2.3 Carte di controllo per dati variabili

2.3.1 Carte x−R

Si vuole realizzare una carta di controllo x − R per una linea di produzione di fasce elasticheper pistoni di motore a scoppio. La variabile sotto controllo e il diametro interno. I dati sonodisponibili nel data frame pistonrings della libreria QCC, in cui vengono riportati sia i datiutilizzati per mettere a punto le carte di controllo che una serie aggiuntiva di dati di produzione.

Si comincia importando i dati di set-up e raggruppandoli nel formato opportuno mediante ilcomando qcc.groups(), per poi realizzare la carta di controllo R riportata in Figura 2.9:

> data(pistonrings)

> attach(pistonrings)

> d1 <- qcc.groups(data = diameter[trial], sample = sample[trial])

> q1 <- qcc(d1, type = "R")

diameter sample trial1 74 1 TRUE2 74 1 TRUE3 74 1 TRUE4 73 1 TRUE5 74 1 TRUE6 73 2 TRUE7 73 2 TRUE8 74 2 TRUE9 74 2 TRUE

10 74 2 TRUE

Tabella 2.5: Diametro interno di fasce elastiche per pistoni

Dato che la carta di controllo non mostra punti critici, si procede a realizzare la carta dicontrollo x, riportata in Figura 2.10:

> q2 <- qcc(d1, type = "xbar", target = 74)

31

Page 38: Esercizi di Statistica

CAPITOLO 2. QUALITY CONTROL CHARTSSTATISTICA DI CONTROLLO DI PROCESSO

R Chartfor d1

Group

Gro

up s

umm

ary

stat

istic

s

1 3 5 7 9 11 13 15 17 19 21 23 25

0.00

0.01

0.02

0.03

0.04

0.05

●●

LCL

UCL

CL

Number of groups = 25Center = 0.02276StdDev = 0.009785039

LCL = 0UCL = 0.04812533

Number beyond limits = 0Number violating runs = 0

Figura 2.9: Carta di controllo R per la produzione fasce elastiche.

xbar Chartfor d1

Group

Gro

up s

umm

ary

stat

istic

s

1 3 5 7 9 11 13 15 17 19 21 23 25

73.9

9074

.000

74.0

10

●●

LCL

UCL

CL

Number of groups = 25Center = 74.00118StdDev = 0.009785039

LCL = 73.98805UCL = 74.0143

Number beyond limits = 0Number violating runs = 0

Figura 2.10: Carta di controllo x per la produzione di fasce elastiche.

32 Paolo Bosetti - Universita di Trento

Page 39: Esercizi di Statistica

2.3. CARTE DI CONTROLLO PER DATI VARIABILI

1 2 3 4 51 74.03 74.00 74.02 73.99 74.012 74.00 73.99 74.00 74.01 74.003 73.99 74.02 74.02 74.00 74.004 74.00 74.00 73.99 74.02 74.015 73.99 74.01 74.02 73.99 74.016 74.01 73.99 74.00 73.98 73.997 74.00 74.01 73.99 74.00 74.008 73.98 74.00 73.99 74.02 73.999 74.01 74.00 74.01 74.00 74.00

10 74.00 74.00 73.99 74.01 74.00

Tabella 2.6: Diametro interno di fasce elastiche per pistoni, dati raggruppati

Dato che anche la carta x non riporta problemi, le due carte di controllo vengono poi estesealla produzione (vedi Figure 2.11 e 2.12):

> d2 <- qcc.groups(data = diameter[!trial], sample = sample[!trial])

> q3 <- qcc(d1, type = "R", newdata = d2)

> q4 <- qcc(d1, type = "xbar", target = 74, newdata = d2)

R Chartfor d1 and d2

Group

Gro

up s

umm

ary

stat

istic

s

1 4 7 10 13 16 19 22 25 28 31 34 37 40

0.00

0.01

0.02

0.03

0.04

0.05

●●

LCL

UCL

CL

Calibration data in d1 New data in d2

Number of groups = 40Center = 0.02276StdDev = 0.009785039

LCL = 0UCL = 0.04812533

Number beyond limits = 0Number violating runs = 0

Figura 2.11: Carta di controllo R estesa per la produzione di fasce elastiche.

33

Page 40: Esercizi di Statistica

CAPITOLO 2. QUALITY CONTROL CHARTSSTATISTICA DI CONTROLLO DI PROCESSO

xbar Chartfor d1 and d2

Group

Gro

up s

umm

ary

stat

istic

s

1 4 7 10 13 16 19 22 25 28 31 34 37 40

73.9

9074

.000

74.0

1074

.020

●●

●●

LCL

UCL

CL

Calibration data in d1 New data in d2

Number of groups = 40Center = 74.00118StdDev = 0.009785039

LCL = 73.98805UCL = 74.0143

Number beyond limits = 3Number violating runs = 1

Figura 2.12: Carta di controllo x estesa per la produzione di fasce elastiche.

34 Paolo Bosetti - Universita di Trento

Page 41: Esercizi di Statistica

Bibliografia

[1] Friedrich Leisch. Sweave, part I: Mixing R and LATEX. R News, 2(3):28–31, December 2002.

[2] D.C. Montgomery. Introduction to Statistical Quality Control. John Wiley & Sons, New York,4th edition, 2000.

[3] D.C. Montgomery. Design and Analysis of Experiments. John Wiley & Sons, Hoboken, NJ,USA, 5th edition, 2001.

[4] Sheldon M. Ross. Introductory Statistics. Elsevier Academic Press, Burlington, MA, USA,2nd edition, 2005.

35