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.