IN MATLAB – distribuzione di frequenza >> x(1)

2- 1
IN MATLAB – distribuzione di frequenza
2- 2
4. Usare la function histc(dati,x)
1. Riportare i dati in un file (ad esempio dati.mat);
>> n=histc(dati,x)
2. load –ascii dati: viene creata una variabile “dati” contenente il campione;
n=
3. Costruire un vettore contenente gli estremi delle classi:
1
12
10
5
1
1
0
Numero di dati del c.c. che
coincidono con l’ultimo estremo
>> x(1)=7.5;
>> for i=2:7
x(i)=x(i-1)+5;
end
>> x
x=
7.5000 12.5000 17.5000 22.5000 27.5000 32.5000 37.5000
>> x
>> n
x=
n=
7.5000 12.5000 17.5000 22.5000 27.5000 32.5000 37.5000
1
12
10
5
1
1
0
2- 3
IN MATLAB – distribuzione di frequenza
1. Costruire un vettore contenente i centri delle classi:
A) Dividere la function histc per la taglia del campione:
>> c
>> c(1)=10.0;
>> for i=2:6
c(i)=c(i-1)+5;
end
2- 4
IN MATLAB – distribuzione di frequenza relativa
>> n=histc(dati,x)/30
c=
n=
10
15
20
25
30
35
0.0333
0.4000
0.3333
0.1667
0.0333
0.0333
0
2. Usare la function [n,xout]=hist(dati,c)
>> [n,xout]=hist(dati,c)
B) Dividere il parametro di output n di hist per la taglia del campione:
n=
>> n=n/30
1
12
10
5
1
1
n=
xout =
10
0.0333
15
20
25
30
0.4000
0.3333
0.1667
0.0333
0.0333
35
2- 5
IN MATLAB – Istogramma (fr. assolute)
A) La function hist fornisce in output anche l’istogramma.
>> hist(dati,c)
2- 6
IN MATLAB – Istogramma (fr. relative)
>> [n,xout]=hist(dati,c);
>> n=n/30;
>> bar(xout,n);
1
2- 7
IN MATLAB – Qualche didascalia…
2- 8
IN MATLAB – Istogramma (fr. assolute)
E’ possibile costruire l’istogramma anche con la function histc:
>> title('frequenze relative');
>> xlabel('ore trascorse a studiare');
>> text(30,0.35,'Istogramma');
>> [n,xout]=hist(dati,c);
>> bar(xout,n)
2- 9
IN MATLAB – Istogramma (fr. relative)
2- 10
IN MATLAB – Le function bar
>> bar(xout,n/30,1)
Le barre si toccano
>> [n,xout]=hist(dati,c);
>> bar(xout,n/30)
>> barh(xout,n/30)
Barre orizzontali
>> bar3(xout,n,1,’r’)
Grafici 3-D
>> bar3h(xout,n,1)
2- 11
IN MATLAB – Poligono di frequenza
>> plot(c,n,'--rs')
2- 12
IN MATLAB – Distribuzione cumulativa
E’ possibile usare la funzione cdfplot:
>> cdfplot(dati)
2
2- 13
IN MATLAB – Q-Q plot
2- 14
IN MATLAB – Calcolo dei percentili
>>x=[96, 92, 91, 88, 86, 85, 84, 83, 82, 79, 78, 69];
>>prctile(x,25)
ans =
E’ possibile usare la funzione normplot:
>> normplot(dati)
80.5000
>>prctile(x,75)
>> prctile(x,50)
ans =
84.5000
ans =
89.5000
2- 15
IN MATLAB – Grafico del box-plot
2- 16
OUTLIERS
7. Box Plot
>> boxplot(es3)
>> boxplot(x)
>> [max(es3),min(es3)]
ans =
4.6191 0.0117
2- 17
2- 18
• Distribuzione uniforme discreta
In Matlab
>>c=[1,2,3,4,5,6]; dat=unidpdf(c,6); bar(c,dat)
• Distribuzione di Bernoulli
>> p=…; q=1-p; c=[0,1]; dat=[q,p]; bar(c,dat)
3
2- 19
• Distribuzione uniforme discreta (funzione cumulativa)
2- 20
• Distribuzione binomiale
>>dat1=unidcdf(c,6);
>> x=0:10;
>> y=binopdf(x,10,0.5);
>> bar(x,y)
>>stairs(c,dat1)
2- 21
• Distribuzione binomiale
>> x=0:10;
>> y=binopdf(x,10,0.01);
>> bar(x,y)
• Binocdf
• Binoinv
• Binornd
• Binostat
• Distribuzione binomiale (funzione di ripartizione)
2- 22
>> x=0:10;
>> y=binocdf(x,10,0.5);
>> y1=binocdf(x,10,0.1);
>> stairs(x,y,’r’);
hold on;
stairs(x,y1,’g’)
>> legend(‘0.5’,’0.1’)
2- 23
2- 24
• Distribuzione geometrica
DISTRIB.BINOM: restituisce la distribuzione binomiale per il numero di successi scelto.
Sintassi: DISTRIB.BINOM(num_successi;prove;probabilità_s;cumulativo)
Num_successi è il numero di successi nelle prove, (ossia x=0,1,…prove).
>> x=1:10;
>> y=geopdf(x,0.5);
>> bar(x,y)
Prove è il numero di prove indipendenti, ossia n.
Probabilità_s è la probabilità di successo per ciascuna prova, ossia p.
Cumulativo è un valore logico che determina la forma assunta dalla funzione. Se il
valore cumulativo è VERO, DISTRIB.BINOM restituirà la funzione di ripartizione, ovvero
la probabilità che venga restituito un numero massimo di successi pari al valore di
num_successi. Se il valore cumulativo è FALSO, verrà restituita la funzione massa di
probabilità, ovvero la probabilità che venga restituito un numero massimo di successi
pari al valore di num_successi.
4
2- 25
• Distribuzione geometrica
2- 26
• Distribuzione Poisson
>> x=0:20;
>> y=poisspdf(x,2);
>> bar(x,y)
>> x=1:10;
>> y=geocdf(x,0.5);
>> x=0:20;
>> y=poisspdf(x,5);
>> bar(x,y)
>> y1=geocdf(x,0.1);
>> stairs(x,y,’r’);
hold on;
stairs(x,y1,’g’)
>> legend(‘0.5’,’0.1’)
>> [media,var]=geostat(0.5)
>> [media,var]=poisstat(2)
2- 27
>> x=0:20;
>> y=poisspdf(x,10);
>> bar(x,y)
• Distribuzione Normale
>>x=0:20;
>> y1=binopdf(x,50,1/5);
>> bar(x,y1)
2- 29
2- 28
>> x=0:100;
>> y=poisspdf(x,50);
>> bar(x,y)
• Distribuzione Normale
[media,var]=binostat(500,0.1)
>>x=0:50;
>> y1=binopdf(x,500,1/10);
>> bar(x,y1)
2- 30
[media,var]=binostat(10,0.5)
media=50, var=45
>> x=0:0.1:100;
>> y=normpdf(x,50,sqrt(45));
>> plot(x,y)
>> [media,var]=poisstat(5)
media=5, var=2.5
>> x=0:0.01:10;
>> y=normpdf(x,5,sqrt(2.5));
>> plot(x,y)
5
2- 31
2- 32
DISTRIB.NORM: restituisce la distribuzione normale per la media e la distribuzione
standard specificate.
P POISSON: restituisce la distribuzione di probabilità di Poisson.
Sintassi: POISSON(x;media;cumulativo)
Sintassi DISTRIB.NORM(x;media;dev_standard;cumulativo)
X è il numero degli eventi.
X è il valore per il quale si desidera la distribuzione.
Media è la media aritmetica della distribuzione.
Dev_standard è la deviazione standard della distribuzione.
Cumulativo è un valore logico che determina la forma assunta dalla funzione.
Se cumulativo è VERO, DISTRIB.NORM restituirà la funzione di ripartizione, se è
FALSO restituirà la funzione densità di probabilità.
Media è il valore numerico previsto.
Cumulativo è un valore logico che determina la forma per la distribuzione
di probabilità. Se cumulativo è VERO, POISSON restituirà la funzione di ripartizione di Poisson indicante la probabilità che il numero degli eventi casuali sia
compreso tra zero e x inclusi. Se cumulativo è FALSO, verrà restituita la funzione massa di probabilità di Poisson indicante la probabilità che il numero di
eventi sia esattamente uguale a x.
•
DISTRIB.NORM.ST: restituisce la funzione di ripartizione normale standard
cumulativa. La distribuzione ha una media uguale a 0 (zero) e una deviazione
standard uguale a uno.
Sintassi: DISTRIB.NORM.ST(z)
Z è il valore per il quale si desidera la distribuzione.
2- 33
INV.NORM: restituisce il quantile associato alla coda sinistra della distribuzione
normale con media e varianza specificate.
2- 34
• Distribuzione Ipergeometrica
p = hygepdf(0:10,100,20,10)
Sintassi: INV.NORM(probabilità;media; gradi_libertà)
Probabilità è la probabilità della coda destra sotto la densità chi-quadrato.
Media è la media aritmetica della distribuzione.
Dev_standard è la deviazione standard della distribuzione.
•
Taglia popolazione
Taglia campione
successi
INV.NORM.ST: restituisce il quantile associato alla coda sinistra della
distribuzione normale standard.
>> bar(0:10,p)
Sintassi: INV.NORM(probabilità)
Probabilità è la probabilità della coda destra sotto la densità
2- 35
2- 36
DISTRIB.IPERGEOM: restituisce la distribuzione di probabilità di una variabile
aleatoria ipergeometrica.
Ipergeometrica
Sintassi:
DISTRIB.IPERGEOM(successi_camp;num_campione;successi_pop;num_popolazione)
Successi_camp è il numero di successi nel campione, ossia x.
Num_campione è la dimensione del campione, ossia n.
Successi_pop è il numero di successi nella popolazione, ossia K.
Num_popolazione è la dimensione della popolazione, ossia N.
Binomiale
>>y=binopdf(0:10,10,2/10)
>>bar(0:10,10,2/10)
6
2- 37
Il test di K-S misura la distanza media tra la funzione di ripartizione
Empirica e quella ipotizzata. Se tale distanza risulta maggiore di un
prefissato quantile, il test K-S rigetta l’ipotesi che la popolazione ha
distribuzione di probabilità prefissata.
2- 38
Kstest(x)
Confronta la funzione di ripartizione
empirica del campione x con la funzione
di ripartizione di una gaussiana standard
Se il campione casuale di dati non ha media nulla
e varianza unitaria?
I dati vanno standardizzati.
>> x=(Weight-mu)/sigma;
>> [H,P,KSSTAT,CV]=KSTEST(X)
E se il campione casuale ha legge diversa
da quella gaussiana standard?
>> x=rand(100,1);
>> ccf(:,1)=x;
>> ccf(:,2)=x;
>> [H,P,KSSTAT,CV]=KSTEST(x,ccf,0.05,0)
2- 39
>> [h,p,ksstat,cv]=kstest(x)
h=
2- 40
H = 0 => Do not reject the null hypothesis
at significance level ALPHA.
H = 1 => Reject the null hypothesis at
significance level ALPHA.
0
p=
0.7172
ksstat =
0.0687
KSTEST(...) also returns the K-S test statistic KSSTAT
defined above for the test type indicated by TAIL.
cv =
0.1340
>>
KSTEST(...) also returns the asymptotic P-value P.
KSTEST(...) returns the critical value of the test CV.
Null Hypothesis: F(x) equal to CDF for all x.
For TAIL = 0 (2-sided test), alternative: F(x) not equal to CDF.
For TAIL = 1 (1-sided test), alternative: F(x) greater than CDF.
For TAIL = -1 (1-sided test), alternative: F(x) less than CDF.
2- 41
2- 42
7
2- 43
2- 45
2- 44
2- 46
Test T sulla differenza tra medie – popolazioni normali – varianze incognite =
2- 47
2- 48
Esempio: Da una serie di rilevazioni sulla quantità di specie presenti in alcuni
Ambienti, sono stati rilevati I seguenti 20 valori di biodiversità (vedi tabella). Si
Valuti se la tendenza centrale di questa serie è significativamente differente da
6.5, valore centrale dell’area in studi precedenti.
2,5
2,7
2,9
2,9
3,1
3,1
3,1
3,8
3,9
4,2
4,5
4,9
5,3
6,5
6,5
8,9
9,7
11,7
15,7
18,9
0
0
+
+
+
+
+
N = 18, r − = 13, r + = 5
0,096252
8
2- 49
2- 50
2- 51
2- 52
2- 53
2- 54
Nel grafico, ogni media del livello viene rappresentata da un tondino che è situato al
centro di un intervallo. L’intervallo non ha alcun significato statistico. Due medie sono
differenti in modo significativo se i corrispettivi intervalli sono disgiunti (in rosso). Due
medie non sono differenti in modo significativo se i rispettivi intervalli non sono disgiunti
(in grigio). La frase sotto il grafico segnala le medie dei livelli diverse.
9
2- 55
2- 56
Si può usare il mouse per selezionare un gruppo. Il grafico mette in evidenza
gli altri gruppi (in rosso) che sono differenti significativamente dal livello esaminato.
2- 57
2- 58
2- 59
2- 60
10
2- 61
11