Prova scritta di Affidabilità dei sistemi e controllo statistico di qualità 18 Febbraio 2016 1. La probabilità di errore nella trasmissione di una cifra binaria attraverso un certo canale di comunicazione è 10^(-3) . a) Calcolare la probabilità di totalizzare piu’ di 3 errori trasmettendo un blocco di 1000 bit. b) Calcolare una approssimazione di tale probabilità usando il teorema del limite centrale. c) La seguente tabella si riferisce a un campione casuale di 20 ripetizioni della trasmissione di un blocco di 1000 bit e restituisce il numero di errori verificatosi in ogni trasmissione. Verificare se il modello probabilistico usato al punto a) si adatta a descrivere il campione casuale mediante un test di ipotesi: 0 0 3 3 2 1 1 2 0 2 0 1 2 0 0 0 1 0 0 0 d) Immaginando di voler controllare che il processo di trasmissione dei bits è sotto controllo statistico, costruire una carta di controllo, calcolando direttamente i limiti di controllo. Soluzione: a) Il numero di errori nella trasmissione di 1000 bit, segue una distribuzione binomiale di parametro p=10^(-3) e la probabilità da calcolare è ܲሺܺ > 3ሻ = 1 − ܲሺܺ ≤ 3ሻ. In R, è: > 1-pbinom(3,1000,10^(-3)) [1] 0.01892683 b) Approssimando la v.a. binomiale con una gaussiana di media np=1 e varianza np(1-p) > 10^(-3)*1000 [1] 1 > 10^(-3)*1000*(1-10^(-3)) [1] 0.999 > media=10^(-3)*1000 > var=10^(-3)*1000*(1-10^(-3)) si ha ܲሺܺ > 3ሻ = 0.227 > 1-pnorm(3,media,sqrt(var)) [1] 0.02269615 c) Per verificare se il campione casuale segue una distribuzione binomiale di parametri n=1000 e p=10^(-3), usiamo un test di Kolmogorov-Smirnov: > ks.test(dati,"pbinom",1000,10^(-3)) One-sample Kolmogorov-Smirnov test data: dati D = 0.3677, p-value = 0.008961 alternative hypothesis: two-sided Il p-value<0.05 pertanto il test rigetta l’ipotesi di distribuzione binomiale. d) Per costruire la carta di controllo, è necessario il pacchetto qcc. Si ha > obj<-qcc(dati,1000,type="np") da cui risulta che il processo è in controllo statistico. I limiti sono: per la linea centrale > mean(dati) [1] 0.9 per la linea superiore e inferiore > media+3*sqrt(media*(1-10^(-3))) [1] 3.744627 > media-3*sqrt(media*(1-10^(-3))) [1] -1.944627 In particolare per la linea inferiore essendo negativa, viene usato il valore 0. 2. All’interno di una popolazione, il 15% delle coppie non ha figli, il 20% ne ha uno, il 35% ne ha due e il 30% ne ha tre. Inoltre, ogni bambino, indipendentemente da tutti gli altri può essere maschio o femmina con pari probabilità. Si selezioni una famiglia a caso e si denoti con X e Y il numero di femmine e di maschi prescelti tra i figli in tale famiglia. Costruire la tabella delle probabilità congiunte. Soluzione: La probabilità di avere 0 figli è 0.15, che corrisponde a P(X=0,Y=0). La probabilità di avere 1 figlio, ossia 0.20, va equamente ripartita tra M e F, ossia P(X=0,Y=1)=P(X=1,Y=0)=0.20×0.5. La probabilità di avere 2 figli, ossia 0.35, contempla il caso (M,M) ossia P(X=0,Y=2), il caso (F,F) ossia P(X=2,Y=0) e il caso (M,F) e (F,M), ossia P(X=1,Y=1). Poiché (M,M) ha probabilità di occorrenza 0.5^2 così come (F,F), mentre l’evento ‘un figlio maschio e una figlia femmina’ ha probabilità di occorrenza 2×0.5^2, si ha P(X=0,Y=2)=0.5^2, P(X=1,Y=1)=2×0.5^2, P(X=2,Y=0)=0.5^2. Con lo stesso ragionamento si completa il caso 3 figli. Le probabilità di avere più di 3 figli sono nulle. La tabella finale risulta essere X\Y 0 1 2 3 0 1 2 3 0.15 0.20×0.5 0.35×0.5^2 0.30×0.5^3 0.20×0.5 2×0.35×0.5^2 3×0.30×0.5^2 0 0.35×0.5^2 3×0.30×0.5^2 0 0 0.30×0.5^3 0 0 0 3. I seguenti campioni casuali si riferiscono ai tempi di vita di lampadine prodotte da una azienda in due periodi distinti dell’anno. Effettuare un confronto statistico tra le due popolazioni. Primo campione: 0.10 0.83 1.91 0.50 0.59 0.23 0.08 0.03 1.05 0.23 0.29 0.17 0.08 0.40 0.35 0.39 0.48 0.23 0.53 0.46 Secondo campione: 0.21 0.31 0.01 0.44 0.43 0.37 0.26 0.19 0.13 0.04 0.01 0.37 0.02 1.08 0.64 0.44 0.14 0.46 0.28 0.44 Soluzione: Effettuando un box-plot si vede che i due campioni appaiono molto simili, fatta eccezione per la presenza di un outlier nel primo campione , pari a 1.91. Entrambi i campioni non sono gaussiani se gli outliers vengono tenuti in considerazione: > shapiro.test(primo) Shapiro-Wilk normality test data: primo W = 0.76737, p-value = 0.000293 > shapiro.test(secondo) Shapiro-Wilk normality test data: secondo W = 0.88172, p-value = 0.019 Guardando alle statistiche > summary(primo) Min. 1st Qu. Median Mean 3rd Qu. Max. 0.0300 0.2150 0.3700 0.4465 0.5075 1.9100 > summary(secondo) Min. 1st Qu. Median Mean 3rd Qu. Max. 0.0100 0.1375 0.2950 0.3135 0.4400 1.0800 Il primo campione ha media e mediana maggiori del secondo campione. La variabilità del primo è maggiore di quella del secondo, ma ciò è dovuto alla presenza di outliers. Tale differenza si riflette anche nell’ asimmetria e curtosi. > sd(primo) [1] 0.4293971 > sd(secondo) [1] 0.2536528 > skewness(primo) [1] 1.986535 > skewness(secondo) [1] 1.16441 > kurtosis(primo) [1] 4.112372 > kurtosis(secondo) [1] 1.714969 Con un test di Kolmogorov –Smirnov, stabiliamo che i due campioni provengono dalla medesima popolazione. > ks.test(primo,secondo) Two-sample Kolmogorov-Smirnov test data: primo and secondo D = 0.25, p-value = 0.5596 alternative hypothesis: two-sided Il coefficiente di correlazione è basso > cor(primo,secondo) [1] -0.1702661 Per confrontare le medie, usiamo un test non-parametrico . > wilcox.test(primo,secondo,paired=FALSE) Wilcoxon rank sum test with continuity correction data: primo and secondo W = 239.5, p-value = 0.2912 alternative hypothesis: true location shift is not equal to 0 Le medie sono confrontabili. Gli istogrammi mostrano andamenti con code destre (nel primo è stato eliminato 1.91). La legge di Weibull si adatta a entrambe le popolazioni. > library('MASS') > fitdistr(primo,'weibull') shape scale 1.17500008 0.47407623 (0.19480977) (0.09541632) > fitdistr(secondo,'weibull') shape scale 1.12151982 0.32522610 (0.20774189) (0.06772958) > fitdistr(c(primo,secondo),'weibull') shape scale 1.11785119 0.39567234 (0.13613957) (0.05881855) > ks.test(c(primo,secondo),'pweibull',1.11785119, 0.39567234) One-sample Kolmogorov-Smirnov test data: c(primo, secondo) D = 0.099964, p-value = 0.819 alternative hypothesis: two-sided 4. Un ricercatore ha organizzato un esperimento fattoriale dove ha valutato l’effetto di 3 tipi di lavorazione del terreno (lavorazione minima = LM, lavorazione superficiale = SUP, aratura profonda = PROF) e di due tipi di diserbo chimico (totale=TOT e parziale=PARZ). I dati sono stati raccolti in un disegno sperimentale fattoriale a blocchi randommizzati. Effettuare una analisi ANOVA completa. E’ possibile effettuare una ANOVA a 3 vie, considerando il fattore Blocco. Tuttavia in questo caso ogni combinazione avrebbe una sola replica, e si perderebbe la significatività statistica. Pertanto è opportuno effettuare una ANOVA a 2 vie. > library('HH') > datianova<-read.table('dati.txt',header=TRUE) > attach(datianova) Le medie per combinazioni risultano essere: > mean(datianova[1:4]) [1] 8.98275 > mean(datianova[5:8]) [1] 5.995 > mean(datianova[9:12]) [1] 9.14125 > mean(datianova[13:16]) [1] 8.47525 > mean(datianova[17:20]) [1] 10.62875 > mean(datianova[21:24]) [1] 9.20675 ossia Lav\Dis Min Sup Prof Tot 8.98275 9.14125 10.62875 Parz 5.995 8.47525 9.20675 Dal grafico delle interazioni, risulta che i due fattori interagiscono. I dati hanno andamento gaussiano: > shapiro.test(datianova) Shapiro-Wilk normality test data: datianova W = 0.94063, p-value = 0.1684 Per il barlett-test, i gruppi hanno medesima varianza. > bartlett.test(split(datianova,list(lavorazione,diserbo))) Bartlett test of homogeneity of variances data: split(datianova, list(lavorazione, diserbo)) Bartlett's K-squared = 7.5993, df = 5, p-value = 0.1797 Per l’ANOVA si ha > results<-aov(datianova~lavorazione*diserbo) > summary(results) Df Sum Sq Mean Sq F value Pr(>F) lavorazione 2 23.66 11.828 6.712 0.00664 ** diserbo 1 3.32 3.320 1.884 0.18672 lavorazione:diserbo 2 19.46 9.732 5.523 0.01348 * Residuals 18 31.72 1.762 --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 > Dall’analisi risulta che c’è interazione tra lavorazione e diserbo. Pertanto non è possibile validare il modello. Dal box-plot, le medie risultano significativamente diverse per il fattore lavorazione e per il fattore blocco. > boxplot(datianova~lavorazione,col=c('red','blue','pink'),main='Box-plot lavorazione') > boxplot(datianova~diserbo,col=c('red','blue'),main='Box-plot Diserbo') Effettuiamo una analisi dei residui. Per il fattore lavorazione > mediaproflav=mean(datianova[17:24]) > mediaproflav [1] 9.91775 > mediasuplav=mean(datianova[9:16]) > mediasuplav [1] 8.80825 > mediaminlav=mean(datianova[1:8]) > mediaminlav [1] 7.488875 I residui sono gaussiani > shapiro.test(datianova-mediel) Shapiro-Wilk normality test data: datianova - mediel W = 0.96854, p-value = 0.6312 Analogamente per il fattore diserbo > mediatotdiserbo=mean(c(datianova[1:4],datianova[9:12],datianova[21:24])) > mediatotdiserbo [1] 9.11025 > mediatotdiserbo=mean(c(datianova[5:8],datianova[13:20])) > mediatotdiserbo [1] 8.366333 > shapiro.test(datianova-medied) Shapiro-Wilk normality test data: datianova - medied W = 0.9668, p-value = 0.5889