Sei sulla pagina 1di 14

ANALISI DEI DATI 2015/2016

Marilena Pillati

Esercitazione 3: Analisi dei gruppi


Il file flower_up.csv, creato dal Dipartimento di matematica ed informatica dellUniversit di
Adger (Norvegia) come esempio per condurre lanalisi per gruppi, disponibile tra i dataset di
R. Esso contiene i dati di 18 piante su cui sono state misurate 8 caratteristiche:
winter: resistenza allesterno durante linverno (0/1)
shadow: bisogno di ombra (0/1)
tubers: indica se la pianta un tubero (0/1)
color: colore (1 = white, 2 = yellow, 3 = pink, 4 = red, 5 = blue).
soil: tipo di terreno in cui cresce la pianta (1=dry, 2=normal, 3=wet)
preference: ordine di preferenza del coltivatore (1-18)
height: altezza in cm
distance: distanza (cm) che deve essere lasciata tra due piante vicine
1.Apertura ed esplorazione del dataset
flower<-read.csv(file.choose())
### Visualizziamo la struttura del dataset
str(flower)
'data.frame':
18 obs. of 8 variables:
$ winter
: int 0 1 0 0 0 0 0 0 1 1 ...
$ shadow
: int 1 0 1 0 1 1 0 0 1 1 ...
$ tuber
: int 1 0 0 1 0 0 0 1 0 0 ...
$ color
: int 4 2 3 4 5 4 4 2 3 5 ...
$ soil
: int 3 1 3 2 2 3 3 2 1 2 ...
$ preference: int 15 3 1 16 2 12 13 7 4 14 ...
$ height
: int 25 150 150 125 20 50 40 100 25 100 ...
$ distance : int 15 50 50 50 15 40 20 15 15 60 ...
colnames(flower)
[1] "winter"
"shadow"
"tuber"
"preference" "height"
"distance"
rownames(flower)
[1] "1" "2" "3" "4" "5" "6" "7"
"15" "16" "17" "18"

"color"
"8"

"9"

"soil"

"10" "11" "12" "13" "14"

Ogni pianta identificata con un numero da 1 a 18: il dataset relativamente piccolo.


Le variabili sono salvate come numeriche intere ma sono in realt di diversa natura:
- dicotomiche: winter, shadow, tuber
- categoriche: color, soil
- numeriche: preference, height, distance
#definiamo la vera natura delle variabili
flower$winter<-factor(flower$winter, ordered=F)
flower$shadow<-factor(flower$shadow, ordered=F)
flower$tuber<-factor(flower$tuber, ordered=F)
Analisi dei dati a.a. 2015/2016

flower$color<-factor(flower$color, ordered=F)
flower$soil<-factor(flower$soil, ordered=T)
flower$preference<-factor(flower$preference, ordered=T)
str(flower)
'data.frame':
$ winter
:
$ shadow
:
$ tuber
:
$ color
:
$ soil
:
$ preference:
$ height
:
$ distance :

18 obs. of 8 variables:
Factor w/ 2 levels "0","1": 1 2 1 1 1 1 1 1 2 2 ...
Factor w/ 2 levels "0","1": 2 1 2 1 2 2 1 1 2 2 ...
Factor w/ 2 levels "0","1": 2 1 1 2 1 1 1 2 1 1 ...
Factor w/ 5 levels "1","2","3","4",..: 4 2 3 4 5 4 4 2 3 5 ...
Ord.factor w/ 3 levels "1"<"2"<"3": 3 1 3 2 2 3 3 2 1 2 ...
Ord.factor w/ 18 levels "1"<"2"<"3"<"4"<..: 15 3 1 16 2 12 ...
int 25 150 150 125 20 50 40 100 25 100 ...
int 15 50 50 50 15 40 20 15 15 60 ...

#visualizziamo lintero dataset


flower
winter shadow tuber color soil preference height distance
1
0
1
1
4
3
15
25
15
2
1
0
0
2
1
3
150
50
3
0
1
0
3
3
1
150
50
4
0
0
1
4
2
16
125
50
5
0
1
0
5
2
2
20
15
6
0
1
0
4
3
12
50
40
7
0
0
0
4
3
13
40
20
8
0
0
1
2
2
7
100
15
9
1
1
0
3
1
4
25
15
10
1
1
0
5
2
14
100
60
11
1
1
1
5
3
8
45
10
12
1
1
1
1
2
9
90
25
13
1
1
0
1
2
6
20
10
14
1
1
1
4
2
11
80
30
15
1
0
0
3
2
10
40
20
16
1
0
0
4
2
18
200
60
17
1
0
0
2
2
17
150
60
18
0
0
1
2
1
5
25
10
#visualizziamo le principali statistiche descrittive
summary(flower)
winter shadow tuber
0: 8
0: 8
0:11
1:10
1:10
1: 7

color soil
1:2
1: 3
2:4
2:10
3:3
3: 5
4:6
5:3

preference
1
: 1
2
: 1
3
: 1
4
: 1
5
: 1
6
: 1
(Other):12

height
Min.
: 20.00
1st Qu.: 28.75
Median : 65.00
Mean
: 79.72
3rd Qu.:118.75
Max.
:200.00

distance
Min.
:10.00
1st Qu.:15.00
Median :22.50
Mean
:30.83
3rd Qu.:50.00
Max.
:60.00

La funzione summary() ci restituisce le frequenze per le variabili categoriche, mentre mostra gli
indici di posizione e la media per le variabili quantitative.
Lobiettivo dellanalisi dei gruppi quello didentificare dei sottoinsiemi di unit che siano
omogenei al loro interno e che siano diversi tra loro, quindi in questo caso cercheremo di
raggruppare insieme le piante con caratteristiche simili.
2.Analisi dei gruppi o cluster analisys
Scegliamo di utilizzare 2 sole variabili per giungere alla definizione dei gruppi: altezza e distanza.

Analisi dei dati a.a. 2015/2016

#Riduzione del dataset


flower2<-flower[,7:8]
flower2
height distance
1
25
15
2
150
50
3
150
50
4
125
50
5
20
15
6
50
40
7
40
20
8
100
15
9
25
15
10
100
60
11
45
10
12
90
25
13
20
10
14
80
30
15
40
20
16
200
60
17
150
60
18
25
10

A) Analisi dei gruppi con metodi gerarchici aggregativi


Il commando hclust() permette di condurre lanalisi dei gruppi attraverso metodi gerarchici
aggregativi.
Loggetto su cui la funzione realizza lanalisi dei gruppi gerarchica la matrice di dissimilarit o
di distanza (matrice che contiene le dissimilarit o le distanze tra le righe della matrice dei dati)
che per variabili numeriche si crea col comando dist().
?dist
dist(x, method = "euclidean", diag = FALSE, upper = FALSE, p = 2)
Dati da fornire in input:
x: matrice dei dati;
method: misura di distanza da usare. Di default usa la distanza euclidea. Altri metodi sono:
manhattan, mincosky, binary (binary= complemento a 1 dellindice di dissomiglianza di
Jaccard);
diag: TRUE se si vuole poter visualizzare la diagonale della matrice di dissimilarit;
upper: TRUE se si vuole visualizzare solo il triangolo superiore della matrice di dissimilarit;
p: il potere (esponente e radice) della distanza di Minkosky.
?hclust
hclust(d, method = "complete", members=NULL)
Dati da fornire in input:
d: matrice di dissimilarit;
method: metodo aggregativo che si vuole usare. Di default complete, ma si pu
specificare anche: ward, single, average, median, centroid, mcquitty;
members: NULL o un vettore di lunghezza pari a d, che specifica il numero di osservazioni
per ogni gruppo. Utile se si vuole inizializzare lalgoritmo nel mezzo del dendrogramma.
In output hclust ci restituisce una lista di componenti che descrivono il dendrogramma
prodotto dal processo, tra cui:
Analisi dei dati a.a. 2015/2016

merge: matrice (n-1)x2 che ad ogni step descrive quali osservazioni/gruppi vengono
aggregati;
height: il valore di dissimilarit associato al metodo utilizzato per laggregazione;
method: il metodo aggregativo utilizzato;
dist.method: il metodo utilizzato per determinare la matrice di dissomiglianza.
Calcoliamo la matrice di distanza utilizzando la distanza euclidea.
dissim.eu<-dist(flower2,method="euclidean")
round(dissim.eu,1)
Eseguiamo lanalisi dei gruppi gerarchica con il metodo del legame completo:
h1<-hclust(dissim.eu, method="complete")
h1
Call:
hclust(d = dissim.eu, method = "complete")
Cluster method
: complete
Distance
: euclidean
Number of objects: 18
Rappresentiamo graficamente linsieme delle partizioni annidate che sono state calcolate,
cio produciamo il dendogramma:
plot(h1)

Sullasse delle y abbiamo il livello di dissomiglianza.


Quanti cluster prendere? Se scegliamo la soluzione a 2 cluster, la maggior parte delle
osservazioni si concentra nel gruppo sulla destra, mentre solo 5 sono nel gruppo sulla sinistra.
Per evitare di prendere cluster composti da una sola unit sceglieremo di considerare 2 o al pi
3 cluster.
Una volta scelto il numero dei gruppi possibile estrarre la partizione e vederne le
caratteristiche.
Il comando cutree(), permette di estrarre una partizione dallinsieme di partizioni successive
create da hclust, specificando o il numero di gruppi o il livello di dissomiglianza a cui tagliare il
dendrogramma:
?cutree
Analisi dei dati a.a. 2015/2016

cutree(tree, k = NULL, h = NULL)


Dati in input:
tree: il risultato prodotto dal comando hclust;
k : il numero di gruppi da estrarre;
h: il livello di dissimilarit.
In output cutree restituisce un vettore che specifica il gruppo dappartenenza di ciascuna
osservazione.
Vediamo come si ripartiscono le unit nei due casi (k=3 e k=2)
# Estraiamo la partizione in 3 cluster
h1.k3<-cutree(h1,k=3)
h1.k3
[1] 1 2 2 2 1 1 1 3 1 3 1 3 1 3 1 2 2 1
plot(flower2, type="n", main="analisi legame complete k=3", xlim=c(0,200),
ylim=c(0,60))
text(flower2, labels=rownames(flower), col=h1.k3)

# Estraiamo la partizione in 2 cluster


h1.k2<-cutree(h1,k=2)
h1.k2
[1] 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 1
plot(flower2, type="n", main="analisi legame complete k=2", xlim=c(0,200),
ylim=c(0,60))
text(flower2, labels=rownames(flower), col=h1.k2)

analisi legame completo k=2

17
4

16

3
2
distance

6
14
12
8

10

17
4

16

3
2

6
14
12
15
7
59
1
13
18 11

15
7
59
1
13
18 11

10 20 30 40 50 60

10 20 30 40 50 60

10

distance

analisi legame completo k=3

50

100

150

200

50

100

150

200

height

height

Nella partizione in 3 gruppi sembra che le piante siano suddivise principalmente sulla base
dellaltezza piuttosto che sulla base della distanza. Infatti il primo gruppo (nero) costituito da
piante daltezza<50cm, il secondo gruppo (rosso) da piante sopra i 100 cm e infine il terzo
gruppo (verde) da piante con altezza intermedia. La partizione in due cluster unisce il gruppo 3
nel gruppo 1 suddividendo cos le piante a seconda che siano maggiori o minori di 100 cm.
Le variabili non usate in fase di definizione della partizione ottima possono essere analizzate in
fase di interpretazione e se ne pu studiare il comportamento nei diversi cluster.
Ripetiamo lanalisi utilizzando il metodo del legame medio
Analisi dei dati a.a. 2015/2016

h2<-hclust(dissim.eu, method="average")
h2
Call:
hclust(d = dissim.eu, method = "average")
Cluster method
: average
Distance
: euclidean
Number of objects: 18
plot(h2)

Confrontando il dendogramma col precedente, notiamo che non c pressoch differenza tra
i due. Infatti portano alla stessa partizione sia che si scelgano 2 o 3 gruppi.
# partizione in 3 gruppi
h2.k3<-cutree(h2,k=3)
plot(flower2, type="n", main="analisi legame medio k=3", xlim=c(0,200),
ylim=c(0,60))
text(flower2, labels=rownames(flower), col=h2.k3)
# partizione in 2 gruppi
h2.k2<-cutree(h2,k=2)
plot(flower2, type="n", main="analisi legame medio k=2", xlim=c(0,200),
ylim=c(0,60))
text(flower2, labels=rownames(flower), col=h2.k2)

Analisi dei dati a.a. 2015/2016

analisi legame medio k=2

17
4

16

3
2

distance

6
14
12
8

10

17
4

16

3
2

6
14
12
15
7
59
1
13
18 11

15
7
59
1
13
18 11

10 20 30 40 50 60

10 20 30 40 50 60

10

distance

analisi legame medio k=3

50

100

150

200

50

100

150

200

height

height

Infine proviamo a utilizzare il metodo di ward:


h3<-hclust(dissim.eu, method="ward.D2")
h3
Call:
hclust(d = d1, method = "ward")
Cluster method
: ward
Distance
: euclidean
Number of objects: 18
plot(h3)

Questo metodo mette ancora pi in evidenza lipotesi che i gruppi possano essere 2 o al
massimo 3. Inoltre sono pi numerose le unit che convergono nel gruppo di sinistra rispetto a
quanto accadeva con i due metodi precedenti.
#partizione in 2 cluster
h3.k2<-cutree(h3,k=2)
plot(flower2, type="n", main="analisi gerarchica metodo di ward", xlim=c(0,200),
Analisi dei dati a.a. 2015/2016

ylim=c(0,60))
text(flower2, labels=rownames(flower), col=h3.k2)
# partizione in 3 cluster
h3.k3<-cutree(h3,k=3)
plot(flower2, type="n", main="analisi gerarchica metodo di ward", xlim=c(0,200),
ylim=c(0,60))
text(flower2, labels=rownames(flower), col=h3.k3)

In questa partizione la pianta 10 rientra nel gruppo rosso, ovvero le piante sembrano essere
suddivise oltre che rispetto allaltezza anche rispetto alla distanza.
B) Analisi dei gruppi con il metodo partitivo delle k medie
Il commando kmeans() permette di condurre lanalisi dei gruppi attraverso il metodo partitivo
delle k medie.
E necessario definire a priori il numero di cluster e la partizione ottima viene individuata
attraverso un procedimento iterativo, che richiede che vengano assegnati valori iniziali ai
centroidi di ciascun gruppo della partizione.
?kmeans
kmeans(x, centers, iter.max = 10, nstart = 1,algorithm = c("Hartigan-Wong",
"Lloyd", "Forgy","MacQueen"))
Dati da fornire in input:
x: la matrice dei dati
centers: il numero k di gruppi da creare o un vettore di lunghezza k contenente i valori iniziali
dei centroidi.
iter.max: numero massimo di iterazioni da eseguire.
algorithm: il tipo di algoritmo da utilizzare per ricavare la partizione.
Dati che restituisce in output:
cluster: un vettore di lunghezza n che indica il cluster a cui ogni osservazione assegnata;
centers: la matrice dei centroidi kxp (p colonne quante sono le variabili utilizzate)
withinss: la somma delle distanze (=quadrati delle differenze) dal centroide per ciascun
cluster.
Analisi dei dati a.a. 2015/2016

size: il numero di osservazioni per ciascun cluster


Supponiamo di sapere che i gruppi siano 3, ma di non conoscerne i centroidi.
#Applichiamo il metodo delle k medie per individuare una partizione a 3
gruppi
k1<-kmeans(flower2, centers=3, iter.max=20, algorithm="Hartigan-Wong")
k1
K-means clustering with 3 clusters of sizes 9, 4, 5
Cluster means:
height distance
1 32.22222 17.22222
2 162.50000 55.00000
3 99.00000 36.00000
Clustering vector:
[1] 1 2 2 3 1 1 1 3 1 3 1 3 1 3 1 2 2 1
Within cluster sum of squares by cluster:
[1] 1761.111 1975.000 2490.000
(between_SS / total_SS = 89.6 %)
Available components:
[1] "cluster"
"tot.withinss"
[6] "betweenss"

"centers"

"totss"

"withinss"

"size"

"iter"

"ifault"

Dalloutput notiamo che il gruppo 1 ha numerosit doppia rispetto gli altri due gruppi.
Analizzando i centroidi notiamo che il gruppo 1 quello con altezza e distanza piccole, il
secondo gruppo caratterizzato da piante con grande altezza e grande distanza, mentre il
terzo gruppo caratterizzato da dimensioni medie.
#rappresentazione grafica dei gruppi costruiti e dei loro centroidi
plot(flower2, type="n", main="analisi con metodo k-means, k=3")
text(flower2, labels=rownames(flower), col=k1$cluster)
points(k1$centers, col=c(1,2,3), pch=8, lwd=3, cex=2)

60

analisi con metodo k-means, k=3

40

17
4

16

3
2

30
20
10

distance

50

10

14
12
15
7
59
1
13
18 11
50

100

150

200

height

Analisi dei dati a.a. 2015/2016

La partizione molto simile a quella che si trovava con il metodo del legame medio, ma la
pianta 4 ricade questa volta nel gruppo 3 (verde).
#Proviamo a ripetere lanalisi ponendo il numero dei cluster pari a 2:
k2<-kmeans(flower2, centers=2, iter.max=20, algorithm="Hartigan-Wong")
k2
K-means clustering with 2 clusters of sizes 12, 6
Cluster means:
height distance
1 46.66667
18.75
2 145.83333
55.00
Clustering vector:
[1] 1 2 2 2 1 1 1 1 1 2 1 1 1 1 1 2 2 1
Within cluster sum of squares by cluster:
[1] 9672.917 5670.833
(between_SS / total_SS = 74.4 %)
#rappresentazione grafica dei gruppi costruiti e dei loro centroidi
plot(flower2, type="n", main="analisi con metodo k-means, k=2")
text(flower2, labels=rownames(flower), col=k2$cluster)
points(k2$centers, col=c(1,2), pch=8, lwd=3, cex=2)

60

analisi con metodo k-means, k=2

40

17
4

16

3
2

30
10

20

distance

50

10

14
12
15
7
59
1
13
18 11
50

100

150

200

height

Le osservazioni che prima appartenevano al gruppo 3, ovvero le piante con caratteristiche


medie, adesso sono ripartite negli altri due gruppi: nel gruppo 1 sono cadute le piante 14 12 e 8
con distanza piccola, mentre nel gruppo due cadono le piante 10 e 4 con distanza grande.
Abbiamo perci:
gruppo 1 (nero) caratterizzato da distanza<=40 cm e altezza <=100cm
gruppo 2 (rosso) caratterizzato da distanza >40cm e altezza >=100cm
Per definire il numero di gruppi pi appropriato pu essere utile valutare landamento della
somma delle devianze entro i gruppi al variare di k.
#calcolo somma devianze entro allaumentare di k:
Analisi dei dati a.a. 2015/2016

n<- nrow(flower2)
wss<- rep(0,5)
wss[1] <-(n-1)*sum(apply(flower2,2,var))
for(i in 2:5){
wss[i] <- sum(kmeans(flower2, iter.max=20,centers=i)$withinss)
}
wss
[1] 59936.111 15343.750 6226.111 5068.750 3257.917
Con un gruppo la somma circa 60000, gi con 2 si riduce di circa 4 volte, e con 3 arriva ad
essere circa 1/10 di quella iniziale.
Allaumentare dei gruppi la devianza entro diminuisce, ma poich i diversi gruppi vanno
interpretati e devono avere un senso, necessario individuare quel numero k che sia il miglior
compromesso tra un numero di gruppi che consenta una buona interpretazione e una
devianza entro contenuta.
#Rappresentazione grafica dellandamento della somma delle devianze entro:
plot(wss, type="b", xlab="numero di gruppi", ylab="wss", main=" devianze
entro")

Dal grafico si pu notare che, superata la soglia k=3, il guadagno in riduzione della devianza
entro talmente piccolo che non vale la pena aumentare il numero di cluster.
C) Cluster analisi con metodi misti: metodo di ward + k medie
Supponiamo di aver condotto lanalisi gerarchica aggregativa con metodo di ward e di aver
ricavato 3 come numero di cluster. A questo punto possiamo applicare il metodo delle k medie
inizializzando i valori dei centroidi con i centroidi dei 3 gruppi ottenuti con ward.
# 1. Richiamiamo la partizione in 3 gruppi dallinsieme di quelle create col
metodo di ward:
h3.k3
[1] 1 2 2 2 1 1 1 3 1 2 1 3 1 3 1 2 2 1
# 2. Calcoliamo i centroidi dei 3 gruppi
cent<- NULL
Analisi dei dati a.a. 2015/2016

for(k in 1:3){
cent
height
[1,] 32.22222
[2,] 145.83333
[3,] 90.00000

cent <- rbind(cent, colMeans(flower2[h3.k3==k, ])) }


distance
17.22222
55.00000
23.33333

# 3. Applichiamo il metodo delle k- medie:


k3<-kmeans(flower2, centers=cent)
k3
K-means clustering with 3 clusters of sizes 9, 4, 5
Cluster means:
height distance
1 32.22222 17.22222
2 162.50000 55.00000
3 99.00000 36.00000
Clustering vector:
[1] 1 2 2 3 1 1 1 3 1 3 1 3 1 3 1 2 2 1
Within cluster sum of squares by cluster:
[1] 1761.111 1975.000 2490.000
(between_SS / total_SS = 89.6 %)
plot(flower2, type="n", main="analisi con metodi misti: ward + k-means")
text(flower2, labels=rownames(flower), col=k3$cluster)
points(k3$centers, col=c(1,2,3), pch=8, lwd=3, cex=2)

In questo caso i risultati sono esattamente uguali a quello ottenuti con il metodo delle k-medie
applicato direttamente ai dati.
I metodi misti in genere si utilizzano quando si hanno molte unit: si conduce lanalisi
gerarchica su un sottoinsieme di osservazioni, si stabilisce il numero di cluster e si estrae la
partizione corrispondente. Si determinano i centroidi dei gruppi cos individuati. A partire da tali
centroidi, si applica il metodo delle k-medie a tutte le unit.

Analisi dei dati a.a. 2015/2016

D) Analisi dei gruppi a partire da tutte le variabili a disposizione


Fino ad ora abbiamo utilizzato solo 2 delle 8 variabili a disposizione nel dataset. Usiamo ora
tutte le informazioni in nostro possesso per descrivere le unit e individuare una partizione delle
n unit. Poich le variabili del dataset hanno diversa natura dobbiamo utilizzare lindice di
dissomiglianza di Gower.
Il comando dist() calcola la matrice di dissimilarit solo su variabili numeriche, dobbiamo
perci utilizzare unaltra funzione contenuta nel pacchetto cluster, il commando daisy() che
calcola la matrice di dissimilarit su qualsiasi tipo di variabili.
#scarichiamo il pacchetto cluster
library(cluster)
?daisy
dist(x, method = "euclidean", diag = FALSE, upper = FALSE, p = 2)
Dati da fornire in input:
x: matrice dei dati;
metric: misura di distanza o dissomiglianza da usare, le possibili sono: euclidean,
Manhattan, Gower.
stand: TRUE se si vuole standardizzare i dati prima di calcolare la matrice di dissimilarit;
type: per specificare la natura delle variabili in x, per esempio utile per specificare se una
variabile dicotomica simmetrica o asimmetrica;
Calcoliamo matrice di dissimilarit utilizzando lindice di Gower
La variabile tuber indica se la pianta un tubero o meno, quindi un esempio di variabile
dicotomica in cui c asimmetria nei significati di risposte dello stesso tipo a seconda che la
modalit sia 0 o 1. Infatti, se due piante presentano modalit 1 c somiglianza perch
entrambe sono tuberi, mentre il fatto di presentare entrambe modalit 0 (cio nessuna delle
due un tubero) non contribuisce ad aumentare la somiglianza.
dissim.gow<-daisy(flower, type = list(asymm = 3), metric="gower")
summary(dissim.gow)
153 dissimilarities, summarized :
Min. 1st Qu.
Median
Mean
3rd Qu.
Max.
0.14179 0.39036 0.48288 0.48653 0.58652 0.88754
Metric : mixed ; Types = N, N, A, N, O, O, I, I
Number of objects : 18
# partizione in gruppi con hclust e metodo del legame medio:
h8.med<-hclust(dissim.gow, method="average")
h8.med
Call:
hclust(d = dissim.gow, method = "average")
Cluster method
: average
Number of objects: 18
plot(h8.med)

Analisi dei dati a.a. 2015/2016

15

10

9
13
1
6
7
8
18

12
14

16
17

11

0.1 0.2 0.3 0.4 0.5 0.6

Height

Cluster Dendrogram

dissim.gow
hclust (*, "average")
Dal dendrogramma notiamo che solo nella soluzione a 2 gruppi losservazione 3 parte di un
gruppo che contiene altre unit. Fino alla partizione con 3 gruppi tale unit rimane un gruppo
a se stante.
#Visualizziamo la partizione in 2 gruppi
h8.med.k2<-cutree(h8.med,k=2)
h8.med.k2
[1] 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1
summary(flower[h8.med.k2==1,])
winter shadow tuber color soil
0:8
0: 5
0:8
1:2
1:2
1:7
1:10
1:7
2:2
2:8
3:3
3:5
4:5
5:3
summary(flower[h8.med.k2==2,])
winter shadow tuber color soil
0:0
0:3
0:3
1:0
1:1
1:3
1:0
1:0
2:2
2:2
3:0
3:0
4:1
5:0

preference
1
:1
2
:1
4
:1
5
:1
6
:1
7
:1
(Other):9

height
Min.
: 20.00
1st Qu.: 25.00
Median : 45.00
Mean
: 62.33
3rd Qu.: 95.00
Max.
:150.00

preference
3
:1
17
:1
18
:1
1
:0
2
:0
4
:0
(Other):0

height
Min.
:150.0
1st Qu.:150.0
Median :150.0
Mean
:166.7
3rd Qu.:175.0
Max.
:200.0

distance
Min.
:10.00
1st Qu.:15.00
Median :20.00
Mean
:25.67
3rd Qu.:35.00
Max.
:60.00
distance
Min.
:50.00
1st Qu.:55.00
Median :60.00
Mean
:56.67
3rd Qu.:60.00
Max.
:60.00

Il gruppo 1 molto eterogeneo, mentre il gruppo 2 costituito da 3 piante che resistono


allinverno, che non hanno bisogno dombra, non sono tuberi, hanno fiori gialli o rossi, crescono
in un terreno normale.

Analisi dei dati a.a. 2015/2016