Sei sulla pagina 1di 14

UNIVERSITA DEL SALENTO

CORSO DI LAUREA IN FISICA


(a.a. 2007/2008)

Corso di Laboratorio II
(Prof. Antonio DINNOCENZO)

ESERCITAZIONE DI STATISTICA1
Lo scopo di questa esercitazione quello di cominciare ad utilizzare il software MATLAB ad un livello di base per le applicazioni statistiche.2 Il package statistico di MATLAB si trova nella cartella \toolbox\stats; per avere una lista di tutte le funzioni disponibili basta digitare help stats.

Introduzione
Tipicamente MATLAB interpreta una matrice X di dati come una serie di colonne, dove ciascuna colonna corrisponde ad un esperimento, o gruppo, e le osservazioni fatte in ciascun esperimento sono riportate nella colonna. Il numero di esperimenti effettuati corrisponde al numero delle colonne. Il numero di osservazioni in ciascun esperimento il numero delle righe. Ad es., se misuro la lunghezza di 100 bulloni, campionandoli dalla stessa scatola in tre giorni distinti, ho 3 esperimenti ognuno con 100 osservazioni.

Statistica descrittiva
Le funzionalit di statistica descrittiva di nostro interesse riguardano: - misure di tendenza centrale: media, mediana, ..., - misure di dispersione: varianza, deviaz. standard, ..., - raggruppamento dei dati, - analisi e stima empirica della distribuzione dei dati:quantili e descrizione grafica

Indici di posizione
Le misure di localizzazione dei dati comprendono: geomean media geometrica harmmean media armonica mean media aritmetica median mediana trimmean media trimmed (ripulita)
1

La presente guida stata realizzata dal responsabile del corso con la collaborazione del Dott. F. Paladini del Dipartimento di Fisica dellUniversit del Salento. 2 Nella stesura dei vari punti trattati oltre alla possibilit di errori di trascrizione dei comandi possono comparire anche inesattezze nelle procedure della cui segnalazione anticipatamente il docente responsabile ringrazia.

La media aritmetica la stima pi utilizzata e semplice della "posizione" della distribuzione dei dati, ed la miglior stima della media se la distribuzione di origine gaussiana, ma errori di acquisizione, outliers o anomalie possono facilmente e irrimediabilmente alterare la stima del centro della distribuzione. Questo inconveniente riguarda anche la media geometica e armonica, che per sono utili quando la distribuzione lognormale o fortemente asimmetrica. La mediana e la media trimmed sono misure pi robuste nei confronti degli ouliers. La mediana (50esimo percentile) cambia solo di poco anche se viene aggiunta una grande perturbazione a un qualunque dato. La media trimmed ignora una piccola percentuale dei dati con valori massimi e minimi, rispetto al totale, per poi calcolare la media aritmetica dei dati rimasti.

Misure di dispersione
Le misure di dispersione indicano quanto i dati sono addensati o si discostano da una misura di posizione (e.g. media aritmetica). Le funzioni di MATLAB sono: iqr intervallo interquartile IQR, mad deviazione media assoluta MAD, range intervallo, std deviazione standard (std), var varianza. Il range la differenza tra il massimo ed il minimo valore del campione, la pi semplice misura di dispersione, ma anche la pi sensibile alla presenza di dati anomali. La deviazione standard e la varianza sono le misure pi popolari della dispersione, e sono ottimali quando i dati sono stati estratti da una distribuzione gaussiana, in particolare, la std la miglior stima del parametro sigma. N la std, n la varianza sono robuste nei confronti dei cosidetti "outliers": un dato separato dall'insieme del campione pu alterare entrambe le misure di una quantit arbitrariamente grande. La deviazione media assoluta, MAD, la media della differenza assoluta tra i dati e la media; essa sempre sensibile agli outliers, ma varia meno della std in presenza di dati "anomali". L'intervallo di interquartile, IQR, la differenza tra il 75esimo e il 25esimo percentile. Poich solo il 50% dei dati influenza la IQR (il primo e l'ultimo 25%), essa robusta rispetto agli outliers.

Distribuzioni di probabilit e funzioni di ripartizione


Le distribuzioni di probabilit servono per descrivere i risultati di esperimenti quando i risultati sono soggetti a variazioni casuali. La natura stessa dell'esperimento determina quale distribuzione pi appropriata per modellizzare i risultati random. La trattazione probabilistica non predice il risultato di un singolo esperimento, ma fornisce: -la probabilit di avere un particolare valore come risultato se i dati sono discreti - la probabilit che il risultato cada in un certo intervallo per dati continui. Le funzioni di distribuzione di probabilit (pdf) di MATLAB sono: Continue di dati Beta (betapdf) Esponenziale (exppdf) Gamma (gampdf) Continue statistiche Chi quadro (chi2pdf) Chi quadro non centrale (ncx2pdf) F (fpdf) Discrete Binomiale (binopdf) Uniforme discreta (unidpdf) Geometrica (geopdf) 2

Lognormal (lognpdf) Normale (normpdf) Rayleigh (raylpdf) Uniforme (unifpdf) Weibull (weibpdf)

F non centrale (ncfpdf) t di Student(tpdf) t di student non centrale (nctpdf)

Hypergeometrica (hygepdf) Binomiale negativa (nbinpdf) Poissoniana (poisspdf)

Se la distribuzione discreta la pdf la probabilit di osservare un particolare valore. Se la distribuzione continua la pdf rappresenta la densit di probabilit dei dati, e non la probabilit, che per ogni particolare singolo valore nulla. In questo caso si deve considerare la probabilit che il dato cada in un particolare intervallo, da calcolare come integrale della pdf sull'intervallo di interesse. Per ciascuna pdf MATLAB fornisce le seguenti funzioni:

Distribuzione della densit di probabilit (pdf) Distribuzione comulativa della densit di probabilit (cdf) Funzione inversa della cdf Generatore di numeri pseudocasuali Varianza e media parametriche

La distribuzione della densit di probabilit calcola la probabilit relativa a ciascun valore dei dati se questi sono discreti, e calcola la densit di probabilit se i dati variano con continuit (pdf_.m, le funzioni che calcolano le diverse pdf sono riportate tra parentesi nella tabella). La cdf di una pdf , definita per una v.a. continua come:

viene chiamata con i comandi normcdf, betacdf,... Con la funzione cdf si pu calcolare la probabilit associata a un qualunque intervallo dei dati. Le funzioni inverse delle cdf accettano come argomento in ingresso un valore di probabilit p, e forniscono in uscita il valore di x tale che la probabilit di osservare valori minori o uguali ad x proprio p, ovvero la x tale che l'integrale della pdf da -inf a x uguale a p. I comandi sono norminv, betainv... . Ciascuna pdf ha una forma funzionale nella quale compaiono i parametri che la caratterizzano. A partire dal campione, si pu effettuare una stima di massima verosimiglianza dei parametri (MLE Maximum likelihood estimation): si ipotizza che il set di dati segua una certa distribuzione (eg. gaussiana, esponenziale,...) e si ricavano i "migliori" valori dei parametri per descrivere i dati, unitamente al loro intervallo di confidenza. Vediamo ora come costruire il grafico di una funzione densit di probabilit. Prendiamo ad esempio la distribuzione t di Student, a cui corrisponde la funzione tpdf. Dall'help (help tpdf) apprendiamo che la funzione prende due argomenti: >>y = tpdf(x,nu) un vettore di ascisse x e i gradi di libert nu, e restituisce un vettore y che contiene i valori della pdf in corrispondenza delle ascisse. Dobbiamo quindi in primo luogo costruire un vettore di ascisse. Se vogliamo vedere il grafico della funzione di densit tra -5 e 5, il comando >>x=[-5:0.1:5]'; 3

produce una progressione aritmetica di ragione 0.1 che parte da -5 e termina a 5. I valori della pdf di una distribuzione t di Student con 3 gradi di libert si otterranno quindi digitando ad es.: >>clear all >>x=[-5:0.1:5]'; >>yt=tpdf(x,3); A questo punto possiamo costruire il grafico: >>plot(x,yt) Se si aggiungono ulteriori argomenti, si pu controllare l'aspetto del grafico: plot(x,yt,'r.') produce un grafico a punti di colore rosso. Una lista completa delle opzioni si pu ottenere digitando help plot. Un grafico a punti o a barre pu essere utile nel caso di distribuzioni discrete, visto che in questo caso la probabilit definita solo in corrispondenza di valori interi delle ascisse. Disegniamo ora, utilizzando la stessa griglia di ascisse, la funzione di densit di una distribuzione normale standardizzata: >>clear all >>x=[-5:0.1:5]'; >>yn=normpdf(x,0,1); >>plot(x,yn) Se si desidera visualizzare pi grafici sovrapposti, si utilizza il comando hold; ad esempio inserite le seguenti istruzioni: >>clear all >> x=[-5:0.1:5]'; >>hold on; >>yt=tpdf(x,3); >>yn=normpdf(x,0,1); >>plot(x,yn,'g'); >>plot(x,yt,'r'); >>hold off;

Numeri casuali
MATLAB possiede un generatore di numeri (matrici) pseudocasuali uniformi (rand) e normali standardizzati (randn); gli argomenti che questi generatori richiedono sono il numero di righe e colonne desiderati. Ad esempio, per avere un vettore colonna di dieci numeri casuali uniformi si digita rand(10,1). Il computer una macchina deterministica e non in grado di produrre numeri veramente" casuali. Nel package stats sono inoltre compresi ulteriori generatori. Se vogliamo un campione di 100 osservazioni da una distribuzione esponenziale con media 1.8, digitiamo: >>r=exprnd(1.8,100,1);

Se vogliamo un campione di 100 osservazioni da una distribuzione normale con media 0 e deviaz. standard 1, digitiamo: >>r=randn(100,1); Una analoga istruzione consente di ottenere il set di osservazioni richiesto: >>r=normrnd(0,1,100,1);

Istogramma e cdf empirica


Una volta generati dei numeri casuali r=, si pu visualizzare il risultato costruendone l'istogramma: hist(r). Se si desidera specificare il numero di intervalli che l'istogramma deve utilizzare, lo si pu inserire come secondo argomento:hist(r,20). Un secondo modo per visualizzare le propriet empiriche di un campione quello di disegnare la cdf empirica: cdfplot(r). >>clear all >> r=exprnd(1.8,100,1); >> hist(r) >> cdfplot(r)

Applicazioni
PREMESSA: Prima di iniziare a trattare le varie applicazioni che vengono di seguito proposte, un consiglio (o meglio un imperativo categorico) per tutti. Ogniqualvolta incontrate un nuovo comando, prima di procedere alla applicazione, digitate lhelp relativo al comando incontrato e impadronitevi delle varie opzioni che lo riguardano. Per ogni argomento trattato fate una stampa dei risultati dellapplicazione e degli eventuali grafici che vengono creati. Il tutto costituir il materiale della vostra esercitazione di statistica che presenterete al docente responsabile del corso una settimana prima dellesame. Le applicazioni contrassegnate dal simbolo # sono da considerare facoltative.

1) Variabili aleatorie
Cominciamo imparando ad usare MATLAB per calcolare le probabilit e le funzioni di ripartizione di v.a. discrete quali la binomiale e la poissoniana. Sia k una v.a. discreta con distribuzione di Poisson di parametro lambda= ultima cifra del vostro giorno di nascita. Calcolate: a) la probabilit P(k=3) b) P(k 3) c) P(1k<5) d) P(k15)

La probabilit della v.a. poissoniana k di parametro lambda viene valutata digitando il comando poisspdf(k,lambda) mentre la funzione di ripartizione il comando poisscdf(k,lambda). Pertanto per rispondere rispettivamente alle precedenti questioni digitate: >>clear all >>lambda=; >>Pa=poisspdf(3,lambda) >>Pb=1-poisscdf(2,lamda) >>Pc=posscdf(4,lambda)-poisscdf(0,lambda) >>Pd=1-poisscdf(14,lambda) Rispondete ora alle stesse domande nel caso in cui la v.a. discreta k segua una legge binomiale di parametri N e p. Fissate N=ultima cifra del vostro giorno di nascita (se questo numero minore o uguale a quattro aggiungetegli il numero 5) e p=numero (arrotondato a due cifre decimali) che si ottiene facendo il reciproco dellultima cifra del vostro giorno di nascita (se questo numero uguale ad uno aggiungetegli 2 prima di farne il reciproco) >>clear all >>N=....; % inserite il valore indicato >>p=..; % inserite il valore indicato >>Pa=binopdf(3,N,p) >>Pb=1-binocdf(2,N,p) >>Pc=binocdf(4,N,p)-binocdf((0,N,p) >>Pd=1-binocdf(14,N,p) Possiamo calcolare con unistruzione sintetica la media e la varianza per i dati delle nostre distribuzioni. Per la binomiale di parametri N e p possiamo digitare ad esempio: >>clear all >>N=..; % inserite il valore utilizzato in precedenza >>p=..; % inserite il valore utilizzato in precedenza >>[mu, var]=binostat(N,p) Possiamo calcolare simultaneamente le coppie (mu,var) al variare di N. Per esempio: con il comando N=linspace(10,100,10) viene generato un insieme di 10 valori da 10 a 100 egualmente spaziati. >>clear all >>p=.. >>N=linspace(10,100,10); >>[mu, var]=binostat(N,p) MATLAB fornisce in successione rispettivamente i valori attesi e le varianze per i vari casi. Per v.a. continue valgono analoghe istruzioni. Per la v.a. normale di parametri mu e sigma avremo ad es.: >>clear all >> x=[-5:0.1:5]'; >>mu= ultima cifra del vostro giorno di nascita;

>>sigma=numero (arrotondato ad una cifra decimale) che si ottiene facendo il reciproco dellultima cifra del vostro giorno di nascita (se questo numero uguale ad uno aggiungetegli 2 prima di farne il reciproco) >>p = normpdf(x,mu,sigma); %densit di probabilit >>F = normcdf(x,mu,sigma); %funzione di ripartizione >>alpha=0.25; >>q = norminv(alpha,mu,sigma) % (quantile di ordine alpha) Per l'esponenziale di parametro lambda: >>clear all >> x=[-5:0.1:5]'; >>lambda=.; % inserite il valore utilizzato precedentemente >>p = exppdf(x,1/lambda) %densit di probabilit >>F = expcdf(x,1/lambda) %funzione di ripartizione >>alpha=0.75 >>q = expinv(alpha,1/lambda) % (quantile di ordine alpha) Per la v.a. uniforme continua sull'intervallo (a,b): >>clear all >>a= ultima cifra del vostro giorno di nascita; >>b= ultima cifra del vostro giorno di nascita + 4; >>p= unifpdf(x,a,b) %densit di probabilit >>F= unifcdf(x,a,b) %funzione di ripartizione >>alpha=0.90 >>q= unifinv(alpha,a,b) % (quantile di ordine alpha)

2) Generazione di numeri casuali e visualizzazione dei dati


Creiamoci innanzitutto un insieme di dati sui quali lavorare usando il comando rand. U = rand(n,m) genera una matrice U(n*m) di variabili pseudoaleatorie indipendenti e uniformi in (0,1), mentre u = rand(n,1) fornisce un vettore colonna di lunghezza n. Primo passo: generate ad esempio un set di numeri random uniformemente distribuiti tra zero ed uno e al prompt di MATLAB nel Command Window date le seguenti istruzioni: >>clear all >>n=100seguito dallultima cifra del vostro giorno di nascita se questo numero pari, altrimenti gli aggiungete 1); >>data= rand(n,1); Secondo passo: Costruiamo due vettori di lunghezza n/2, il primo diciamo data1- costituito dagli elementi di data di posto dispari e il secondo diciamo data2- da quelli di posto pari: >>data1=data(1:2:n); >>data2=data(2:2:n); A questo punto plottiamo data1 in funzione di data2 col comando:

>>plot(data1,data2,'o')

Se i punti sono uniformemente distribuiti sul quadrato [0,1]*[0,1] allora possiamo pensare che non ci sia correlazione fra i vari elementi del vettore data. Generazione di altre variabili diverse dalla uniforme: come detto MATLAB le fornisce nella propria libreria statistica, tutte partono dal generare numeri indipendenti uniformi (0,1) poi trasformati. Ad es. binornd, unifrnd, normrnd, poissrnd...(vedere i rispettivi help per conoscere le modalit di generazione dei dati pseudocasuali). Digitate: >>clear all >>rand('state' ,sum(100*clock)) % predisponiamo il seme del generatore >>n=10seguito dallultima cifra del vostro giorno di nascita se questo numero pari, altrimenti gli aggiungete 1); >>data= normrnd(0,1,n,1); >>data1=u(1:2:n); >>data2=u(2:2:n); >>plot(data1,data2,'o') %Se vogliamo inserire una griglia sul grafico aggiungeremo il comando grid on. %Lo stesso tipo di grafico pu essere ottenuto col comando scatter: >>scatter(data1,data2, 'o') >>grid on Con n numeri pseudocasuali uniformemente distribuiti tra 0 ed 1 possiamo creare ad esempio un insieme di n numeri interi con valori compresi tra 0 e 9: >>clear all >>rand('state' ,sum(100*clock)) % predisponiamo il seme del generatore >>n=100seguito dallultima cifra del vostro giorno di nascita; >>data=rand(n,1); >>datint=fix(10*data); %Creiamo ora un vettore delle frequenze assolute e un vettore delle frequenze relative di ciascuna %cifra (da 0 a 9): >>fass=hist(datint); >>frel=fass/n; %Grafico della distribuzione delle frequenze assolute: >>interv=[min(datint):max(datint)]'; % si traspone(') perch fass un vettore colonna >>plot(interv,fass) % grafico >>bar(interv,fass) % diagramma a barre %Calcoliamo ora le frequenze cumulative e plottiamo il grafico: >>Fass(1)=fass(1) >>for i=2:length(interv) Fass(i)=Fass(i-1)+fass(i); end >>plot(interv,Fass) %Calcoliamo i valori di skewness e di curtosi della nostra distribuzione di dati: >>sk=skewness(datint) >>k=kurtosis(datint) %disegnare la densit cumulative empirica col comando: >>cdfplot(datint)

3) Verifica empirica della legge dei grandi numeri#


La legge (debole) dei grandi numeri dice che data una successione di variabili casuali xi a media finita, la media campionaria delle osservazioni converge in probabilit al valore della media teorica mu. Una verifica empirica di questa legge consiste nel generare n numeri pseudocasuali, calcolarne la media campionaria xmedio=(x1+x2+x3+..xn)/n e vedere con un plot come il valor medio campionario oscilla attorno a mu con le oscillazioni che diminuiscono al crescere di n. Generiamo una successione di variabili uniformemente distribuite tra 0 ed 1 e con valore atteso mu=1/2: >>clear all >>rand('state' ,sum(100*clock)); >>for i=1:100 xmedio(i)=sum(rand(i,1))/i; end >>plot(xmedio, '.') Provate anche con i=1000 e con i=10000 ma non andate oltre perch MATLAB con un gran numero di iterazioni diventa molto lento.

4) Teorema del limite centrale#


Verifichiamo sperimentalmente il teorema del limite centrale della statistica. Sommiamo inizialmente nv=50 variabili indipendenti con distribuzione uniforme ottenute per un numero np=10000 prove e confrontiamo la frequenza relativa della distribuzione della loro somma con la previsione teorica, vale a dire con una gaussiana di media e varianza note dalla teoria. Aumentiamo successivamente il numero di variabili portandolo a nv=100 e nv=500 e valutiamo graficamente il limite asintotico della distribuzione empirica alla gaussiana. >>clear all >>rand('state' ,sum(100*clock)) >> np=10000; >> nv=50; >> y=rand(nv,np); >> sy=sum(y); >> media=nv*.5; >> varianza=nv*1/12; >> x=[-5*sqrt(varianza):.5:5*sqrt(varianza)]+media; >> freq=hist(sy,x)/np/.5; >> dist=1/sqrt(2*pi*varianza)*exp(-(x-media).^2/(2*varianza)); >> figure >> hold on; >> bar(x,freq) >> plot(x,dist,'r') Ripetete la procedura ponendo nv=100 e successivamente nv=500.

5) Intervalli di confidenza per la media della popolazione


a) Intervallo di confidenza per la media di una popolazione con varianza nota: 9

>>clear all >>rand('state' ,sum(100*clock)) >>mu= 0; >>sigma=1; >>n = 1seguito dallultima cifra del vostro giorno di nascita); >>x = normrnd (mu, sigma, n, 1); >>intconf= 0.95; >>xmedio = mean (x) >>qn =norminv ((1+intconf)/2, 0, 1) >>deltan= qn*sigma/sqrt(n) >>intervallo = [xmedio-deltan xmedio+deltan] Riprovate la precedente procedura rispettivamente con n=10seguito dallultima cifra del vostro giorno di nascita e con=100seguito dallultima cifra del vostro giorno di nascita e notate come diminuisce l'ampiezza dell'intervallo al variare di n. b) Intervallo di confidenza per la media di una popolazione con varianza incognita: >>clear all >>rand('state' ,sum(100*clock)) >>mu= 0; >>sigma=1; >>n = 1seguito dallultima cifra del vostro giorno di nascita); >>x = normrnd (mu, sigma, n, 1); >>intconf= 0.95; >>xmedio = mean (x) >>s=std(x) >>qt =tinv ((1+intconf)/2, n-1) >>deltat= qt*s/sqrt(n) >>intervallo = [xmedio-deltat xmedio+deltat] Riprovate anche in questo caso la precedente procedura con n=10seguito dallultima cifra del vostro giorno di nascita) e con=100seguito dallultima cifra del vostro giorno di nascita) e notate come diminuisce l'ampiezza dell'intervallo al variare di n.

5) Test dipotesi sulla media con varianza nota


Considerate il seguente esempio: Una ditta sta commercializzando un nuovo prodotto ed e' interessata a conoscere l'altezza di tale manufatto. Si suppone che tale altezza sia normalmente distribuita con deviazione standard nota e pari a 20 mm. Disponendo dei seguenti dati (in mm) riguardo all'altezza di N=40 prodotti scelti a caso: 194 195 226 224 222 178 183 180 174 205 186 235 186 196 158 185 201 198 215 178 177 182 198 204 212 173 168 191 201 178 196 208 220 181 163 204 197 200 173 182 lazienda intende effettuare il seguente test di ipotesi sulla media: 10

H0 (ipotesi nulla):la media e' uguale a 188 mm. H1 (ipotesi alternativa):la media e' diversa da 180 mm. 1) Utilizzando soltanto i primi n(<=N) dati del campione e come statistica la media campionaria, trovare la regione di accettazione per l'ipotesi nulla ad un livello di significativita' del 5% e trarre una conclusione sull'ipotesi fatta 2) Confrontare i risultati al punto 1) con quelli ottenuti con un livello di significativita' dell'1% 3) Confrontare i risultati al punto 1) con quelli ottenuti utilizzando tutti gli N=40 dati del campione. Impostiamo il problema con MATLAB: Punto 1) >>clear all >>sigma = 20; >>Dati =[194 195 226 224 222 178 183 180 174 205 186 235 186 196 158 185 201 198 215 178 177 182 198 204 212 173 168 191 201 178 196 208 220 181 163 204 197 200 173 182]; >>mu = 188; % Ipotesi nulla >>n =2seguito dallultima cifra del vostro giorno di nascita; >>xmedio = mean(Dati(1:n)); >>alpha = 0.05; % alpha = P(di rigettare l'ipotesi nulla anche se vera) >>b= 1-alpha/2; >>qb= norminv(b,0,1); >>delta = qb * sigma / sqrt(n); >>mupiu = xmedio+ delta; >>mumeno = xmedio- delta; >>Test = mu > mumeno & mu < mupiu % Test = 1 ipotesi accettata, Test = 0 ipotesi rifiutata Punto 2) Per rispondere a questo punto occorre ripetere la successione di istruzioni precedente inserendo lopportuno valore di alpha. Punto 3) Si tratta anche in questo caso di ripetere la procedura del punto 1) ponendo n=40 ed alpha=0.05.

6) Unesercitazione un po pi laboriosa (ma non meno interessante)


Generate un campione di 360 numeri interi di una cifra estratti a caso da una distribuzione uniforme e disponeteli in 40 gruppi di 9 cifre . Per generare con MATLAB una tale tabella attenetevi alle seguenti istruzioni: >>n=360; >>rand('state' ,sum(100*clock)); >>N=fix(10*rand(n,1)); >>hist(N) % per avere una visione dinsieme della distribuzione del vostro campione di cifre 11

>>fprintf('%3.0f %3.0f %3.0f %3.0f %3.0f %3.0f %3.0f %3.0f %3.0f \n',N) %mantenete gli spazi vuoti indicati tra i gruppi di cifre da visualizzare sullo schermo). Dopo lultima istruzione apparir nella videata del Command Window di MATLAB una successione di numeri casuali interi di una cifra disposti in quaranta righe di 9 elementi spaziati opportunamente per lelaborazione successiva. Selezionate quindi col tasto destro del mouse nel Command Window di MATLAB la successione di cifre che compare sullo schermo e copiatela su un documento Word. Avrete cos la vostra tabella personalizzata sulla quale lavorare. Il valore atteso e la varianza di una variabile casuale n, che assume i 10 valori interi da zero a nove con equiprobabilit (p=1/10), sono rispettivamente: E[n] = ni / 10 = 4.5
i =1 10

= E[n E[ n]]2 = (ni E[n]) 2 / 10 = 8.5


2 i =1

10

Selezionate inizialmente dalla vostra tabella un sottoinsieme di K=90 numeri di una cifra. La cosa migliore prendere una successione di numeri consecutivi per evitare di influire sulla loro selezione. Dopo aver sistemato i dati in una tabella di frequenza del tipo:
Frequenza Cifra Freq. ass. Fi Freq. rel. fi

0 1 2 3 4 5 6 7 8 9
10

calcolate, utilizzando MATLAB, il valor medio campionario n =

n F
i =1 10 i

F
i =1

e la varianza campionaria

s2 =

F (n n )
i =1 i i

10

K 1

Per evitare di riportare singolarmente nella istruzione dati=[.] tutte le 90 cifre selezionate, ritornate con il cursore del Command Window di MATLAB sulla successione di 360 cifre e aggiungete manualmente alla fine di ogni riga (eccetto lultima) tre puntini () per indicare che listruzione continua al rigo successivo, dopodich selezionate tutte le righe interessate e inseritele

12

nelle parentesi dellistruzione dati=[.]. Per calcolare la media e la varianza utilizzate poi le opportune istruzioni MATLAB (mean(dati) e var(dati)). Non sarebbe sorprendente se per il vostro campione di dimensione limitata di elementi trovaste che la media e la varianza si discostano dai valori attesi. Ci aspettiamo tuttavia che laccordo migliori con campioni di K=180 e 360 elementi rispettivamente. Valutate la media e la varianza empiriche anche per questi campioni e confrontatele con i valori attesi. Considerate ora i gruppi di tre cifre della vostra tabella di 360 numeri interi e valutate qual la frequenza del numero m= ultima cifra del vostro giorno di nascita, in ciascun gruppo di tre cifre (gruppi in numero totale di 120). Cio quanti gruppi di tre cifre non contengono nessun m, quanti ne contengono uno, quanti ne contengono due, quanti ne contengono tre? La variabile casuale individuata dai quattro valori n=0,1,2,3 di frequenza considerati, descritta da una distribuzione teorica di tipo binomiale N PN , p (n) = p n (1 p ) N n con N=3 p=1/10 n e con parametri di posizione e di larghezza rispettivamente dati da: E[n] = N p = 3 1 = 0.3 10 1 9 27 = = 0.27 10 10 100

2 = E[n E[n]] 2 = N p (1 p) = 3

Dopo aver registrato le frequenze sperimentali in una tabella del tipo:


variabile n Frequenza assoluta relativa

valutate il valor medio e la varianza campionari della variabile n. Come si confrontano i valori di frequenza relativa con i valori di probabilit della distribuzione teorica? Utilizzate MATLAB per ricavare questi ultimi valori. Verificate lattendibilit dellipotesi sulle frequenze, applicando (eventualmente con luso di MATLAB) un test del chiquadro al livello di significativit del 5%. Prendete ora in considerazione i gruppi di nove cifre nella tabella di di 360 numeri a caso a vostra disposizione (40 gruppi in totale). Effettuate un calcolo della distribuzione delle frequenze della cifra m (usata in precedenza) nei gruppi di nove cifre, considerando solo i valori di n=0,1,2,3 e 4. Costruite una tabella simile alla precedente e confrontate anche in questo caso, applicando ancora un test del chiquadro al livello di significativit del 5%, i valori di frequenza relativa con i rispettivi valori di probabilit (valutati utilizzando MATLAB) della corrispondente distribuzione teorica binomiale (stavolta con N=9 e p=1/10) Considerate infine lapprossimazione di Poisson per la distribuzione di frequenza delle cifre nei gruppi di nove numeri estratti a caso. Si ha N=9 e p=1/10, per cui lambda = N p =0.9 13

Calcolate, utilizzando MATLAB, le probabilit per i valori di n=0,1,2,3 e 4 considerando una distribuzione poissoniana con parametro lambda=0.9. Naturalmente non ci si deve attendere un accordo troppo elevato tra frequenze relative e probabilit perch N=9 molto distante da N= e p=1/10 non un valore di probabilit troppo piccolo, ma comunque il confronto con la nostra distribuzione di frequenza campionaria resta interessante. Verificate con un test del chiquadro al livello di significativit del 5% lattendibilit delladattamento della poissoniana al vostro campione di frequenze.

14