17 pages
Italiano

Fiche TD avec le logiciel tdr23

Obtenez un accès à la bibliothèque pour le consulter en ligne
En savoir plus

Description


  • fiche - matière potentielle : td avec le logiciel


Fiche TD avec le logiciel : tdr23 ————— Dendrogrammmes D. Chessel, A.B. Dufour & J.R. Lobry ————— Introduction a la representation d'une hierarchie de partitions. Table des matieres 1 Introduction 1 2 Distances et dendrogrammes 2 2.1 Calculer une matrice de distances . . . . . . . . . . . . . . . . . . 2 2.2 Tracer un dendrogramme . . . . . . . . . . . . . . . . . . . . . . 5 3 Dendrogrammes et classification 10 4 Simulations 11 5 Critere de Ward 13 References 17 1 Introduction La variance s'ecrit aussi : varp (x) = n∑ i=1 pi (xi ? x¯) 2 = 12 n∑ i=1 n∑ j=1 pipj (xi ? xj) 2 var (x) = 1n n∑ i=1 (xi ? x¯) 2 = 12n2 n∑ i=1 n∑ j=1 (xi ? xj) 2 D'ou la generalisation (inertie) : Iner (X) = 1 n n∑ i=1 ?xi ? x¯? 2 = 1 2n2 n∑ i=1 n∑ j=1 ?xi ? xj? 2 D'ou la generalisation (heterogeneite) : Heter (?) = 1 2n2 n∑ i=1 n∑ j=1 d2ij 1

  • rutilus rutilus

  • dist package

  • alburnus alburnus

  • distance matrix

  • doubs

  • leuciscus leuciscus

  • anguilla anguilla

  • tinca tinca

  • gobio gobio

  • phoxinus phoxinus


Sujets

Informations

Publié par
Nombre de lectures 30
Langue Italiano

Fiche TD avec le logiciel :tdr23
—————
Dendrogrammmes
D. Chessel, A.B. Dufour & J.R. Lobry
—————
Introduction a` la repr´esentation d’une hi´erarchie de partitions.
Table des mati`eres
1 Introduction 1
2 Distances et dendrogrammes 2
2.1 Calculer une matrice de distances . . . . . . . . . . . . . . . . . . 2
2.2 Tracer un dendrogramme . . . . . . . . . . . . . . . . . . . . . . 5
3 Dendrogrammes et classification 10
4 Simulations 11
5 Crit`ere de Ward 13
R´ef´erences 17
1 Introduction
La variance s’´ecrit aussi :
n n nP PP2 21var (x) = p (x −x¯) = p p (x −x )p i i i j i j2
i=1 i=1j=1
n n nP PP2 21 1var(x) = (x −x¯) = (x −x )i 2 i jn 2n
i=1 i=1j=1
D’ou` la g´en´eralisation (inertie) :
n n nX XX1 12 2
Iner(X) = kx −x¯k = kx −x ki i j2n 2n
i=1 i=1 j=1
D’ou` la g´en´eralisation (h´et´erog´en´eit´e) :
n nXX1 2Heter(Ω) = dij22n
i=1 j=1
1D. Chessel, A.B. Dufour & J.R. Lobry
2ou` Ω est une collection de n objets et d le carr´e de la distance de l’objet i `aij
l’objet j. On peut faire de la statistique avec des matrices de distances entre
objets.
2 Distances et dendrogrammes
2.1 Calculer une matrice de distances
´Etudierlafonctiondist()delalibrairiestats.Extraitdeladocumentation
(?dist) :
dist package:stats R Documentation
Distance Matrix Computation
Description:
This function computes and returns the distance matrix computed by
using the specified distance measure to compute the distances
between the rows of a data matrix.
R´ecup´erer le jeu de donn´ees doubs [4] de la biblioth`eque ade4 :
library(ade4)
data(doubs)
Consulter la documentation (?doubs) :
doubs package:ade4 R Documentation
Pair of Ecological Tables
Description:
This data set gives environmental variables, fish species and
spatial coordinates for 30 sites.
Format:
doubs is a list with 3 components.
mil is a data frame with 30 rows (sites) and 11 environmental
variables.
poi is a data frame with 30 rows (sites) and 27 fish species.
xy is a data frame with 30 rows (sites) and 2 spatial
coordinates.
30 sites sont r´eguli`erement dispos´es le long du Doubs, affluent de la Saˆone qui
passe a` Besancon¸ . A gauche, un sch´ema de la r´egion indique la position du
Doubs :
Logiciel R version 2.6.1 (2007-11-26) – tdr23.rnw – Page 2/17 – Compil´e le 2008-01-26
Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/fichestd/tdr23.pdf
''D. Chessel, A.B. Dufour & J.R. Lobry
24
23
25
22 16
1 21 17 18
20 19
15 26
14
27
13 28
29
12
30 11
Aval
10
9
8
7
6
5
4
3 2 Amont 1
Refaire la figure de droite avec :
margesordi <- par("mar")
par(mar = c(0.1, 0.1, 0.1, 0.1))
s.traject(doubs$xy, grid = F)
s.label(doubs$xy, add.plot = T)
text(0, 10, "Amont", cex = 2, pos = 4)
text(0, 120, "Aval", cex = 2, pos = 4)
par(mar = margesordi)
On peut s’exercer a` l’´etiquetage des figures. Le plus simple est (ci-dessous, a`
gauche) :
plot(doubs$xy)
text(doubs$xy, label = rownames(doubs$xy), pos = 4)
Ce n’est pas tr`es joli `a cause des superpositions. On raffine avec la fonction
interactive identify() en cliquant (en bas, a` gauche, en haut ou `a droite pour
choisir la position du label) de quelques points d’int´erˆet.
txtst <- identify(doubs$xy, pos = TRUE)
Vous devez obtenir un r´esultat du type (ci-dessous `a droite) :
24
23 23
25 16
22 22 1716 251721 18
20 19 15
26 2014 1526
27
13 132728
29
29
12 12
30 11
11Aval
10 9
109
8 8
7 7
6
5 5
4 4
3 32
1 Amont 1
0 50 100 150 200 250 0 50 100 150 200 250
x x
Int´eressons nous maintenant au tableau doubs$poi :
poi <- doubs$poi
names(poi)
[1] "CHA" "TRU" "VAI" "LOC" "OMB" "BLA" "HOT" "TOX" "VAN" "CHE" "BAR" "SPI" "GOU"
[14] "BRO" "PER" "BOU" "PSO" "ROT" "CAR" "TAN" "BCO" "PCH" "GRE" "GAR" "BBO" "ABL"
[27] "ANG"
Logiciel R version 2.6.1 (2007-11-26) – tdr23.rnw – Page 3/17 – Compil´e le 2008-01-26
Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/fichestd/tdr23.pdf
llllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
y
0 50 100 150 200
y
0 50 100 150 200D. Chessel, A.B. Dufour & J.R. Lobry
1 CHA chabot Cottus gobio
2 TRU truite fario Salmo trutta fario
3 VAI vairon Phoxinus phoxinus
4 LOC loche franche Nemacheilus barbatulus
5 OMB ombre commun Thymallus thymallus
6 BLA blageon Leuciscus soufia
7 HOT hotu Chondrostoma nasus
8 TOX toxostome Costoma toxostoma
9 VAN vandoise Leuciscus leuciscus
10 CHE chevesne Leuciscus cephalus
11 BAR barbeau Barbus fluviatilis
12 SPI spirlin Alburnoides bipunctatus
13 GOU goujon Gobio gobio
14 BRO brochet Esox Lucius
15 PER perche Perca fluviatilis
16 BOU bouvi`ere Rodeus sericeus
17 PSO perche soleil Lepomis gibbosus
18 ROT rotengle Scardinius erythrophtalmus
19 CAR carpe Cyprinus carpio
20 TAN tanche Tinca tinca
21 BCO brˆeme commune Abramis brama
22 PCH poisson-chat Ictalurus melas
23 GRE gr´emille Gymnocephalus cernua
24 GAR gardon Rutilus rutilus
25 BBO brˆeme bordeli`ere Blicca bjoerkna
26 ABL ablette Alburnus alburnus
27 ANG anguille Anguilla anguilla
Tab. 1 – Code des esp`eces du tableau doubs$poi.
Logiciel R version 2.6.1 (2007-11-26) – tdr23.rnw – Page 4/17 – Compil´e le 2008-01-26
Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/fichestd/tdr23.pdfD. Chessel, A.B. Dufour & J.R. Lobry
On a affaire a` 27 esp`eces de Poissons (tableau 1). La cinqui`eme est l’ombre
commun. Vous pouvez chercher la photo des autres.
http://www.peche.org/poissons_eau_douce/ombre.jpg
V´erifions a` la main le calcul des distances de dist(), par exemple entre la
premi`ere et la deuxi`eme station :
sum((poi[1, ] - poi[2, ])^2)
[1] 29
dpoi <- dist(poi)
as.matrix(dpoi)[1, 2]^2
[1] 29
Faire la mˆeme v´erification entre la troisi`eme et la quatri`eme station. Etudier les
distances disponibles pour les donn´ees en pr´esence-absence (dist.binary()).
2.2 Tracer un dendrogramme
Utiliser la fonction hclust() :
h0 <- hclust(d = dpoi, method = "ward")
plot(h0, main = "Dendrogramme des stations \n methode de Ward",
xlab = "Les stations", sub = "")
Logiciel R version 2.6.1 (2007-11-26) – tdr23.rnw – Page 5/17 – Compil´e le 2008-01-26
Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/fichestd/tdr23.pdfD. Chessel, A.B. Dufour & J.R. Lobry
Dendrogramme des stations
methode de Ward
Les stations
Ce graphique est un dendrogramme, repr´esentation d’une hi´erarchie de parti-
tions valu´ee.
– Hi´erarchie de partitions
– Agr´egation hi´erarchique
– Distances entre groupes
w <- c(0, 1, 2.1, 3.3)
w <- data.frame(w)
w
w
1 0.0
2 1.0
3 2.1
4 3.3
dw <- dist(w)
dw
1 2 3
2 1.0
3 2.1 1.1
4 3.3 2.3 1.2
as.matrix(dw)
1 2 3 4
1 0.0 1.0 2.1 3.3
2 1.0 0.0 1.1 2.3
3 2.1 1.1 0.0 1.2
4 3.3 2.3 1.2 0.0
Logiciel R version 2.6.1 (2007-11-26) – tdr23.rnw – Page 6/17 – Compil´e le 2008-01-26
Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/fichestd/tdr23.pdf
Height
0 20 40 60 80 100
29
30
22
27
28
26
20
21
9
24
25
1
8
23
14
12
13
10
11
2
3
7
4
6
15
16
5
19
17
18D. Chessel, A.B. Dufour & J.R. Lobry
Saut minimum = lien simple = single linkage = single
d(A,B) = Min(d(a,b))
Les objets hclust :
hclust(dw, "single")
Call:
hclust(d = dw, method = "single")
Cluster method : single
Distance : euclidean
Number of objects: 4
unclass(hclust(dw, "single"))
$merge
[,1] [,2]
[1,] -1 -2
[2,] -3 1
[3,] -4 2
$height
[1] 1.0 1.1 1.2
$order
[1] 4 3 1 2
$labels
NULL
$method
[1] "single"
$call
hclust(d = dw, method = "single")
$dist.method
[1] "euclidean"
plot(hclust(dw, "single"), hang = -1)
Cluster Dendrogram
dw
hclust (*, "single")
Agr´egation par le diam`etre = lien complet = complete linkage = complete
d(A,B) = Max(d(a,b))
unclass(hclust(dw, "complete"))
Logiciel R version 2.6.1 (2007-11-26) – tdr23.rnw – Page 7/17 – Compil´e le 2008-01-26
Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/fichestd/tdr23.pdf
Height
1.00 1.20
4
3
1
2D. Chessel, A.B. Dufour & J.R. Lobry
$merge
[,1] [,2]
[1,] -1 -2
[2,] -3 -4
[3,] 1 2
$height
[1] 1.0 1.2 3.3
$order
[1] 1 2 3 4
$labels
NULL
$method
[1] "complete"
$call
hclust(d = dw, method = "complete")
$dist.method
[1] "euclidean"
plot(hclust(dw, "complete"))
Cluster Dendrogram
dw
hclust (*, "complete")
Lien moyen = UGPMA = Unweighted Pair Group Method of Agregation =
average
d(A,B) = Mean(d(a,b))
plot(hclust(dw, "average"), han = -1)
unclass(hclust(dw, "average"))
$merge
[,1] [,2]
[1,] -1 -2
[2,] -3 -4
[3,] 1 2
$height
[1] 1.0 1.2 2.2
$order
[1] 1 2 3 4
$labels
NULL
$method
[1] "average"
$call
hclust(d = dw, method = "average")
$dist.method
[1] "euclidean"
Logiciel R version 2.6.1 (2007-11-26) – tdr23.rnw – Page 8/17 – Compil´e le 2008-01-26
Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/fichestd/tdr23.pdf
Height
1.0 1.5 2.0 2.5 3.0
1
2
3
4D. Chessel, A.B. Dufour & J.R. Lobry
Cluster Dendrogram
dw
hclust (*, "average")
Agr´egation de Ward = Moment d’ordre 2 = Inertie minimale
Pour en savoir plus, consulter l’excellent ouvrage de Lebart, Morineau et Piron
[3].
old.par <- par(no.readonly = TRUE)
par(mfrow = c(2, 2))
plot(hclust(dpoi, "single"), cex = 1.5) "average"), cex = 1.5) "complete"), cex = 1.5) "ward"), cex = 1.5)
par(old.par)
Cluster Dendrogram Cluster Dendrogram
dpoi dpoi
hclust (*, "single") hclust (*, "average")
Cluster Dendrogram Cluster Dendrogram
dpoi dpoi
hclust (*, "complete") hclust (*, "ward")
Logiciel R version 2.6.1 (2007-11-26) – tdr23.rnw – Page 9/17 – Compil´e le 2008-01-26
Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/fichestd/tdr23.pdf
Height Height
0 5 10 15 20 2 3 4 5 6 7 8
29 5
30 30
22 29
27 26
28 27
26 28
20 22
21 20
5 21
16 9
19 16
17 15
18 10
9 14
24 13
25 11
1 12
8 2
Height
23 3
14 7
15 4 1.0 1.4 1.8 2.2
11 6
12 24
1
13 25
10 1
2 8
3 23
7 19
4 17
6 18
2
Height Height
0 20 40 60 80 100 2 4 6 8 10 12 14
3
29 30
30 26
22 20
27 21
28 29
26 22
20 27 4
21 28
9 9
24 1
25 8
1 23
8 24
23 25
14 13
12 14
13 4
10 6
11 12
2 2
3 3
7 7
4 10
6 11
15 15
16 16
5 5
19 19
17 17
18 18D. Chessel, A.B. Dufour & J.R. Lobry
Extrait de la documentation (?hclust) :
A number of different clustering methods are provided. _Ward s_
minimum variance method aims at finding compact, spherical
clusters. The _complete linkage_ method finds similar clusters.
The _single linkage_ method (which is closely related to the
minimal spanning tree) adopts a friends of friends clustering
strategy. The other methods can be regarded as aiming for clusters
with characteristics somewhere between the single and complete
link methods.
3 Dendrogrammes et classification
Couper un arbre se fait avec cutree(). On peut couper a` la hauteur voulue
ou pour un nombre de classes choisi. La fonction m´erite bien son nom.
parti <- cutree(hclust(dpoi, "ward"), h = 20)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
1 2 2 2 3 2 2 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 1 1 1 4 4 4
29 30
4 4
s.traject(doubs$xy, clab = 0)
s.label(doubs$xy, lab = as.character(parti), add.p = T, cla = 0.75)
round(data.frame(lapply(split(poi, parti), function(x) apply(x,
2, mean))), dig = 2)
X1 X2 X3 X4
CHA 0.00 0.8 1.17 0.00
TRU 0.50 4.1 2.00 0.12
VAI 0.17 4.4 3.33 0.38
LOC 0.50 3.8 4.00 1.00
OMB 0.00 1.0 0.67 0.12
BLA 0.5 2.17
HOT 0.17 0.0 0.67 1.62
TOX 0.00 0.0 2.33 1.50
VAN 0.17 0.4 3.33 2.25
CHE 1.50 0.9 2.17 3.12
BAR 0.00 0.1 2.00 3.75
SPI 0.0 1.67 2.12
GOU 0.50 0.4 2.17 4.38
BRO 0.17 0.5 1.33 3.25
PER 0.00 0.3 1.83 2.75
BOU 0.0 0.83 3.50
PSO 0.17 0.0 0.67 3.00
ROT 0.0 0.50 2.12
CAR 0.00 0.0 0.67 2.62
TAN 0.17 0.3 1.50 4.00
BCO 0.00 0.0 0.17 3.12
PCH 0.0 0.00 2.25
GRE 0.50 0.0 0.33 4.12
GAR 1.33 0.1 2.50 4.88
BBO 0.17 0.0 0.17 3.62
ABL 1.67 0.0 1.17 5.00
ANG 0.00 0.0 0.50 3.00
Logiciel R version 2.6.1 (2007-11-26) – tdr23.rnw – Page 10/17 – Compil´e le 2008-01-26
Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/fichestd/tdr23.pdf
'''