ESERCITAZIONI R 1. Gestione dati 1 – Caricamento dati > Dati str(Dati) 'data.frame': 42 obs.
-
Upload
eugenio-sartori -
Category
Documents
-
view
217 -
download
1
Transcript of ESERCITAZIONI R 1. Gestione dati 1 – Caricamento dati > Dati str(Dati) 'data.frame': 42 obs.
ESERCITAZIONI R
1
Gestione dati 1 – Caricamento dati
> Dati<-read.table("Dataset_220311.csv", header=TRUE, sep=";")
> str(Dati)'data.frame': 42 obs. of 6 variables:$ SESSO: int 2 1 2 2 2 2 1 1 1 2 ... $ ETA : int 26 29 30 28 37 51 24 35 43 17 ...$ REG : int 1 1 1 1 2 2 2 3 3 3 ...$ TIT : int 3 3 4 3 3 3 4 3 2 2 ...$ GV : int 10 14 14 7 14 21 14 16 20 15 ...$ RED : int 900 1200 1200 1000 1400 2000 800 2300 1700 0
...
2
Gestione dati 2 – Conversione variabili quantitative in fattori
> Dati$SESSO<-factor(Dati$SESSO, labels=c("M","F"))
> str(Dati)'data.frame': 42 obs. of 6 variables: $ SESSO: Factor w/ 2 levels "M","F": 2 1 2 2 2 2 1 1 1 2 ... $ ETA : int 26 29 30 28 37 51 24 35 43 17 ... $ REG : int 1 1 1 1 2 2 2 3 3 3 ... $ TIT : int 3 3 4 3 3 3 4 3 2 2 ... $ GV : int 10 14 14 7 14 21 14 16 20 15 ... $ RED : int 900 1200 1200 1000 1400 2000 800 2300 1700
0 ...
3
Gestione dati 3 – Conversione variabili quantitative in fattori
> library(Rcmdr)……….> str(Dati)'data.frame': 42 obs. of 6 variables: $ SESSO: Factor w/ 2 levels "M","F": 2 1 2 2 2 2 1 1 1 2 ... $ ETA : int 26 29 30 28 37 51 24 35 43 17 ... $ REG : Factor w/ 5 levels "Lazio","Campania",..: 1 1 1 1 2 2 2
3 3 3 ... $ TIT : Factor w/ 4 levels "L. elementare",..: 3 3 4 3 3 3 4 3 2
2 ... $ GV : int 10 14 14 7 14 21 14 16 20 15 ... $ RED : int 900 1200 1200 1000 1400 2000 800 2300 1700
0 ...
4
Gestione dati 4 – Rinominare una variabile e salvare il file di dati attivo
> names(Dati)[1] "SESSO" "ETA" "REG" "TIT" "GV" "RED"
> names(Dati)[c(5)]<-c("GI_VAC")
> str(Dati)'data.frame': 42 obs. of 6 variables: $ SESSO : Factor w/ 2 levels "M","F": 2 1 2 2 2 2 1 1 1 2 ... $ ETA : int 26 29 30 28 37 51 24 35 43 17 ... $ REG : Factor w/ 5 levels "Lazio","Campania",..: 1 1 1 1 2 2 2 3
3 3 ... $ TIT : Factor w/ 4 levels "Lic. elementare",..: 3 3 4 3 3 3 4 3 2
2 ... $ GI_VAC: int 10 14 14 7 14 21 14 16 20 15 ... $ RED : int 900 1200 1200 1000 1400 2000 800 2300 1700 0 ...
> save("Dati", file="C:/Users/Mario/Documents/Dati.rda")
(> load("C:/Users/Mario/Documents/Dati.rda"))5
Analisi monovariata 1 – Distribuzioni di frequenza
attach(Dati)
> table(REG)
REG Lazio Campania Toscana Sicilia Lombardia 11 8 8 7 8
> table(REG)/length(REG)
REG Lazio Campania Toscana Sicilia Lombardia 0.2619048 0.1904762 0.1904762 0.1666667 0.1904762
6
Analisi monovariata 2 – Distribuzioni di frequenza e rappresentazioni grafiche
> (table(REG)/length(REG))*100REG Lazio Campania Toscana Sicilia Lombardia 26.19048 19.04762 19.04762 16.66667 19.04762
> pie(table(REG))
7
Analisi monovariata 3 – Rappresentazioni grafiche
> colori=c("red","blue","yellow","green","orange")
> pie(table(REG), col=colori, main="Diagramma a torta delle regioni di provenienza")
8
Analisi monovariata 4 – Rappresentazioni grafiche
> slices<-c(26,19,19,17,19)
> lbs<-c("Lazio","Campania","Toscana","Sicilia","Lombardia")
> lbs<-paste(lbs,slices)
> lbs<-paste(lbs,"%",sep="")
> pie(slices, labels=lbs, col=colori,main="Diagramma a torta delle regioni di provenienza")
9
Analisi monovariata 5 – Rappresentazioni grafiche
10
Analisi monovariata 6 – Rappresentazioni grafiche
> library(plotrix)
> pie3D(slices,labels=lbs, col=colori, main="Diagramma a torta delle regioni di provenienza")
11
Analisi monovariata 7 – Rappresentazioni grafiche
> plot(REG)
12
> plot(REG, col="dark blue", ylim=c(0,12), main="Grafico a barre delle regioni di provenienza")
Analisi monovariata 8 – Variabili quantitative
> summary(GI_VAC) Min. 1st Qu. Median Mean 3rd Qu. Max. 3.00 12.00 14.00 15.21 19.75 30.00
> mean(GI_VAC)[1] 15.21429
> median(GI_VAC)[1] 14
> min(GI_VAC)[1] 3
13
Analisi monovariata 9 – Variabili quantitative
> max(GI_VAC)[1] 30
> range(GI_VAC)[1] 3 30
> quantile(GI_VAC) 0% 25% 50% 75% 100% 3.00 12.00 14.00 19.75 30.00
14
Analisi monovariata 10 – Variabili quantitative
> var(GI_VAC)[1] 32.70906
> sd(GI_VAC)[1] 5.719183
> cv(GI_VAC) #richiede il pacchetto labstatR[1] 0.3714067
15
Analisi monovariata 11 – Variabili quantitative Boxplot
> boxplot(GI_VAC, main="Boxplot distribuzione giorni vacanza")
16
Analisi monovariata 12 – Variabili quantitative: aggregazione delle modalità in classi
> table(ETA)ETA10 17 18 19 21 23 24 25 26 27 28 29 30 31 32 34 35 37 39 41
43 44 45 49 51 52 55 59 65 66 74 1 1 1 1 1 2 1 1 1 2 3 1 1 1 1 1 1 3 1 1 2 2 1 1 1
2 1 2 2 1 1
> table(cut(ETA,breaks=c(0,20,40,60,80))) (0,20] (20,40] (40,60] (60,80] 4 21 13 4
> table(cut(ETA,breaks=c(0,20,40,60,80),right=FALSE)) [0,20) [20,40) [40,60) [60,80) 4 21 13 4
17
Analisi monovariata 13 – Variabili quantitative rappresentazioni grafiche
> hist(ETA)
> hist(ETA,xlab="Età",col="orange", main="Istogramma delle età")
18
Analisi monovariata 14 – Rappresentazioni grafiche
> hist(ETA,c(10,20,30,50,80),xlab="Età",col="orange", main="Istogramma delle età")
19
Analisi monovariata 15 – Variabili quantitative: rappresentazioni grafiche
Nella precedente espressione, di default le classi sono aperte a sinistra: (a,b] ad eccezione della prima
Aggiungendo il parametro right impostato a FALSE le classi sono invece aperte a destra: [a,b)
Il comando diventerebbe:
> hist(ETA,c(10,20,30,50,80),right=FALSE, xlab="Età",col="orange", main="Istogramma delle età")
20
Analisi monovariata 16 – Variabili quantitative: concentrazione di caratteri trasferibili
> table(RED)RED 0 600 800 900 1000 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2300
2600 3000 5 1 1 2 5 5 2 3 1 5 3 1 1 3 1 1 1 1
> gini(RED) #richiede il pacchetto labstatR
…
$R
[1] 0.2827435
……
21
Analisi monovariata 17 – Variabili quantitative: concentrazione di caratteri trasferibili
22
Analisi bivariata 1 – Tabelle di contingenza
>tab1<-table(SESSO, REG)
> tab1 REGSESSO Lazio Campania Toscana Sicilia Lombardia M 4 4 6 3 4 F 7 4 2 4 4
23
Analisi bivariata 2 – Tabelle di contingenza
> margin.table(tab1, margin=1)SESSO M F 21 21
> margin.table(tab1, margin=2)REG Lazio Campania Toscana Sicilia Lombardia 11 8 8 7 8
> margin.table(tab1)[1] 42
24
Analisi bivariata 3 – Tabelle di contingenza – rappresentazione grafica
> barplot(tab1,ylab="Sesso", beside=T, col=c("dark red", "orange"),main="Distribuzione per sesso e per regione di provenienza")
> legend("topright",c("M","F"),fill=c("dark red", "orange"))
25
Analisi bivariata 4 – Tabelle di contingenza rappresentazione grafica
> barplot(tab1,ylab="Sesso", col=c("dark red", "orange"),main="Distribuzione per sesso e per regione di provenienza")
> legend("topright",c("M","F"),fill=c("dark red", "orange"))
26
Analisi bivariata 5 – Misure di asociazione tra due variabili nominali
Se il campione è non probabilistico si può utilizzare l’ndice chi quadrato (e le sue misure derivate) per verificare se esiste dipendenza tra due caratteri tipicamente qualitativi nominali, ma anche ordinali o quantitativi divisi in classi
> chi2(REG,TIT)[1] 0.1121711
> phi2<-chi2(REG,TIT)/42> phi2[1] 0.002670741
> V<-sqrt(phi2/3)> V[1] 0.02983701
27
Analisi bivariata 6 – Misure di asociazione tra due variabili nominali
Se invece il campione è probabilistico e si può fare inferenza, è utile calcolare il test del chi quadrato
> chisq.test(tab3)
Pearson's Chi-squared test
data: tab3 X-squared = 14.1336, df = 12, p-value = 0.2923
28
Analisi bivariata 7 – Misure di asociazione tra due variabili quantitative
La correlazione misura quale direzione e quanto intenso è il legame lineare esistente tra due variabili quantitative. Si utilizza di solito il coefficiente di correlazione lineare di Pearson
ρ=σxy/σxσy
> cor(ETA,RED)[1] 0.6339968
29
Analisi bivariata 8 –Variabili quantitative rappresentazione grafica
> plot(ETA,RED,xlab="Età",ylab="Reddito mensile", main="Grafico a dispersione del reddito e dell'età")
30
31
Regressione Lineare
32
33
34
In R si avrà:
Il coefficiente dell’intercetta (239,512) costituisce il valore α dell’equazione della retta (ovvero l’intersezione tra la retta e l’asse delle ordinate, il coefficiente di RED (28,417) costituisce il valore β, ovvero il coefficiente angolare della retta. Dunque:
RED=239,512 + 28,417*ETA
35
I valori stimati di reddito in funzione dell’età mediante la retta di regressione si ottengono come segue:
Il significato del coefficiente di regressione è il seguente: per ogni incremento unitario della variabile indipendente, la variabile dipendente cresce di 28,417 unità.
36
La retta può essere rappresentata all’interno del diagramma a dispersione delle due variabili nel modo seguente:
10 20 30 40 50 60 70
05
00
10
00
15
00
20
00
25
00
30
00
Grafico a dispersione del reddito e dell'età
Età
Re
dd
ito m
en
sile
37
Una retta di regressione multipla si ottiene semplicemente inserendo più di una variabile indipendente:
38
In questo caso il significato dei coefficienti di regressione, ad esempio di quello dell’età è il seguente: per ogni incremento unitario dell’età, mantendo costanti le altre variabili indipendenti (ovvero in questo caso la sola variabile GI_VAC) , la variabile dipendente cresce di 30,936 unità.
Regressione Logistica
39
Il modello di regressione logistica viene utilizzato quando si è interessati a studiare o analizzare la relazione causale tra una variabile dipendente dicotomica e una o più variabili indipendenti. Nella regressione logistica la variabile dipendente, essendo dicotomica, definisce l’appartenenza a un gruppo (o all’altro).
Consideriamo ad esempio il seguente dataset:
La variabile dipendente sarà viaggio, che assume la modalità viaggio_si se il rispondente al questionario ha fatto almeno un viaggio con la propria famiglia negli ultimi 4 mesi e viaggi_no altrimenti. La variabile bipartisce quindi il campione in due gruppi, e ciò che interessa non è il valore atteso (o predetto), come nella regressione lineare, ma la probabilità che un dato soggetto appartenga a meno a uno dei due gruppi. 40
Occorre introdurre alcune grandezze- Dovrebbe essere abbastanza noto il concetto di probabilità. La probabilità di un evento è pari al rapporto tra il numero di eventi favorevoli e il numero di eventi complessivi. Essendo:
Risulta che, preso a caso un individuo nel campione, la probabilità che abbia fatto almeno un viaggio con la famiglia negli ultimi 4 mesi è pari a 0,32.Meno noto è l’odds, un modo di esprimere la probabilità mediante un rapporto. Si calcola facendo il rapporto tra le frequenze osservate in un livello con le frequenze osservate nell’altro, ovvero, numero di eventi favorevoli diviso numero di eventi contrari. Il valore dell’odds esprime il rapporto tra due categorie.Nel caso specifico:
Mediante l’odds vediamo che la relazione tra chi ha fatto almeno un viaggio e chi non lo ha fatto è pari a 0,48. 41
La “lettura dell’odds si fa con riferimento al denominatore: in altre parole, per ogni individuo che non ha fatto il viaggio ci sono 0,48 individui che lo hanno fatto.Ovviamente un valore dell’odds pari a 1 indica uguale frequenza tra eventi favorevoli e contrari, un valore maggiore di 1 indica che ci sono più eventi favorevoli e un valore minore di 1, come nell’esempio, indica che cii sono più eventi sfavorevoli.
Per esprimere la relazione tra due categorie in funzione di un’altra variabile (valutare cioè l’associazione tra due variabili) è possibile utilizzare un altro indice chiamato odds ratio o rapporto tra gli odds. Tale indice si ottiene facendo un rapporto tra gli odds di una data variabile (ad esempio, la variabile Y) ottenuti per ciascun livello della seconda variabile (ad esempio, la variabile X).
Supponiamo ad esempio di voler esprimere l’odds della variabile viaggio alla luce di un’altra variabile del dataset, ad esempio la variabile pos che suddivide ulteriormente il campione tra le professioni insegnanti ed ingegneri.
La domanda che possiamo porci è la seguente: il rapporto (odds) tra coloro che hanno fatto almeno un viggio con la famiglia negli ultimi 4 mesi e coloro che non lo hanno fatto è uguale nei differenti lavori?
42
Per descrivere la diversa distribuzione delle categorie della variabile sesso nelle categorie della variabile lavoro mediante una statistica unica possiamo utilizzare l’odds ratio, che come detto precedentemente corrisponde al rapporto tra i rapporti tra le categorie. Essendo:
Risulta:
OR=(6019/12840)/(4783/7359)=0,72
Per l’interpretazione degli odds ratio si procede nel seguente modo: valori diversi da 1 indicano un’associazione tra le variabili. In questo caso, poiché il valore è diverso da 1, si può dire che esiste un’associazione tra le variabili viaggio e pos. In particolare, si osserva che la proporzione di coloro che hanno viaggiato tra gli insegnanti è 0,72 volte la stessa proporzione tra gli ingegneri. In altre parole, per ogni ingegnere che ha viaggiato con la famiglia (piuttosto che non farlo) ci sono 0,72 insegnanti che hanno viaggiato con la famiglia (piuttosto che non farlo); gli ingegneri viaggiano relativamente di più.
43
Tornando alla regressione logistica, per esprimere la relazione tra la variabile indipendente e la variabile dipendente in termini lineari possiamo partire dalla seguente formulazione in cui il valore atteso della variabile dipendente è la probabilità, per cui la probabilità di Y = 1 come funzione lineare di X diventa:
P(Y =1) =α + βX Questo modello non è adeguato, dal momento che i valori della probabilità sono compresi tra 0 e 1, mentre il termine α + βX può assumere valori che vanno da – ∞ a + ∞. Allora, per provare a risolvere il problema possiamo applicare la trasformazione esponenziale al termine di destra della funzione che diventa: P(Y = 1) = eα +βX Anche questa trasformazione, seppure consente di restringere i valori dell’equazione entro il range 0 + ∞, non risolve completamente il problema.
Ovviamente se scegliamo come riferimento gli insegnanti si avrà:
OR=(4783/7359)/(6019/12840)= 1,3865
Per cui per ogni insegnante che ha viaggiato con la famiglia (piuttosto che non farlo) ci sono 1,39 ingegneri che hanno viaggiato con la famiglia (piuttosto che non farlo).
44
A partire dalla precedente equazione con opportuni passaggi matematici si perviene alla formula:
E l’equazione della retta diviene:
45
Per ottenere una regressione logistica con R si digita il comando:
Avendo cura, dentro la parentesi, di inserire prima la variabile dipendente e poi, dopo la tilde, la variabile indipendente. Base è il dataset cje contiene le variabili, mentre family=binomial è un input fisso per ottenere la regressione logistica.Si ottiene:
46
Come si vede, l’output è praticamente identico a quello della regressione lineare.I punti più importanti è il coefficiente di regressione (tra l’altro significativo, in questo esempio, come si vede dalle stellette a destra) calcolato, come si vede, prendendo come riferimento gli insegnanti. Se si applica a tale coefficiente l’operatore matematico esponenziale (l’opposto del logaritmo) si ottiene:
Pari all’odds ratio che abbiamo trovato “a mano” in precedenza, e, ovviamente con la stessa interpretazione.
Naturalmente, in una regressione logistica possono essere inserite più variabili indipendenti. Se queste variabili sono dicotomiche, sono già “pronte” per essere inserite nella regressione. Se invece esse presentano più di due modalità, la via più semplice è quella di creare delle variabili cosiddette dummy, composte di soli 0 e 1, per ciascuna modalità tranne che per una scelta come riferimento.Nel nostro dataset di esempio, esisteva una variabile “provenienza geografica” a 3 modalità: nord, centro e sud. A partire da essa sono state costruite due variabili dummy nord e sud. Le variabili dummy nord sono state costruita a partire da quella “provenienza geografica (pg)” nel modo seguente:
47
nord=1 se pg=nord, nord=0 altrimenti
sud=1 se pg=sud, sud=0 altrimenti
La modalità esclusa, centro, diventa automaticamente il riferimento, nel senso che andremo a valutare l’effetto di nord e sud sulla variabile dipendente viaggi confrontandole con il centro. Si avrà:
48
Per cui:
•Per ogni insegnante che ha viaggiato con la famiglia negli ultimi 4 mesi ci sono 1,41 ingegneri che lo hanno fatto;
•Per ogni individuo proveniente dal centro che ha viaggiato con la famiglia negli ultimi 4 mesi ci sono 1,03 individui provenienti dal nord che lo hanno fatto;
•Per ogni individuo proveniente dal centro che ha viaggiato con la famiglia negli ultimi 4 mesi ci sono 0,66 individui provenienti dal sud che lo hanno fatto;
In termini di modalità dunque, essere ingegnere piuttosto che insegnante ha un effetto favorevole sulla variabile dipendente, provenire dal nord piuttosto che dal centro ha un leggerissimo effetto favorevole, mentre provenire dal sud piuttosto che dal centro ha un effetto sfavorevole. 49
Analisi delle Componenti Principali
50
Esempio: Analisi di 15 tipi di gelato
51
Quando le p variabili tutte quantitative sono numerose e molto difficile riuscire a cogliere le strutture esistenti nei dati. Si pone quindi il PROBLEMA: è possibile sostituire le p variabili originarie con un numero minore di variabili “artificiali” (k<<p), dette COMPONENTI PRINCIPALI, che garantiscono la SINTESI con la MINOR PERDITA DI INFORMAZIONE POSSIBILE? Ossia, in termini geometrici, è possibile rappresentare le osservazioni, anziché nello spazio originario a p dimensioni, in uno spazio di dimensioni ridotte (1, 2, 3,……), con una perdita limitata d’informazione?
L’ ANALISI IN COMPONENTI PRINCIPALI è un metodo statistico multivariato che permette la riduzione delle dimensioni con la minore perdita di informazione.
Obiettivo: sintetizzare l’insieme di informazioni costituito dalla matrice dei dati in uno spazio di dimensioni ridotte
Applicazione dell’ANALISI DELLE COMPONENTI PRINCIPALI
52
Nel caso dei gelati il numero delle variabili non è particolarmente elevato, ma l’applicazione dell’ACP è comunque utile ….
Una volta caricato il pacchetto FactoMineR, che useremo per l’acp, si lancia il comando:
La sintassi è la seguente:Si crea un nuovo oggetto in R il cui nome – come si vede – è assolutamente ininfluente e a discrezione, e si fornisce come input alla funzione PCA il dataset oggetto di studio. Essendo le variabili tutte quantitative, le utilizziamo tutte e quindi non c’è bisogno di specificare nulla.
Si ottengono i due grafici seguenti:
53
-1.0 -0.5 0.0 0.5 1.0
-1.0
-0.5
0.0
0.5
1.0
Variables factor map (PCA)
Dim 1 (76.93%)
Dim
2 (
16
.83
%)
kcalproteine
carboidrati
grassi
fibre
peso
Come noto, le componenti principali sono in numero esattamente pari a quello delle variabili originarie, quindi nel caso specifico sono pari a 6. Si tratta di:a)Scegliere il numero di componenti che intendiamo utilizzare;b)Interpretare tali componenti, ovvero dargli un significato. 54
Il grafico precedente, detto cerchio delle correlazioni, ci aiuta per entrambe le operazioni. Esso rappresenta il piano formato dalle prime due componenti principali, e le percentuali accanto agli assi indicano la percentuale di informazione associata a ciascuno di essi. Il primo asse (ovvero la prima componente principale) che è quello orizzontale “spiega” il 77% circa dell’informazione contenuta nella matrice dei dati, il secondo, quello verticale, ne spiega il 17% circa.Dunque le prime due CP riassumono in maniera molto soddisfacente le informazioni delle 6 variabili di partenza (il 94% circa: la perdita è uguale solo al 6,246% della varianza totale) e possono essere assolutamente sufficienti a rappresentare i dati originari, con l’ulteriore vantaggio che due sole variabili individuano un unico piano e quindi permettono una comoda rappresentazine grafica bidimensionale.
Per vedere comunque le percentuali di informazione associate a ciascuna componente principale basta digitare il comando:
55
Dunque possiamo pertanto considerare solo le prime due CP. Ma quale significato va attribuito a ciascuna di queste due variabili sintetiche?La risposta è data dalla relazione tra le due CP e le variabili originarie, mostrata ancora nel cerchio delle correlazioni.
Nel grafico ciascuna variabile è rappresentata da una freccia.Una variabile è tanto più correlata con un asse quanto più è grande la sua proiezione sull’asse stesso, e questo dipende dalla lunghezza della freccia ( più è lunga più è grande la proiezione) e dall’angolo formato dalla freccia con l’asse (più l’angolo è piccolo, maggiore sarà la proiezione).
Nell’ingrandimento, la linea verde scuro rappresenta la proiezione della variabile carboidrati sul primo asse, quella celeste la proiezione sul secondo asse. Tale variabile risulta evidentemente maggiormente associata con il primo asse.Questa analisi va ripetuta variabile per variabile.
56
In base a quanto detto, la prima CP presenta una relazione diretta molto forte con le variabili nutrizionali e più debole con il peso, mentre la seconda CP mostra una relazione diretta abbastanza elevata solo con il peso. Dunque:
-la prima CP può interpretarsi come un INDICATORE SINTETICO DELLE CARATTERISTICHE NUTRIZIONALI;
-la SECONDA CP è connessa al PESO DELLA SINGOLA PORZIONE DI GELATO.
Questo è dunque il significato delle prime due componenti principali. Praticamente tutta l’informazione contenuta nella matrice iniziale dei dati, contenuta in 6 variabili, è riassumibile utilizzandone solamente due.
Il secondo grafico mostra la disposizione delle singole unità statistiche nel piano formato dalle prime due componenti principali.
57
-4 -2 0 2 4 6
-2-1
01
23
Individuals factor map (PCA)
Dim 1 (76.93%)
Dim
2 (
16
.83
%)
CORNETTO MAGNUM
CUCCIOLONESOLERO
CARTE D_OR
VIENNETTA
LIUK
CROCCANTE
CREMINO
PASSION
COPPAMUSIC
MAGNIFICO
FIORDIFRAGOLA
LEMONISSIMO
CALIPPO
Sulla base del significato attribuito alle CP, nella parte del grafico verso destra si collocano i gelati con i valori più elevati delle variabili nutrizionali e verso l’alto quelli di peso maggiore.
In prossimità dell’origine degli assi si posizionano i gelati con valori prossimi alla media per entrambi gli aspetti riassunti dalle prime 2 CP.
58
Vediamo una seconda applicazione su un dataset più complesso.
59
Le prime 12 variabili contengono le temperature medie per i dodici mesi dell’anno per 23 capitali europee. Le variabili Annual e Amplitude rappresentano rispettivamente le temperature medie annuali e la maggiore escursione termica (differenza tra la maggior temperatura media mensile e quella minore). Infine ci sono le due variabili posizionali longitudine e latitudine.Tutte le prime 16 variabili sono quantitative; l’ultima è una variabile qualitativa che indica la posizione geografica della città in Europa.
Obiettivo dell’indagine è quello di studiare le temperature delle capitali europee. Come visto, la matrice dei dati è composta da 17 variabili.
Trattandosi di variabili quantitative operiamo una pca allo scopo di vedere se è possibile ridurre il numero delle variabili mantenendo un alto contenuto informativo.
In questo caso distingueremo tra variabili attive e variabili illustrative; solo le prime concorrono a “costruire” le variabili artificiali che chiamiamo componenti principali, mentre delle seconde studiamo l’associazione con le componenti principali.
In questo caso considereremo attive le prime 12 variabili, ovvero le temperature medie mensili, mentre le altre saranno illustrative: 4 quantitative e l’ultima, la posizione geografica, qualitativa.
60
La sintassi del comando è la seguente:
In cui indichiamo alla funzione che ci sono variabili illustrative e le distinguiamo in quantitative (quanti.sup) e qualitative (quali.sup). Le variabili illustrative vengono indicate sempre seguendo l’ordine in cui esse compaiono nell’outptu del comando str(temperature). Siccome in questo dataset esse sono consecutive, possiamo indicarle con l’espressione 13.16, ad indicare che dalla 13° alla 16° sono appunto illustrative quantitative. Altrimenti avremmo potuto usare la sintassi :
Del tutto equivalente.
Si ottiene il cerchio delle correlazioni:
61
-1.0 -0.5 0.0 0.5 1.0
-1.0
-0.5
0.0
0.5
1.0
Variables factor map (PCA)
Dim 1 (82.9%)
Dim
2 (
15
.4%
)
JanuaryFebruary
March
April
MayJuneJuly
August
September
October
November
December
Annual
Amplitude
Latitude
Longitude
In cui sono anche rappresentate le variabili illustrative quantitative (in blu).L’interpretazione delle prime due componenti principali (sufficienti ai nostri scopi in quanto restituenti oltre il 98% dell’informazione complessiva) avviene comunque sulla base delle variabili attive. 62
La prima CP presenta una relazione diretta molto forte con tutte le variabili riportanti le temperature medie mensili. Essa può quindi essere interpretata come una misura media complessiva, ovvero come una temperatura media annuale. Questa interpretazione è supportata dall’osservazione che la variabile illustrativa annual, avente lo stesso significato, è praticamente coincidente con il primo asse. Osservndo le direzioni delle frecce, si può pertanto concludere che il primo asse distingue le capitali con una bassa temperatura media annua (a sinistra) da quelle che hanno un’alta temperatura media annua (a destra).
La seconda CP sembra distinguere i mesi di maggio, giugno, luglio e agosto in alto, dai mesi di dicembre, gennaio e febbraio in basso. Tenendo conto che si tratta rispettivamente dei mesi più caldi e più freddi si può concludere che il secondo asse distingue la bella stagione (in alto) da quella brutta (in basso). Questa opposizione riflette il fatto che, per una data temperatura media annua (ovvero, fissato un punto dell’asse orizzontale), alcune città sono piuttosto calde in estate rispetto a tale temperatura, altre sono relativamente fredde.
63
-5 0 5
-3-2
-10
12
3Individuals factor map (PCA)
Dim 1 (82.9%)
Dim
2 (
15
.4%
)
Amsterdam
Athens
Berlin
Brussels
Budapest
Copenhagen
Dublin
Elsinki
Kiev
Krakow
Lisbon London
Madrid
Minsk
Moscow
Oslo
Paris
Prague
Reykjavik
Rome Sarajevo
Sofia
Stockholm
East
North
South
West
Il secondo grafico, che riporta la collocazione delle città nel piano formato dalle prime due componenti principali, aiuta a capire meglio soprattutto l’interpretazione dell’asse verticale.Città come Kiev, Mosca o Budapest hanno temperature piuttosto alte durante l’estate, e temperature piuttosto basse durante il resto dell’anno. 64
D’altra parte, città come Dublino e Reykjavic hanno temperature piuttosto basse durante l’estate e meno rigide durante l’inverno. Si distinguono in questo modo città costiere (come queste ultime) , con una bassa escursione termica, da città continentali (come le altre dette in precedenza) con una escursione termica più forte. Quest’ultimo fatto è anche desumibile dal rapporto che esiste tra la seconda componente principale e la variabile illustrativa amplitude.
Infine, sul grafico è riportata la distribuzione delle modalità della variabile qualitativa area, in cui ovviamente trovano la corretta collocazione le varie città.
65
Analisi delle Corrispondenze Multiple
66
L’analisi delle corrispondenze multiple è una tecnica che produce risultati piuttosto simili a quelli dell’analisi in componenti principali ma lavora su variabili qualitative.
In realtà l’algoritmo matematico su cui si basa è profondamente diverso da quello dell’acp, per cui bisogna avere molta cautela nel portare avanti questa analogia.
L’ output dell’mca è, in genere, prettamente grafico: obiettivo di questa analisi è la rappresentazione grafica delle associazioni esistenti tra le variabili qualitative oggetto di studio e le loro modalità, allo scopo di cogliere andamenti sottostanti e collegamenti che non è possibile cogliere nella matrice dei dati originale.
Questo è uno dei motivi, tra l’altro, per cui spesso la percentuale complessiva di informazione associata agli assi individuati è sensibilmente più bassa di quella che in genere si ottiene in una acp. La perdita di informazione è “compensata” dalla rappresentabilità grafica.
67
Caricato il pacchetto FactoMineR:
Il comando da digitare è il seguente:68
Vediamo i singoli elementi di questo comando:
• a sinistra del simbolo di assegnazione, il nome da dare all’oggetto R che andiamo a creare; tale nome è assolutamente ininfluente –come si vede dalla scelta fatta.
•Tra parentesi, i vari input che vanno forniti al comando MCA:
1.Tea_survey2: il nome del dataset su cui si opera;
2.Ncp=2: Il numero di fattori da estrarre (teoricamente, tanti quante sono le variabili attive; in realtà molto spesso l’obiettivo di una mca è quello di ottenere un grafico, per cui in questo caso diciamo alla funzione di estrarne 2 per avere un grafico bidimensionale. Se non si indica nulla di default vengono estratti 5 fattori).
3.Quali.sup=c(1,6,15): qui vanno indicate le variabili illustrative qualitative. Nella parentesi vanno indicate le loro posizioni nell’output del comando str(tea_survey2). Le illustrative considerate sono età, frequenza e sesso e le cui posizioni - nella slide precedente- sono appunto rispettivamente 1,6 e 15.
4.Altri eventuali input che possono essere forniti alla funzione MCA sono reperibili nella guida di R, digitando ?MCA e premendo invio.
69
Si ottengono i tre grafici seguenti:
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.2
0.4
0.6
0.8
1.0
Variables representation
Dim 1 (9.885%)
Dim
2 (
8.1
03
%)
alwaysbreakfastdinner
evening friendshome
how
Howlunch
price
pubresto
sugar
Tea
tea.time tearoom
where
workage_Q
frequencysex
In questo grafico sono rappresentate le v. attive in rosso e quelle illustrative in verde. Interessano le prime: variabili poste più a destra sono maggiormente legate con il primo asse fattoriale, quello orizzontale.Variabili poste più in alto sono maggiormente legate con il secondo asse fattoriale, quello verticale.Le percentuali tra parentesi accanto agli assi indicano la percentuale di informazione (variabilità) restituita da ciascun asse; in questo caso quindi, i due assi restituiscono complessivamente il 18% circa dell’informazione originaria.
70
-1.0 -0.5 0.0 0.5 1.0 1.5
-0.5
0.0
0.5
1.0
MCA factor map
Dim 1 (9.885%)
Dim
2 (
8.1
03
%)
12
3
4
5
6
7
8
9
10
1112
13
14
15
16
17
18
19
20 21
2223 2425
26
27
28
29
30
31
3233
34
35
36
3738
39
40
41
42
43
4445
46
47
48
49
50
51
52
53
54
55 5657
58
59
60 61
62
63 6465
66
6768
69
7071 7273
74
75
76 7778
79
80
81
8283
8485
86
87
88
8990
9192
93
94
95
96
9798
99
100
101
102
103
104105
106107 108
109
110
111
112
113
114115116117
118
119
120
121
122
123124
125
126
127128
129130
131132
133
134135136
137 138139140
141142
143144
145
146147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163164
165
166
167
168
169
170
171
172
173
174175176177
178
179
180
181
182
183
184185
186
187188189
190
191
192193 194
195
196
197198
199
200 201
202
203
204
205
206
207
208
209
210
211
212
213
214
215216
217
218
219
220
221
222
223
224
225226
227
228
229
230
231
232233 234
235
236
237
238
239
240241
242
243244
245
246247
248249
250251
252253
254
255
256257258 259260
261
262
263 264265
266
267
268
269
270
271
272
273
274
275
276
277
278
279280
281282
283
284
285 286
287
288
289290
291
292
293294
295296
297
298
299
300
Questo grafico mostra la “nuvola dei punti”, ovvero la disposizione degli individui (le righe della matrice originaria) nel piano fattoriale generato dalle variabili attive.
71
-1 0 1 2
-10
12
MCA factor map
Dim 1 (9.885%)
Dim
2 (
8.1
03
%)
alwaysNot.alwaysbreakfast
Not.breakfast
dinner
Not.dinnereveningNot.eveningfriends
Not.friendshomeNot.home
tea bag
tea bag+unpackaged
unpackaged
alone
lemon
milk
other
lunch
Not.lunch
p_brandedp_cheap
p_private label
p_unknown
p_upscale
p_variable
Not.pubpub
Not.resto
resto
No.sugar
sugar
black
Earl Grey
green
Not.tea timetea timeNot.tearoom
tearoom
chain store
chain store+tea shop
tea shop
Not.work
work15-24
25-3435-4445-59
+60
1/day1 to 2/week+2/day3 to 6/week
F
M
Questo grafico mostra la disposizione delle modalità delle v. attive (in rosso) e delle modalità delle v. illustrative (in verde) nel piano fattoriale.Siccome il passo successivo consiste nell’interpretazione di ciascun asse fattoriale, conviene eliminare dal grafico le v. illustrative e cercare di rendere più chiare le etichette delle varie modalità.A tale scopo si può digitare il comando:
72
1.pippo: il nome dell’oggetto R creato in precedenza, contenente tutti gli output dell’mca.
2.Invisible=c(“ind”, “quali.sup”): si dice alla funzione di eliminare dal grafico gli individui (“ind”) e le modalità delle v. illustrative (“quali.sup”), senza indicare le v. attive (“var”).
3.Cex=0.7: parametro grafico con cui si ottengono caratteri più piccoli e quindi etichette più leggibili-1 0 1 2
-10
12
MCA factor map
Dim 1 (9.885%)
Dim
2 (
8.1
03
%)
alw aysNot.alw aysbreakfast
Not.breakfast
dinner
Not.dinnereveningNot.evening
friends
Not.friends
homeNot.home
tea bag
tea bag+unpackaged
unpackaged
alone
lemon
milk
other
lunch
Not.lunch
p_brandedp_cheap
p_private label
p_unknow n
p_upscale
p_variable
Not.pub
pub
Not.resto
resto
No.sugar
sugar
black
Earl Grey
green
Not.tea time
tea timeNot.tearoom
tearoom
chain store
chain store+tea shop
tea shop
Not.w ork
w ork
73
L’interpretazione degli assi si basa sull’analisi della disposizione delle modalità in orizzontale (primo asse fattoriale) e in verticale (secondo asse fattoriale).
Nel primo caso a destra dell’origine troviamo modalità quali pub, tearoom, lunch, breakfast, work, friends, always, mentre a sinistra troviamo le corrispondenti negazioni (not pub, not tearoom, etc). Il primo asse si basa sulla tipologia di consumatori e distingue i consumatori abituali a destra dai consumatori occasionali a sinistra.
Nel caso dell’asse verticale, in alto troviamo modalità quali tea shop, unpackaged, price_upscale, cui si contrappongono in basso tea_bag, price-unknown, price_cheap, etc.Il secondo asse si basa sulla qualità del tè consumato e distingue tra un consumo di alta qualità in alto e un consumo di bassa qualità in basso.
A fronte delle 18 variabili attive che avevamo considerato, l’output precedente ci dice che tenendo conto di questi due aspetti si considera quasi il 20% di tutto il contenuto informativo contenuto nella matrice dei dati originale.
Questi due aspetti sono comunque i più importanti, tenendo conto che la portata del contenuto informativo di ciascun asse fattoriale è decrescente.
74
Per studiare le v. illustrative basta lanciare il comando:
ottenendo:
-0.4 -0.2 0.0 0.2 0.4
-0.4
-0.2
0.0
0.2
0.4
MCA factor map
Dim 1 (9.885%)
Dim
2 (
8.1
03
%)
15-24
25-34 35-4445-59
+60
1/day
1 to 2/w eek
+2/day
3 to 6/w eek
F
M
Da cui si evince ad esempio che le donne consumano più tè degli uomini (sono a destra sull’asse orizzontale) ma questi ultimi bevono un tè migliore (sono più in alto sull’asse verticale), oppure che a consumare il tè migliore sono soprattutto persone di una certa età (+60, in alto) rispetto ai giovani che bevono un tè di qualità inferiore (15-24, in basso)
75
76
Le variabili illustrative possono essere ovviamente anche di natura quantitativa. A tale scopo consideriamo il seguente dataset:
Che è analogo al precedente con la sola differenza che la variabile età è quantitativa a tutti gli effetti, e non quantitativa suddivisa in classi e quindi qualitativa come in precedenza.
77
Il comando da lanciare è il seguente:
I due assi fattoriali sono esattamente identici a quelli trovati prima, perché le variabili attive che li producono sono rimaste inalterate.Nell’output della funzione c’è però un grafico aggiuntivo:
-1.0 -0.5 0.0 0.5 1.0
-1.0
-0.5
0.0
0.5
1.0
Supplementary variables on the MCA factor map
Dim 1 (9.885%)
Dim
2 (
8.1
03
%)
age
78
Ovvero un cerchio delle correlazioni in cui possiamo leggere che la variabile illustrativa quantitativa age risulta legata quasi esclusivamente al secondo asse ed è concorde con l’asse. Questo risultato non è sorprendente, pensando a come si disponevano in precedenza le modalità della variabile suddivisa in classi.
-0.4 -0.2 0.0 0.2 0.4
-0.4
-0.2
0.0
0.2
0.4
MCA factor map
Dim 1 (9.885%)
Dim
2 (
8.1
03
%)
15-24
25-34 35-4445-59
+60
1/day
1 to 2/w eek
+2/day
3 to 6/w eek
F
M
Esse infatti si muovevano dal basso verso l’alto, come mostra il “vecchio” grafico al quale è stata aggiunta la spezzata rossa per evidenziarne l’andamento
79
-0.4 -0.2 0.0 0.2 0.4
-0.3
-0.2
-0.1
0.0
0.1
0.2
0.3
MCA factor map
Dim 1 (9.885%)
Dim
2 (
8.1
03
%)
1/day
1 to 2/w eek
+2/day
3 to 6/w eek
F
M
Tutti gli altri grafici risultano identici a quelli già visti tranne quello recante la disposizione delle variabili illustrative qualitative nel piano fattoriale, in cui ovviamente non c’è più la variabile age.
Cluster Analysis
80
Si consideri il seguente dataset
Costituito da un insieme di 6 variabili legate al fenomeno turistico registrate sulle 20 regioni italiane. L’obiettivo è quello di trovare dei gruppi di regioni che, rispetto alle variabili in esame, presentino un comportamento simile al loro interno e dissimile tra gruppi diversi.
81
Per operare una classificazione gerarchica, calcoliamo innanzitutto la matrice delle distanze euclidee:
Poi ci calcoliamo il dendrogramma e lo rappresentiamo:
Lo
mb
ard
iaS
icili
aC
am
pa
nia
Lig
uri
aE
mili
a_
Ro
ma
gn
aT
ren
tino
_A
lto_
Ad
ige
La
zio
Ve
ne
toT
osc
an
aF
riu
li_V
en
ezi
a_
Giu
liaU
mb
ria
Ab
ruzz
oV
alle
_d
_A
ost
aP
iem
on
teS
ard
eg
na
Mo
lise
Ma
rch
eP
ug
liaB
asi
lica
taC
ala
bri
a
05
01
00
15
02
00
Cluster Dendrogram
hclust (*, "ward")matdist
He
igh
t
82
Tenendo conto che le classificazioni migliori si ottengono “tagliando” il dendrogramma in corrispondenza dei rami più alti, potreemo avere una classificazione a 2, 3 o al limite a 5 gruppi.Scegliendo quella da tre si ha:
Per cui Piemonte, Abruzzo, Puglia, Valle d’Aosta, Marche, Molise, Basilicata, Sardegna e Calabria stanno tutte insieme e appartengono al gruppo 1, etc.I gruppi ottenuti andranno poi caratterizzati studiando le caratteristiche comuni dei loro elementi.
83
Volendo operare una classificazione su base partizionale si procede con il comando:
A questo riguardo vale la pena osservare che:
a)Nel caso dei cluster partizionali, il numero di gruppi va indicato a priori, senza alcun ausilio grafico (per cui spesso si va per tentativi);
b)La classificazione è venuta identica a quella precedente (in quanto il dataset è molto piccolo e contiene poche variabili); in generale non è così perche gli algoritmi utilizzati sono molto diversi. 84
Un’altra classificazione su base partizionale, tramite un ulteriore diverso algoritmo, si ottiene con il comando:
In questo caso, con l’opzione medoids, si ottengono anche i “centri” dei 3 cluster, ovvero le unità statistiche che meglio rappresentano ciascun gruppo. Questo può essere un valido ausilio per la caratterizzazione dei gruppi ottenuti.
85
Spesso, soprattutto nel caso di grandi dataset con molte variabili, invece di classificare i dati originali si ricorre ad una precedente analisi fattoriale per ridurre le dimensioni, e si opera la cluster analysis sulle coordinate fattoriali.
Il pacchetto FactoMineR permette di operare una cluster analysis gerarchica (metodo di ward) direttamente sugli assi fattoriali e non sui dati originali. Lavorando per continuità di esempio sul dataset turismo_08 (sebbene le sue dimensioni rendano assolutamente superfluo il ricorso all’analisi fattoriale), si procederà calcolandone le componenti principali e poi digitando il comando:
(dove prendiamo solo le prime due componenti principali perché il dataset è piccolo) che restituisce il dendrogramma rappresentante la successione delle classificazioni e una riga scura rappresentante un suggerimento di “taglio” in base alla massimizzazione di un opportuno indice di validazione.
86
Non c’è motivo per non accettare il suggerimento (che prevede dunque la scelta di 3 gruppi) per cui cliccando in corrispondenza della riga scura si ottiene:
87
0.0
0.5
1.0
1.5
Hierarchical Clustering
inertia gain
Friu
li_V
enez
ia_G
iulia
Um
bria
Tos
cana
Ven
eto
Mar
che
Mol
ise
Pug
lia
Abr
uzzo
Sar
degn
a
Pie
mon
te
Bas
ilicat
a
Cal
abria
Ligu
ria
Val
le_d
_Aos
ta
Cam
pani
a
Em
ilia_R
omag
na
Sic
ilia
Lom
bard
ia
Tre
ntin
o_A
lto_A
dige
Lazi
o
0.0
0.5
1.0
1.5
Click to cut the tree
-3 -2 -1 0 1 2 3 4
0.0
0.5
1.0
1.5
2.0
-3
-2
-1
0
1
2
3
Dim 1 (42.1%)
Dim
2 (
26
.76
%)
he
igh
t
cluster 1 cluster 2 cluster 3
Friuli_Venezia_Giulia
MarcheMolisePuglia
Basilicata
Umbria
AbruzzoSardegna
Calabria
Veneto
Toscana
PiemonteLiguriaValle_d_AostaCampania
Emilia_RomagnaSicilia
Lombardia
Trentino_Alto_Adige
Lazio
Hierarchical clustering on the factor map
88
E soprattutto:
-2 0 2 4
-3-2
-10
12
3
Factor map
Dim 1 (42.1%)
Dim
2 (
26
.76
%)
Friuli_Venezia_Giulia
MarcheMolisePuglia
Basilicata
Umbria
AbruzzoSardegna
Calabria
Veneto
Toscana
PiemonteLiguriaValle_d_Aosta
Campania
Emilia_RomagnaSicilia
Lombardia
Trentino_Alto_Adige
Lazio
cluster 1 cluster 2 cluster 3
89
Sui dati fattoriali si può anche operare una classificazione con metodo partizionale, ad esempio con il metodo delle k medie.Tale operazione però non può essere svolta direttamente da funzioni del pacchetto FactoMineR, per cui bisogna “estrarre” le coordinate fattoriali.Il comando:
Crea un nuovo oggetto R contenente le 20 coppie di coordinate fattoriali, una coppia per ogni regione del dataset originario. Su di esso potremo lanciare il comando kmeans:
Che produrrà, ad esempio, la seguente classificazione:
90
O ancora, tramite l’algoritmo pam:
In cui, ad esempio, è cambiato il “centro” del primo cluster.
91
Analogo discorso può essere fatto, nel caso di variabili qualitative, per i risultati di una mca.Tornando all’esempio del tè, in cui pippo era l’oggetto R contenente l’output dell’mca,, va digitato il comando:
Che restituisce come in precedenza il dendrogramma rappresentante la successione delle classificazioni e una riga scura rappresentante un suggerimento di “taglio” in base alla massimizzazione di un opportuno indice di validazione.
Non c’è motivo per non accettare il suggerimento (che prevede dunque la scelta di 3 gruppi) per cui cliccando in corrispondenza della riga scura si ottiene:
92
0.00
0.04
0.08
Hierarchical Clustering
inertia gain
187
200 6 38 262
205
188
167 4 55 223
193
154
197
134 34 162
156
186
102
180
163
189
226
213
231 23 164 37 153 81 54 209
217
149
161
113
191 15 159
300 1
237 76 97 219 47 152
166
183 2
169 63 139
140
228
155
285 36 184 85 176
115
232
124
146
158 14 263 70 258
257
123
116
117
256
144
111
194 41 141
145
181
157
293
177
254
230
150
126
118
250
216 12 77 175
137 11 105
104
142
245
296
275 8 20 5 45 119
121
218
132
292 29 151 42 291
178 24 79 83 40 82 266
198 57 243 21 33 201
255 93 48 112
128
235
280
160
233
253 18 214 30 49 7 192
298
170 71 19 147
242 84 138
174 43 106
107
114
179 73 131
276 92 143 78 129
247 96 109
260 65 284 13 204 3 27 91 282
281 89 90 80 185 58 290
294 86 125
210
289 98 130
215
236 88 227
195
182
211 31 212
165
199
222
249 74 95 229
100 53 168
208
190
202
297
248
220 16 206
261
299
272
148
288
203 25 9 241
196
238
173 94 62 171 10 120
110 52 271
277
287 60 286 39 69 101
274
239 28 221 46 75 108 26 279 64 51 246
135 32 244 56 172
136 72 103
264
133 68 234 17 224
240
269 59 225 22 207 50 35 278 66 251 99 267
270 67 265
259 61 122 44 252
127
283
295
268 87 2730.
000.
020.
040.
060.
080.
10
Click to cut the tree
-1.0 -0.5 0.0 0.5 1.0 1.5
0.00
0.02
0.04
0.06
0.08
0.10
-1.0
-0.5
0.0
0.5
1.0
1.5
Dim 1 (9.88%)
Dim
2 (
8.1
%)
he
igh
t
cluster 1 cluster 2 cluster 3
18720062623820518855167193422330076972191237
154186102197
227
153
47
212
134162
165
34152166156155180
195
285
54163232
81
183124146158169361841463
199
85176189
13914021322262312637011525822825711612341141177117
20923
222
145111
182
256293
194144181254
211
230164
157
31
2961505
275126121118250218216
3745217
8
249
132121752921371041427720
191
119245
15
11105
1491611132921449174
15924
431061077192114151
29883
179170
79
71290
304229119147
74
73242
4084178
168
1695
82
261
138131247276
266148
96284
208
13
288
92109
299
14326065129
206
198
294
20412578
203
190
8632791
25
210
272
579
28228128989255243
241196185
94
9821
9033
229
238
202
9348112
53
130
100
88
2018021558
236
62173120
128110
10
280
171
16023552
253233
297
6018
271
69286392741012795164
220
277
246
17269225
287248
239135
22424417256136
5932
2872221103264
240133
4668108
75
2250
23426251122
20735
9944252
267
66
127283295270
27867259268
6187
265273
Hierarchical clustering on the factor map
93
E soprattutto:
-1.0 -0.5 0.0 0.5 1.0 1.5
-0.5
0.0
0.5
1.0
Factor map
Dim 1 (9.88%)
Dim
2 (
8.1
%)
187200626238
205
18855167
193
4223
3007697219
1237
154
186102197
227
153
47
212
134162
165
34152166156
155
180
195
285
54
163
232
81
183124146158169
361841463
199
85176
189
139140
213
2
226231
2637011525822825711612341141177117
209
23
222
145
111
182
256
293
194144181254
211
230
164
157
31
296
150
5275
126
121
118250218
216
37
45
217
8
249
13212175292137104142
77
20
191
119
245
15
11105
149161113
2921449
174
159
24
43106107
7192
114
151
298
83
179170
79
71
290
3042291
19147
74
73242
40
84
178
168
16
95
82
261
138131247276
266
148
96284
208
13
288
92
109
299
14326065
129
206
198
294
204
125
78
203
190
86
32791
25
210
272
57
9
282281
289
89
255243
241196
185
94
98
21
90
33
229
238
202
9348112
53
130
100
88
201
80215
58
236
62
173120
128
110
10
280
171
160235
52
253
233
297
60
18
271
6928639
274101
2795164
220
277
246
17269
225
287
248
239
135
224
24417256
136
59
32
28
72
221
103264
240
133
46
68
108
75
22
50
234
26
251
122
207
35
99
44252
267
66
127283295
270
278
67
259
268
61
87
265
273
cluster 1 cluster 2 cluster 3
94
Che rappresenta la classificazione degli individui (si tratta evidentemente della stessa “nuvola di punti” ottenuta in precedenza con l’mca) nei 3 gruppi.
Le caratteristiche di ciascun gruppo dipendono dalla posizione del gruppo stesso rispetto agli assi fattoriali.Il gruppo verde ad esempio, per quanto detto sarà caratterizzato principalmente da bevitori abituali di tè.
Attraverso il comando:
Si ottengono comunque delle informazioni più precise in merito. Scorrendo l’output si arriva alla sezione “category”, che in questo caso significa gruppo e che quindi ha una voce per ciascun cluster:
95
96
97
Vengono rappresentate le modalità che, in ciascun cluster, presentano una significativa sovra o sotto presenza rispetto al dato campionario complessivo, e che quindi risultano particolarmente utili per caratterizzare il cluster stesso.In particolare:
Global è la frequenza della modalità nel campione, ovvero nel dataset;
Mod/Cla è la frequenza percentuale della modalità nel gruppo;
Cla/Mod indica la percentuale che gli individui nel gruppo aventi questa modalità rappresentano sul totale.
Nella slide precedente è riportato l’estratto dell’output relativo al primo gruppo. Prendiamo ad esempio la terza riga, ovvero la modalità Not.tearoom della variabile tearoom (ovvero, coloro che non bevono il tè nelle apposite sale).In questo gruppo, il 97% circa degli individui presenta tale modalità a fronte di un valore campionario complessivo pari all’80,6%. Questa modalità caratterizza quindi il primo gruppo, essendo decisamente più frequente nel gruppo rispetto al campione.Il 65% di tutti gli individui che non bevono il tè nella sala da tè si concentra in questo gruppo.La caratterizzazione dei gruppi si fa pertanto analizzando le modalità presentate in questo output.
98
Occorre fare attenzione peraltro a interpretare correttamente i dati riportati nell’output.Le modalità indicate non sono infatti necessariamente quelle più frequenti nel gruppo, ma solo quelle che risultano statisticamente diverse, per eccesso o per difetto, rispetto al dato complessivo campionario.Consideriamo ad esempio la sesta riga, relativa alla modalità Not.friends della variabile friends (ovvero coloro che non bevono il tè con gli amici, contrapposta alla omonima modalità friends che indica coloro che lo fanno).Sebbene sia corretto caratterizzare il cluster in base a tale variabile, la distribuzione della variabile nel gruppo è: friends=52,44%, Not.friends=47,56.In altre parole, all’interno del gruppo sono di più coloro che bevono il tè con gli amici rispetto a coloro che non lo fanno.Ma la percentuale di questi ultimi (appunto, 47,56) risulta comunque maggiore in modo statisticamente significativo rispetto al dato complessivo campionario (pari al 34,66%). Per converso, essendo la variabile friends dicotomica, la modalità friends (27° riga nell’output), pur essendo comunque la più frequente nel gruppo, risulta minore in modo statisticamente significativo rispetto al dato complessivo campionario (pari al 65,33%)
Analogamente, sui dati fattoriali dell’mca si può anche operare una classificazione con metodo partizionale, ad esempio con il metodo delle k medie, operazione non possibile con il pacchetto FactoMineR. Occorre allora estrarre le coordinate fattoriali degli individui. La procedura è analoga a quella vista nel caso delle componenti principali:
Crea un nuovo oggetto R contenente le 300 coppie di coordinate fattoriali, una coppia per ogni individuo del dataset originario. Su di esso potremo lanciare il comando kmeans:
Che produrrà, ad esempio, la seguente classificazione:
99