CORSO ADA2 PROVA PRATICA 30 OTTOBRE 2012

Transcript

CORSO ADA2 PROVA PRATICA 30 OTTOBRE 2012
CORSO ADA2
PROVA PRATICA 30 OTTOBRE 2012
Mario Romanazzi
1
Esercizio 1
La distribuzione congiunta dei voti in Matematica (X1 ), Informatica (X2 ) e Diritto (X3 ) è ben approssimata da un vettore aleatorio normale X = (X1 , X2 , X3 )T ∼ N3 (µ, Σ), in cui


4 3.2 0
µ = (25, 28, 23)T ,
Σ =  3.2 4 0  .
0
0 9
1.1
Domanda 1
Qual è la probabilità che uno studente scelto a caso abbia più di 27 sia in Matematica che in Diritto?
La struttura della matrice di covarianza mostra che i voti in Matematica e Diritto sono incorrelati il
che, vista l’ipotesi di normalità, implica l’indipendenza stocastica. Pertanto
P (X1 > 27 ∩ X2 > 27)
= P (X1 > 27)P (X2 > 27)
(1 − FX1 (27))(1 − FX2 (27))
=
La soluzione con R è
> (1-pnorm(27,mean=25,sd=2))*(1-pnorm(27,mean=23,sd=3))
[1] 0.01447114
1.2
Domanda 2
Descrivi la distribuzione del vettore aleatorio trasformato Y = AX, con


1/2 1/2 0
A =  1/2 1/2 −1  .
1/3 1/3 1/3
La famiglia gaussiana è chiusa rispetto alle trasformazioni lineari, pertanto Y ha una distribuzione
normale trivariata, come X, ma con diversi parametri µY , ΣY . Dai risultati generali sulle trasformazioni
lineari (validi per ogni vettore aleatorio, qualunque sia la sua distribuzione, normale o no, purchè con
momenti secondi finiti ) segue
µY
= AµX ,
ΣY
= AΣX AT .
Il calcolo è agevole con R.
1
2
>
>
>
>
>
ESERCIZIO 2
2
mux <- c(25,28,23)
Sigmax <- matrix(c(4,3.2,0,3.2,4,0,0,0,9),nrow=3,ncol=3,byrow=TRUE)
A <- matrix(c(1/2,1/2,0,1/2,1/2,-1,1/3,1/3,1/3),nrow=3,ncol=3,byrow=TRUE)
muy <- A %*% mux
muy
[,1]
[1,] 26.50000
[2,] 3.50000
[3,] 25.33333
> Sigmay <- A %*% Sigmax %*% t(A)
> Sigmay
[1,]
[2,]
[3,]
[,1] [,2] [,3]
3.6 3.6 2.4
3.6 12.6 -0.6
2.4 -0.6 2.6
1.3
Domanda 3
Di uno studente si sa che la distanza di Mahalanobis dal centro è QM AH = 3.5. Qual è la probabilità che
uno studente estratto a caso abbia una distanza di Mahalanobis maggiore?
Per i vettori aleatori gaussiani il quadrato della distanza di Mahalanobis, (X − µX )T Σ−1
X (X − µX ),
ha una distribuzione chi-quadrato (centrale) con un numero di gradi di libertà uguali alla dimensione p.
Pertanto
2
2
2
P ((X − µX )T Σ−1
X (X − µX ) > (3.5) ) = 1 − P (χ3 ≤ (3.5) ).
Con R:
> 1-pchisq(3.5^2,df=3)
[1] 0.006574037
2
Esercizio 2
Un vettore aleatorio X = (X1 , X2 , X3 , X4 )T , di cui non
matrice di covarianza

1.5 0.75
 0.75 1.5
Σ=
 0
0
0
0
si conosce la distribuzione, ha media µ = 04 e

0 0
0 0 
.
2 1 
1 2
Indichiamo con Z = (Z1 , Z2 , Z3 , Z4 )T il vettore delle componenti principali di X.
2.1
Domanda 1
Vero o falso? Scegli la proposizione appropriata, giustificando accuratamente.
Z1 , Z2 , Z3 , Z4 sono variabili aleatorie indipendenti e identicamente distribuite: FALSO, in generale
le componenti principali non sono nè (stocasticamente) indipendenti nè identicamente distribuite (ad
esempio, le loro deviazioni standard sono DIVERSE).
2
ESERCIZIO 2
3
Z1 , Z2 , Z3 , Z4 sono variabili aleatorie normali standardizzate, a due a due stocasticamente indipendenti: FALSO, nella situazione in esame la distribuzione di X è incognita e questo comporta che lo
sia anche la distribuzione delle componenti principali; FALSO anche che le componenti principali siano
standardizzate e stocasticamente indipendenti.
Z1 , Z2 , Z3 , Z4 essendo una rotazione di X1 , X2 , X3 , X4 hanno esattamente la stessa distribuzione di
X1 , X2 , X3 , X4 : FALSO, in generale (e anche nel caso in esame) la distribuzione delle componenti principali di X è diversa dalla distribuzione di X, basti pensare che le componenti principali sono SEMPRE
incorrelate, qualunque sia la situazione di X.
Z1 , Z2 , Z3 , Z4 sono variabili aleatorie centrate e incorrelate, con distribuzione congiunta incognita:
VERO, il fatto che le componenti principali siano centrate (cioè abbiano valore atteso nullo) dipende dal
fatto che la trasformazione è sempre preceduta dalla centratura di X.
Altro (specificare)
2.2
Domanda 2
Calcola gli autovalori di Σ e mostra che le due fondamentali relazioni con la traccia e il determinante
sono verificate.
Autovalori di Σ: si possono ottenere per mezzo della funzione eigen.
> Sigmax <- matrix(c(1.5,0.75,0,0,0.75,1.5,0,0,0,0,2,1,0,0,1,2),nrow=4,ncol=4,byrow=TRUE)
> eigenval <- eigen(Sigmax)$values
> eigenval
[1] 3.00 2.25 1.00 0.75
Relazione con la traccia: la somma degli autovalori di una matrice quadrata è identicamente uguale
alla traccia della stessa.
> sum(eigenval)
# somma degli autovalori di Sigmax
[1] 7
> sum(diag(Sigmax))
# traccia di Sigmax
[1] 7
Relazione col determinante: il prodotto degli autovalori di una matrice quadrata è identicamente
uguale al determinante della stessa.
> prod(eigenval)
# prodotto degli autovalori di Sigmax
[1] 5.0625
> det(Sigmax)
# determinante di Sigmax
[1] 5.0625
2.3
Domanda 3
Due variabili W1 e W2 sono combinazioni lineari normalizzate di X, cioè W1 = aT X, W2 = bT X, con
aT a = bT b = 1. Si afferma che var(W1 ) = 7/2 e var(W2 ) = 1/2. Vero o falso? Giustifica accuratamente.
Le proposizioni sono entrambe FALSE perchè la varianza di una combinazione lineare NORMALIZZATA di X è compresa nell’intervallo avente come estremi il minimo ed il massimo autovalore della
matrice di covarianza di X. Cioè
var(W1 )
=
aT ΣX a ≤ λmax (ΣX ) = 3
var(W2 )
=
bT ΣX b ≥ λmin (ΣX ) = 0.75
3
ESERCIZIO 3
3
4
Esercizio 3
La tabella sottostante riporta la matrice delle distanze euclidee delle 5 aree territoriali italiane (NO:
nord-ovest, NE: nord-est, C: centro, S: sud, I: isole) rispetto a 6 indicatori demografici: indici di vecchiaia
e di ricambio, tassi di natalità, mortalità e di crescita totale (dati standardizzati riferiti al 2009, fonte:
ISTAT). Supponi di applicare un metodo gerarchico di aggregazione, basato sul legame completo.
NO
NE
C
S
I
3.1
NO NE
C
S
0
1.13
0
1.74 2.73
0
4.08 3.80 4.70
3.12 3.30 3.43 1.68
I
0
Domanda 1
Qual è il gruppo formato alla prima iterazione?
Per definizione, alla prima iterazione vengono aggregate le due aree territoriali con distanza minima,
cioè NO, NE, formando il nuovo gruppo (N O, N E).
3.2
Domanda 2
Qual è il gruppo formato alla seconda iterazione?
In base al criterio del legame completo le distanze di C, S ed I da (N O, N E) sono
d(C, (N O, N E))
=
max{d(C, N O), d(C, N E)} = 2.73 ,
d(S, (N O, N E))
=
max{d(S, N O), d(S, N E)} = 4.08 ,
d(I, (N O, N E))
=
max{d(I, N O), d(I, N E)} = 3.30
e la matrice delle distanze tra i quattro gruppi rimasti è
(N O, N E)
C
S
I
(N O, N E) C
S
0
2.73
0
4.08
4.70
3.30
3.43 1.68
I
0
La distanza minima è 1.68 tra le aree S e I che quindi vengono aggregati nel gruppo (S, I).
3.3
Domanda 3
Qual è il gruppo formato all’ultima iterazione?
Per definizione è il gruppo comprendente tutte le unità campionarie.
L’esercizio può essere risolto con R, mediante la funzione hclust. Vedi Fig. 1.
>
+
+
+
+
>
>
>
+
d <- matrix(c(0,1.13,1.74,4.08,3.12,
1.13,0,2.73,3.80,3.30,
1.74,2.73,0,4.70,3.43,
4.08,3.80,4.70,0,1.68,
3.12,3.30,3.43,1.68,0),nrow=5,ncol=5)
rownames(d) <- c("NO","NE","C","S","I")
dendro <- hclust(as.dist(d),method="complete")
plot(dendro,hang=-1,cex=0.7,xlab="Aree Geografiche", ylab="Distanza",
main="", sub="Legame Completo")
ESERCIZIO 4
5
2
NE
NO
C
I
S
1
Distanza
3
4
4
Aree Geografiche
Legame Completo
Figura 1: Dendrogramma dell’Es. 3.
4
Esercizio 4
Il file chaeto contiene i dati di un campione di n = 74 esemplari di Chaetocnema (una famiglia di
coleotteri) appartenenti a tre varietà: Ch. Concinna (A), nA = 21, Ch. Heikertingeri (B), nB =
31, Ch. Heptapotamica (C), nC = 22. Su ogni esemplare, oltre alla varietà, sono rilevate 6 variabili numeriche che ne descrivono particolari misure corporee. La funzione R per leggere il file è
read.table("http://venus.unive.it/romanaz/chaeto.txt",header=FALSE).
> chaeto <- read.table("http://venus.unive.it/romanaz/chaeto.txt",header=FALSE)
> str(chaeto)
’data.frame’:
74 obs. of 7 variables:
$ V1: Factor w/ 3 levels "A","B","C": 1 1 1 1 1 1 1 1 1 1 ...
$ V2: int 191 185 200 173 171 160 188 186 174 163 ...
$ V3: int 131 134 137 127 118 118 134 129 131 115 ...
$ V4: int 53 50 52 50 49 47 54 51 52 47 ...
$ V5: int 150 147 144 144 153 140 151 143 144 142 ...
4
ESERCIZIO 4
$ V6: int
$ V7: int
>
>
>
>
>
>
>
>
>
>
6
15 13 14 16 13 15 14 14 14 15 ...
104 105 102 97 106 99 98 110 116 95 ...
n <- dim(chaeto)[1]
nA <- length(chaeto[chaeto[,1] == "A",1])
nB <- length(chaeto[chaeto[,1] == "B",1])
nC <- length(chaeto[chaeto[,1] == "C",1])
lab1 <- paste(chaeto[,1],c(1:nA,1:nB,1:nC),sep="")
chaeto1 <- chaeto[,-1]
#elimina la colonna con le etichette di gruppo
rownames(chaeto1) <- lab1
colore <- rep("black",n)
# varietà A: nero
colore[chaeto[,1] == "B"] <- "green" # varietà B: verde
colore[chaeto[,1] == "C"] <- "red"
# varietà C: rosso
4.1
Domanda 1
Qual è l’unità più vicina al centro, in base alla distanza di Mahalanobis? A quale varietà appartiene?
Qual è il valore della distanza?
E’ conveniente usare la funzione mahalanobis che calcola le distanze di Mahalanobis al quadrato.
>
>
>
>
m <- colMeans(chaeto1)
s <- cov(chaeto1)
mah <- mahalanobis(chaeto1,m,s)
summary(sqrt(mah))
Min. 1st Qu.
0.8923 2.0350
Median
2.3880
Mean 3rd Qu.
2.3690 2.7160
Max.
3.8440
> plot(1:n,sqrt(mah),type="h",xlab="N. Ordine Unità",
+ ylab="Dist. di Mahalanobis", main="Chaetocnema")
> text(1:n,sqrt(mah),labels=lab1,pos=3,cex=0.5,col=colore,srt=90)
L’unità più vicina al centro è quella col minimo valore della distanza di Mahalanobis: unità n. 52,
varietà B, valore 0.8923.
4.2
Domanda 2
Approssima i dati campionari standardizzati mediante le prime due componenti principali. Qual è la bontà
dell’approssimazione? Descrivi sinteticamente le evidenze empiriche che scaturiscono dall’osservazione
dello scatter plot.
Misura di bontà dell’approssimazione: le prime due componenti spiegano il 79.9% circa della varianza totale. Come si vede dai coefficienti di determinazione multipla, pur con gradi diversi, tutte le
variabili sono approssimate discretamente. Per le unità il risultato è diverso. Il rapporto fra il quadrato
della distanza di Mahalanobis sul piano delle prime due componenti e quella totale mostra che alcuni
esemplari della varietà A sono approssimati male: ad es. A4, A5, A6, A10, A17, A20. Confronta Fig. 2
e Fig. 3.
> pc <- princomp(chaeto1,cor=TRUE)
> summary(pc)
Importance of components:
Comp.1
Comp.2
Comp.3
Comp.4
Comp.5
Standard deviation
1.7991424 1.2489766 0.7722931 0.56052098 0.40561772
Proportion of Variance 0.5394855 0.2599904 0.0994061 0.05236396 0.02742096
4
ESERCIZIO 4
7
C4
C13
C2
C19
C16
C17
C12
C11
C6
C9
B29
C3
B21
B31
1.0
A16
C22
B27
B23
B15
C5
B26
B22
B16
B20
C8
C21
C10
C7
B30
B28
B17
C18
C14
C15
B18
B11
B12
B14
A15
B9
A8
B8
B7
B13
A9
A1
A3
1.5
B19
B10
B4
B5
B2
B6
B3
A21
A17
A20
A14
A12
B1
A18
A19
A13
A10
A11
A4
A6
A7
A2
2.5
2.0
Dist. di Mahalanobis
3.0
A5
3.5
B24
C1
B25
C20
Chaetocnema
0
20
40
60
N. Ordine Unità
Figura 2: Index plot delle distanze di Mahalanobis dal centro.
Cumulative Proportion
0.5394855 0.7994760 0.8988821 0.95124602 0.97866698
Comp.6
Standard deviation
0.35776828
Proportion of Variance 0.02133302
Cumulative Proportion 1.00000000
> r2 <- rowSums(cor(chaeto1,pc$scores[,1:2])^2)
> round(r2,2) # coeff. di determinazione multipla V2, ...,V7, risp. PC1, PC2
V2
V3
V4
V5
V6
V7
0.93 0.78 0.73 0.75 0.80 0.81
>
>
+
>
mah_pc2 <- mahalanobis(pc$scores[,1:2],colMeans(pc$scores[,1:2]),cov(pc$scores[,1:2]))
plot(1:n,mah_pc2/mah,ylim=c(0,1),type="h",xlab="N. d’Ordine",
ylab="Frazione Dist. Quadr. Mah. Spiegata PC1, PC2")
text(1:n,mah_pc2/mah,labels=lab1,cex=0.6,pos=3,srt=90,col=colore)
Descrizione: il risultato più interessante è la rappresentazione delle tre varietà. Sul piano delle prime
due componenti esse formano tre nuvolette di punti separate: C nel primo quadrante, B nel secondo e
ESERCIZIO 4
8
C9
C22
B8
C18
C13
C3
C21
C16
C11
C20
C19
C8
C7
C5
C1
B27
C14
B29
B24
B25
B26
B28
B30
B17
B18
B19
B22
B20
B31
C15
C17
C12
C2
B21
B23
B13
B12
B15
B16
B14
B9
B10
B11
B6
A20
A17
A10
A12
A13
B2
A18
B1
B3
A11
A15
A16
A7
A8
A9
A2
A4
A5
A6
0
C10
C6
B5
A14
A1
B7
A19
B4
A21
A3
C4
0.8
0.6
0.4
0.2
0.0
Frazione Dist. Quadr. Mah. Spiegata PC1, PC2
1.0
4
20
40
60
N. d'Ordine
Figura 3: Index plot del rapporto tra distanze di Mahalanobis (al quadrato) sul piano PC1, PC2 e
distanza totale.
terzo, A nel quarto, tra B e C. Le unità A mal approssimate sono i punti attorno all’origine. Le tre
distribuzioni hanno posizione diversa ma forma simile. Il grafico suggerisce una correlazione negativa di
PC1 e PC2 all’interno dei gruppi.
> plot(pc$scores[,1:2],pch=20,main="Chaetocnema")
> abline(h=0,v=0,lty="dashed",col="grey")
> text(pc$scores[,1:2],labels=lab1,cex=0.6,col=colore,pos=3)
4.3
Domanda 3
Calcola i coefficienti di correlazione intragruppo e complessivo delle prime due componenti principali e
commenta i risultati.
Correlazione: A, -0.759; B, -0.628; C, -0.865; Complessivo, 0 (quest’ultimo risultato non richiede
calcoli, essendo una conseguenza delle proprietà generali delle componenti principali).
> cor_intra <- by(pc$scores[,1:2],chaeto[,1],cor)
> cor_intra
4
ESERCIZIO 4
9
Chaetocnema
C4
●
3
C18
●
C10
C6
●
●
2
C9
●
C21
C8
●
●
B5
1
●
B25
●
B24
●
0
Comp.2
C13
●
●
●
●
B15
B13
B16
●●
●B28
●
●
●
−1
●
●
●
●
A5
B29
●
C16
●
●
C20
B31
A20
●
●
A17
●
●
C1
●
A16
A4
● ●
B19
C15
●
●
B6
●
B26
A2 A9
A8
A15
A12
●
●
● A13
●
A18
●
●
●
●
A11
A3A1● A7
● A14
●
B8
A21
●
●
−2
●●
C3
●
B11
B9
●
●
B2
●
B21
B7
B12 ●
●
C14
A10A6
●
●
B10
B3
●B27
●
B17
● B14
C12
● C22
C5
C19
●
C7 ● C17
C11
C2
B18
B20
B1 B23●
●
B30
●
B22●
●
A19
●
●
B4
−3
●
−4
−2
0
2
Comp.1
Figura 4: Scatter plot sul piano PC1, PC2.
INDICES: A
Comp.1
Comp.2
Comp.1 1.0000000 -0.7594762
Comp.2 -0.7594762 1.0000000
-----------------------------------------------------------INDICES: B
Comp.1
Comp.2
Comp.1 1.0000000 -0.6279169
Comp.2 -0.6279169 1.0000000
-----------------------------------------------------------INDICES: C
Comp.1
Comp.2
Comp.1 1.0000000 -0.8646895
Comp.2 -0.8646895 1.0000000
Commento: E’ confermato il risultato suggerito dallo scatter plot.
4
5
ESERCIZIO 5
5
10
Esercizio 5
Considera di nuovo i dati standardizzati dell’esercizio precedente. Vogliamo verificare se il metodo K
medie riconosce le tre varietà.
5.1
Domanda 1
Descrivi la struttura di gruppo stimata mediante la funzione kmeans di R (tre classi): numerosità,
centroidi, misura di eterogeneità interna.
> gruppi <- kmeans(scale(chaeto1),centers=3,nstart=500)
> gruppi$size
#numerosità
[1] 22 21 31
> round(gruppi$centers,3)
#centroidi
V2
V3
V4
V5
V6
V7
1 -1.327 0.133 0.450 0.334 -1.352 0.784
2 0.393 0.825 0.564 1.017 0.495 0.596
3 0.676 -0.653 -0.702 -0.926 0.624 -0.960
> round(gruppi$withinss/gruppi$size,3) #within-groups ss corrette per numerosità
[1] 2.591 2.067 2.240
Numerosità:
> gruppi <- kmeans(scale(chaeto1),centers=3,nstart=500)
> gruppi$size
#numerosità
[1] 31 22 21
Centroidi:
> round(gruppi$centers,3)
#centroidi
V2
V3
V4
V5
V6
V7
1 0.676 -0.653 -0.702 -0.926 0.624 -0.960
2 -1.327 0.133 0.450 0.334 -1.352 0.784
3 0.393 0.825 0.564 1.017 0.495 0.596
Misura di eterogeneità interna:
> round(gruppi$withinss/gruppi$size,3) #within-groups ss corrette per numerosità
[1] 2.240 2.591 2.067
5.2
Domanda 2
Qual è la misura di qualità complessiva della partizione stimata?
Come misura di qualità complessiva si può usare la frazione della varianza between-groups sulla
varianza totale.
> round(gruppi$betweenss/gruppi$totss,3)
#% between-groups ss
[1] 0.612
Il risultato, 61.2%, indica un buon grado di separazione dei gruppi: più del 60% della varianza totale
è dovuto alle differenze tra le medie dei gruppi.
5
ESERCIZIO 5
5.3
11
Domanda 3
Confronta la partizione stimata con la partizione reale. Quanti sono gli errori? In quali gruppi?
Il confronto si può effettuare per mezzo della funzione table.
> table(gruppi$cluster,chaeto[,1])
A B C
1 2 29 0
2 0 0 22
3 19 2 0
Numero di errori: nel complesso kmeans stima correttamente la partizione; ci sono 4 errori: 2 unità
A classificate B e altrettante unità A classificate come B. L’errore % è 4/74 ∼ 5.4%. Il grafico sottostante
illustra i risultati per mezzo degli scatter plots delle prime 3 componenti principali.
> pairs(pc$scores[,1:3],pch=as.character(gruppi$cluster),col=colore)
3
Comp.1
3
1
2
3
1
1
1
3
11 111 1
3
333 3
1 111 1 1
3 3
33 3333
1 11
3
1
3
33
1
3
22
2
2
2
2
2
222
222 22 222 22222
2 2 2
3
113111 11 1
3 3 1 311
1
33
3 31 13
3
3
3
3
3
1 1
1
3
3 31
3
22
2
2 23
22
2
22 222 22
2 22 222 222
22 2
2222
2 2 2 22
2 2222
11
22
2
3
222 2
1
2
33
33 333
2222 2
2 3 3
33333 3
2
3
3
Comp.2
1
32
2
−4
−2
0
2
1
3
3
3 32
3
3
3
4
1
2 21 2 1
21 1 2 1
2
2
222 2
2 2 1111 1
2
1 1
23 22 2 1212
1 11
222 1
2
1
3
1
333
2
3
3 2 2
3
3
322
1
2 3
1 1
2 2
11
2
1
3
1
2
222 2
31 1
2 2 22
1 131
22 22222
1
3 11 113
13 31
2222
1
3
1
3
3 333 3
22
2
3
3
3 3
3
22
1
1
22 1 11 21
112
12
2
2
1 2
22
1
3
222 2 1
2 2
1
3
22 2 1 2
3
22 2 2
3
3
3
3
2
2
3
2
2
33
3
23
32 3
33
3
3
3
2
1
1
111
1
Comp.3
0
2
1
−3
−2
−1
0
2
1
1
11 1
1
1 1
1111
1 11
1
3 11
3
2
−4
2
2
−1
3
1
1
3
22
2
1
4
0
1
2
−1
0
−2
−2
−3
−1
0
1
2
Figura 5: Matrice scatter plot PC1, PC2, PC3; 1, 2, 3: partizione stimata da kmeans; nero (A),verde
(B), rosso (C): partizione reale.