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
> names(Dati)
[1] "SESSO" "ETA"
– Rinominare una variabile e salvare il file di dati attivo
"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))*100
REG
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)
> plot(REG, col="dark blue", ylim=c(0,12), main="Grafico a barre
delle regioni di provenienza")
12
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)
[1] 0.3714067
#richiede il pacchetto labstatR
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)
ETA
10 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
REG
SESSO 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
Regressione Lineare
31
32
33
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
34
Il significato del coefficiente di regressione è il seguente: per ogni incremento unitario
della variabile indipendente, la variabile dipendente cresce di 28,417 unità.
I valori stimati di reddito in funzione dell’età mediante la retta di regressione si
ottengono come segue:
35
La retta può essere rappresentata all’interno del diagramma a dispersione delle due
variabili nel modo seguente:
2000
1500
1000
500
0
Reddito mensile
2500
3000
Grafico a dispersione del reddito e dell'età
10
20
30
40
50
60
70
Età
36
Una retta di regressione multipla si ottiene semplicemente inserendo più di una
variabile indipendente:
37
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à.
38
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
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).
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.
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
Obiettivo: sintetizzare l’insieme di informazioni costituito dalla matrice dei dati in uno
spazio di dimensioni ridotte
Applicazione dell’ANALISI DELLE COMPONENTI PRINCIPALI
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.
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
Variables factor map (PCA)
0.5
peso
0.0
kcal
fibre
proteine
grassi
-1.0
-0.5
Dim 2 (16.83%)
carboidrati
-1.0
-0.5
0.0
0.5
1.0
Dim 1 (76.93%)
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
3
Individuals factor map (PCA)
LIUK
1
MAGNIFICO
CUCCIOLONE
SOLERO
LEMONISSIMO
CARTE D_OR
FIORDIFRAGOLA
COPPAMUSIC
0
Dim 2 (16.83%)
2
CALIPPO
CORNETTO
MAGNUM
PASSION
-1
VIENNETTA
CROCCANTE
-2
CREMINO
-4
-2
0
2
4
6
Dim 1 (76.93%)
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
Variables factor map (PCA)
Amplitude
Longitude
0.0
September
April
Annual
October
Latitude
March
November
-0.5
Dim 2 (15.4%)
0.5
June
July
May
August
-1.0
February
December
January
-1.0
-0.5
0.0
0.5
1.0
Dim 1 (82.9%)
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
3
Individuals factor map (PCA)
Moscow
2
Kiev
Budapest
Minsk
East
Athens
Madrid
Rome
South
0
ElsinkiOslo
Stockholm
Sofia
Prague
Sarajevo
Berlin
Copenhagen
-1
North
West Paris
Brussels
Amsterdam
London
Lisbon
-2
Dim 2 (15.4%)
1
Krakow
Dublin
-3
Reykjavik
-5
0
5
Dim 1 (82.9%)
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
64
temperature piuttosto basse durante il resto dell’anno.
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.6
where
0.4
price
how
0.2
0.0
Dim 2 (8.103%)
0.8
1.0
Variables representation
Tea
age_Q
dinner
How
work resto
sugar
breakfast
lunch
sex
frequency
pubfriendstearoom
evening
home
alwaystea.time
0.0
0.2
0.4
0.6
Dim 1 (9.885%)
0.8
1.0
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
MCA factor map
1.0
195 211
227 182
31
220
0.0
0.5
297248
272
299
261
16
66
206 94 10 287
171
191
62
271
277
203
288
153
81 209 159148
52
50 35
110
120
15
224
17
54
278
240
25
196
9
113
217
241
238
14979
173 269
207
161
205
40
59
24
266
163 23
186
82
22
180
102
226164 83 198255
87
112
48 253 225
167
189
93
268
231 37
38
6188
213
4154
57
262
243
197
134
291
283
151
21
201
34 296
29 178
187 55
200
235
44
252
295
18 244
172
223162
20
156
82144213
183
56 122
2 275
204 33128
280
233
279
64135
228
160
193
63
545
284
51
234 12767 265
47169
152
166
140
139
119
133
30
32
194
58
1
111
218
109
256
96
260
68
117
3185
300
121
292
6527
246103
232
124
146
158
49
784
247
263
257
132
264
259
258
123
116
192
270
61
237155
14
70144
9189 286
138
39 136
176
150
12
60
230
72 251
77
298
147
19
267
184
36
170
85
137
175
115
105
242
177
254
250
71
281
80
143
219
76 285
97
216
276
282
181
78
108
141
11
131
92
90
239
118
99
41
157
126
179
73
101
145
174
107
106
43
69
104
114 129
245
210
98215
142
236 274 221
28 26
293
289
130
125
46
75
290294
86
88
-0.5
Dim 2 (8.103%)
212
165
199
222249
168190202
208
229
100
74
95
53
-1.0
-0.5
0.0
0.5
1.0
Questo grafico mostra la “nuvola
dei punti”, ovvero la disposizione
degli individui (le righe della
matrice originaria) nel piano
fattoriale generato dalle variabili
attive.
273
1.5
Dim 1 (9.885%)
71
MCA factor map
tea shop
2
unpackaged
1
0
green
dinner
+60
black
lemon tearoom
Not.friends
No.sugar
M
Not.breakfast
Not.resto
45-59
Not.work
35-44
1 to
2/week
chain store+tea shop
Not.tea
time
Not.lunch
alone
3 25-34
to
6/week
Not.pub
tea
always
bag+unpackaged
Not.evening
+2/day
other
home
Not.always
Not.dinner
evening
Not.home
Not.tearoom
tea
time
friends
1/day
F
pub
breakfast
sugar
p_variable
p_cheap Earl Grey
work
milk
chain
store
15-24
lunch
resto
p_branded
tea bag
p_private
label
p_unknown
-1
Dim 2 (8.103%)
p_upscale
-1
0
Dim 1 (9.885%)
1
2
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.
MCA factor map
2
tea shop
unpackaged
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”).
1
green
dinner
0
black
lemon
tearoom
Not.friends
No.sugar
Not.breakfast
Not.resto
ork
chain
store+tea
shop
Not.teaNot.w
time
Not.lunch
alone alwtea
Not.pub
aysbag+unpackaged other
Not.evening
home
Not.alw
aysevening
Not.dinner
Not.home
Not.tearoom
tea
time
friends
pub
breakfast
sugar
p_variable
p_cheap
Earl Grey w ork
chain
store milk
lunch
resto
p_branded
tea bag
p_private label
p_unknow n
-1
Dim 2 (8.103%)
p_upscale
-1
0
Dim 1 (9.885%)
1
2
3. Cex=0.7: parametro
grafico con cui si
ottengono caratteri più
piccoli e quindi etichette
più leggibili
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:
MCA factor map
M
1 to 2/w eek
45-59
35-44
25-34
3 to 6/w eek
0.0
+2/day
1/day
-0.2
F
15-24
-0.4
Dim 2 (8.103%)
0.2
0.4
+60
-0.4
-0.2
0.0
Dim 1 (9.885%)
0.2
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)
0.4
75
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.
76
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:
-0.5
0.0
age
-1.0
Dim 2 (8.103%)
0.5
1.0
Supplementary variables on the MCA factor map
-1.0
-0.5
0.0
Dim 1 (9.885%)
0.5
1.0
77
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.
MCA factor map
M
1 to 2/w eek
45-59
35-44
25-34
3 to 6/w eek
0.0
+2/day
1/day
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
-0.2
F
15-24
-0.4
Dim 2 (8.103%)
0.2
0.4
+60
-0.4
-0.2
0.0
Dim 1 (9.885%)
0.2
0.4
78
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.
0.1
M
1 to 2/w eek
3 to 6/w eek
0.0
+2/day
F
-0.2
-0.1
1/day
-0.3
Dim 2 (8.103%)
0.2
0.3
MCA factor map
-0.4
-0.2
0.0
0.2
0.4
Dim 1 (9.885%)
79
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:
Lombardia
Sicilia
Campania
Liguria
Emilia_Romagna
Trentino_Alto_Adige
Lazio
Veneto
Toscana
Friuli_Venezia_Giulia
Umbria
Abruzzo
Valle_d_Aosta
Piemonte
Sardegna
Molise
Marche
Puglia
Basilicata
Calabria
50
0
Height
100
150
200
Cluster Dendrogram
matdist
hclust (*, "ward")
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
Click to cut the tree
0.5
1.0
1.5
inertia gain
Hierarchical clustering on the factor map
1.0
2
Friuli_Venezia_GiuliaToscana
Umbria
1
0.5
Trentino_Alto_Adige
0
Lazio
Piemonte Campania
Liguria Lombardia
Valle_d_Aosta
-1
Puglia
Marche
Sardegna
Molise Abruzzo
Emilia_Romagna
Sicilia
-2
Basilicata
-3
Calabria
-3
-2
-1
0
Dim 2 (26.76%)
3
Veneto
0.0
height
1.5
2.0
Lazio
Trentino_Alto_Adige
Sicilia
Lombardia
Campania
Emilia_Romagna
Liguria
Valle_d_Aosta
Calabria
Piemonte
Basilicata
Sardegna
Puglia
Abruzzo
Molise
Veneto
Marche
Umbria
Toscana
Friuli_Venezia_Giulia
0.0
cluster 1
cluster 2
cluster 3
1
2
3
4
Dim 1 (42.1%)
88
E soprattutto:
3
Factor map
cluster 1
cluster 2
cluster 3
Veneto
2
Friuli_Venezia_Giulia
Toscana
Umbria
1
0
Puglia
Marche
Molise
Campania
Piemonte
Lombardia
Liguria
Valle_d_Aosta
Lazio
Sardegna
Abruzzo
-1
Emilia_Romagna
Sicilia
-2
Basilicata
Calabria
-3
Dim 2 (26.76%)
Trentino_Alto_Adige
-2
0
2
4
Dim 1 (42.1%)
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.08
0.04
0.00
Click to cut the tree
inertia gain
0.06
0.08
0.10
Hierarchical Clustering
Hierarchical clustering on the factor map
195
190
211 168
202
182
208
227
31
100 220
74
95 229
212
165
248
199
249261
222
272 53297
299
16
287
206
94
66
10
171
191
62
271
277
288
203120
153
81209
159148
52
5035
15
110
224
54
17
278
240
217
113
25
241
196
9
161
149
238
173
269
207
205
79
40
59
24
266
186
163
23
83198
82243
22283
102
180
226
255
225
87
167
189
164
112
48
93
38
6223
213
231
37
253
268
262
4
57
200
187
188
154
197
134
34
29
151
291
178
21
201
55
162
296
275
235
18
172
252
44
295
156
183
2121
20
8784
42
33
128
244
56
122
13
204
280
233
279
64
135
127
67265 273
193
47
166
152
140
139
63
228
545
214
284
160
51
234
1155
169
111
194
119
30
58
32
133
300
158
146
124
117
256
218
292
109
96
260
65
27
3
185
246
68
232
14
263
258
123
116
257
144
132
192
49
247
136
103
264
270
259
61
237
176
70
230
150
12
138
91
286
60
39
251
285
184
36
115
85
250
175
137
105
77
298
170
147
242
19
281
89
72
267
219
97
76
177
181
254
216
71
276
143
78
282
80
108
141
41
157
126
118
11
179
73
131
92
90
101
239
99
145
104
174
107
106
43
69
142
245
114
129
210
98
215
236
221
28
293
289
274
125
130
46
290
7526
86
294
88
-1.0
1.0
0.5
Dim 2 (8.1%)
0.06
0.04
1.5
0.02
0.00
height
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
273
0.00
0.08
0.02
0.10
0.04
cluster 1
cluster 2
cluster 3
0.0
-0.5
-1.0
-0.5
0.0
0.5
1.0
1.5
Dim 1 (9.88%)
93
E soprattutto:
Factor map
1.0
cluster 1
cluster 2
cluster 3
195 211
227 182
31
220
0.0
0.5
297248
272
299
261
16
66
206 94 10 287
171
191
62
271
277
203
288
153
81 209 159148
52
50 35
110
120
15
224
17
54
278
240
25
196
9
113
217
241
238
149
173 269
207
161
205
40
59
79
266
163 23 24
186
82
22
180
102
226164 83 198255
87
112
48 253 225
167
189
93
268
231
37
38
61884 197
213
57
262
243
134
291
283
154
151
21
201
34
29
178
200 55
187
296
235
44
252
295
18 244
172
223162
20
156
82144213
183
56 122
2 275
204 33128
280
233
279
64135
228
160
193
63
545
284
51
234 12767 265
47169
166
152
140
139
119
133
30
32
194
58
1
111
218
109
256
96
260
68
117
3185
300
121
292
6527
246103
232
158
146
124
49
784
247
263
257
132
264
259
258
123
116
192
270
61
237155
14
70144
9189 286
138
39 136
176
150
12
60
230
72 251
77
298
147
19
267
184
36
170
85
175
137
115
105
242
177
254
250
71
281
80
143
219
97 285
76
216
276
282
181
78
108
141
11
131
92
90
239
118
99
41
157
126
179
73
101
145104
174
107
106
43 129
114
245
210
98215
142
236 69
28 26
274 221
293
289
130
125
46
75
290294
86
88
-0.5
Dim 2 (8.1%)
212
165
199
222249
168190202
208
229
100
74
95
53
-1.0
-0.5
0.0
0.5
1.0
273
1.5
Dim 1 (9.88%)
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
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.
97
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%)
98
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
Scarica

Gestione dati