Initiation à l’analyse factorielle des correspondances

Pearson
Page 1 sur 16Lecteur de document UniversityLib

Initiation à l’analyse factorielle des correspondances

Statistics · course

Voir tous les documents en mathématiques

Fiche TD avec le logiciel

: tdr620

————— Initiation à l’analyse factorielle des correspondances

A.B. Dufour & M. Royer & J.R. Lobry —————

Dans cette fiche, on étudie l’Analyse Factorielle des Correspondances. Cette technique statistique permet de réduire le nombre de variables, afin d’obtenir une représentation graphique des tableaux de contin- gence. Elle vise à y rassembler la quasi-totalité de l’information ini- tiale, en s’attachant aux correspondances entre les caractères.

Table des matières

1 Exemple introductif

1.1 Les données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Définition d’un score a priori . . . . . . . . . . . . . . . . . . . . 1.3 Notion de score optimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Représentations graphiques

2 Table de Contingence

2.1 Tableau des données . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Tableaux des profils lignes et colonnes . . . . . . . . . . . . . . . 2.3 Lien avec le test du χ2 d’indépendance . . . . . . . . . . . . . . .

3 Compréhension des résultats d’une AFC

3.1 Le tableau analysé . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Les pondérations . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 La matrice diagonalisée . . . . . . . . . . . . . . . . . . . . . . . 3.4 Les coordonnées des lignes . . . . . . . . . . . . . . . . . . . . . . 3.5 Les coordonnées des colonnes . . . . . . . . . . . . . . . . . . . . 3.6 Lien avec le Khi-Deux . . . . . . . . . . . . . . . . . . . . . . . . 3.7 Carte Factorielle sur les axes 1 et 2 . . . . . . . . . . . . . . . . .

4 Aides à l’interprétation

4.1 Décomposition de l’inertie totale . . . . . . . . . . . . . . . . . . 4.2 Contributions absolues des lignes (resp. des colonnes) . . . . . . . 4.3 Contributions relatives des lignes (resp. des colonnes) . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Contributions relatives cumulées

2 2 3 4 4

5 5 8 9

10 10 10 11 11 12 12 13

13 13 14 15 15

1

A.B. Dufour & M. Royer & J.R. Lobry

5 Application

Références

1 Exemple introductif

1.1 Les données

16

16

L’exemple porte sur la couleur des yeux et la couleur des cheveux de 592 étudiants. Les données ont été collectées dans le cadre d’un projet de classe par les étudiants d’un cours de statistique élémentaire à l’Université de Delaware [3].

snee74 <- read.table("http://pbil.univ-lyon1.fr/R/donnees/snee74.txt", header=TRUE) names(snee74)

[1] "cheveux" "yeux"

"sexe"

head(snee74)

cheveux

Blond Noir

yeux Noir Marron

sexe Male 1 Bleu Femelle 2 3 Male Bleu 4 Marron Marron Femelle Male 5 Male 6

Roux Marron Bleu

Marron

La couleur des cheveux est définie par 4 modalités : blond, marron, noir et roux.

cheveux <- snee74$cheveux summary(cheveux) Blond Marron 286

Noir 108

Roux 71

127

La couleur des yeux est définie par 4 modalités : bleu, marron, noisette et vert.

yeux <- snee74$yeux summary(yeux)

Bleu 215

Marron Noisette 93

220

Vert 64

Le lien entre les deux couleurs s’obtient à l’aide d’un tableau croisé qui ventile la population entre les modalités de ces deux variables qualitatives. C’est une table de contingence.

(table(yeux,cheveux) -> couleurs)

cheveux

yeux

Bleu Marron Noisette Vert

Blond Marron Noir Roux 17 84 26 119 14 54 14 29

20 68 15 5

94 7 10 16

Par commodité, on transforme cet objet en un data.frame :

(dfcouleurs <- data.frame(unclass(couleurs)))

Bleu Marron Noisette Vert

Blond Marron Noir Roux 17 84 26 119 14 54 14 29

20 68 15 5

94 7 10 16

version 3.4.1 (2017-06-30) – Page 2/16 – Compilé le 2017-09-27

URL : https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf

A.B. Dufour & M. Royer & J.R. Lobry

1.2 Définition d’un score a priori

On va affecter a priori un score à chacune des colonnes (couleur des cheveux), par exemple (1,-1,-1,1), qui opère une opposition entre cheveux foncés (Marron, Noir) et clairs (Blond, Roux).

scorecheveux <- c(1,-1,-1,1) names(scorecheveux) <- colnames(couleurs) scorecheveux Blond Marron -1

Roux 1

Noir -1

1

Pour chaque ligne de la table de contingence (couleur des yeux), une fréquence observée correspond à chaque couleur de cheveux. Ainsi, pour la modalité yeux Bleu on obtient : dfcouleurs <- data.frame(unclass(couleurs)) dfcouleurs["Bleu",]/sum(dfcouleurs["Bleu",])

Roux Bleu 0.4372093 0.3906977 0.09302326 0.07906977

Marron

Blond

Noir

Il est alors possible de calculer le score moyen pour la modalité yeux Bleu :

dfcouleurs["Bleu",]/sum(dfcouleurs["Bleu",]) -> yeux.bleu yeux.bleu*scorecheveux Blond

Roux Bleu 0.4372093 -0.3906977 -0.09302326 0.07906977

Marron

Noir

sum(yeux.bleu*scorecheveux)

[1] 0.03255814

Ce score moyen positif montre que les individus aux yeux Bleu ont des cheveux plutôt clairs. Ce score moyen peut être calculé pour toutes les couleurs de yeux.

freqyeux <- apply(dfcouleurs, 1, function(x) x/sum(x)) freqyeux

Bleu

Vert Blond 0.43720930 0.03181818 0.1075269 0.250000 Marron 0.39069767 0.54090909 0.5806452 0.453125 0.09302326 0.30909091 0.1612903 0.078125 Noir 0.07906977 0.11818182 0.1505376 0.218750 Roux

Marron Noisette

t(freqyeux)

Blond

Roux 0.43720930 0.3906977 0.09302326 0.07906977 Bleu Marron 0.03181818 0.5409091 0.30909091 0.11818182 Noisette 0.10752688 0.5806452 0.16129032 0.15053763 0.25000000 0.4531250 0.07812500 0.21875000 Vert

Marron

Noir

scoreyeux <- apply(t(freqyeux), 1, function(x) sum(x*scorecheveux)) scoreyeux

Vert 0.03255814 -0.70000000 -0.48387097 -0.06250000

Noisette

Publicité

Marron

Bleu

Pour les yeux marrons, on obtient un score moyen égal à -0.7 qui est négatif et indique donc que les cheveux foncés dominent dans cette sous-population.

On pourrait assez bien séparer les 4 couleurs des yeux sur la base du score proposé pour la couleur des cheveux. Cependant, deux questions se posent :

— Existe-t-il un score des cheveux qui permet de discriminer encore mieux

la couleur des yeux ?

— Lorsqu’on connaît moins bien le sujet, (ici, l’opposition clair/foncé est naturelle), comment définir un score qui permette de mieux comprendre la structure du tableau de données ?

version 3.4.1 (2017-06-30) – Page 3/16 – Compilé le 2017-09-27

URL : https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf

A.B. Dufour & M. Royer & J.R. Lobry

1.3 Notion de score optimum

L’Analyse Factorielle des Correspondances (AFC) est la méthode permettant de définir pour une table de contingence un score sur les colonnes tel que les scores moyens des lignes (obtenus en utilisant les fréquences des tableaux de profils) soient les plus séparés possibles, au sens de la variance de ces scores moyens. Et inversement. Cette méthode choisit comme score optimal pour les colonnes (cheveux) les valeurs :

library(ade4) library(adegraphics) ac <- dudi.coa(dfcouleurs, scannf=F, nf=3) rownames(ac$c1)

[1] "Blond" "Marron" "Noir"

"Roux"

ac$c1[,1]

[1] 1.8282287 -0.3244635 -1.1042772 -0.2834725

On vérifie que les valeurs extrêmes sont obtenues pour les modalités Blond et Noir, ce qui reflète que la structure majeure de ce jeu de données est l’opposi- tion clair/foncé.

Exercice. Retrouver le score moyen des lignes (couleur des yeux) à partir des scores optimaux de la couleur des cheveux obtenus par l’AFC. Réponse :

Bleu

Noisette 0.5474139 -0.4921577 -0.2125969

Marron

Vert 0.1617534

Il est important de noter que si on cherche d’abord les scores optimaux pour le critère couleur des yeux par la méthode AFC (coordonnées des lignes, li sous ade4), on obtient le même résultat :

[1] "Bleu" [1] 0.5474139 -0.4921577 -0.2125969 0.1617534

"Noisette" "Vert"

"Marron"

Le raisonnement que l’on vient de tenir peut se reproduire dans la recherche de score moyen des couleurs de cheveux à partir des scores optimaux de la couleur des yeux.

rownames(ac$co)

[1] "Blond" "Marron" "Noir"

"Roux"

ac$co[,1]

[1] 0.8353478 -0.1482527 -0.5045624 -0.1295233

1.4 Représentations graphiques

On peut alors donner une représentation graphique des valeurs obtenues pour les scores des lignes (resp. des colonnes) pour le premier score optimal des colonnes (resp. des lignes).

score(ac)

version 3.4.1 (2017-06-30) – Page 4/16 – Compilé le 2017-09-27

URL : https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf

A.B. Dufour & M. Royer & J.R. Lobry

Et pour finir, on donne une représentation graphique des résultats obtenus sur les deux premiers scores optimaux.

scatter(ac)

2 Table de Contingence

2.1 Tableau des données

La table engendrée par le croisement de deux variables qualitatives s’appelle

une table de contingence observée. Il est important de rappeler que :

i) tout individu présente une modalité et une seule de chaque variable ;

version 3.4.1 (2017-06-30) – Page 5/16 – Compilé le 2017-09-27

URL : https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf

d = 0.5BlondMarronNoirRouxBleuMarronNoisetteVert Rows Columns d = 0.5BleuMarronNoisetteVertBlondMarronNoirRouxEigenvaluesA.B. Dufour & M. Royer & J.R. Lobry

ii) chaque modalité doit avoir été observée au moins une fois, sinon elle est

supprimée.

Les données sont extraites d’une étude de J. Blondel et H Farre en 1988 [1]. On s’intéresse à l’abondance d’oiseaux - toutes espèces confondues - dans 4 régions européennes, sur des sites où les stades de végétation varient. Les deux variables retenues pour l’analyse sont :

1. la région : Pologne, Bourgogne, provence ou Corse ;

2. le stade de végétation : du milieu le plus ouvert S1 au milieu le plus fermé

S6.

Les données sont stockées dans oiseaux.txt.

oiseaux <- read.table("http://pbil.univ-lyon1.fr/R/donnees/oiseaux.txt",h=T) oiseaux

Pologne Bourgogne Provence Corse 278 507 288 512 406 444 494 221 512 375 598 536

77 164 194 357 347 580

33 157 751 621 776 854

S1 S2 S3 S4 S5 S6

taboiseaux <- as.table(as.matrix(oiseaux))

Les informations de base sont le nombre total d’observations (n), le nombre de modalités pour la variable ’région’ (I) et le nombre de modalités pour la variable ’stade de végétation’ (J).

(n <- sum(oiseaux))

[1] 10082

(I <- nrow(oiseaux))

[1] 6

(J <- ncol(oiseaux))

[1] 4

On peut construire le tableau des fréquences relatives où chaque terme est de la forme fij = nij n .

freqoiseaux <- oiseaux/n round(freqoiseaux,digits=4)

Pologne Bourgogne Provence

S1 0.0033 S2 0.0156 S3 0.0745 S4 0.0616 S5 0.0770 S6 0.0847

0.0503 0.0508 0.0440 0.0219 0.0372 0.0532

Corse 0.0076 0.0276 0.0163 0.0286 0.0192 0.0403 0.0354 0.0490 0.0344 0.0508 0.0575 0.0593

On peut obtenir différentes représentations graphiques de la table de contin- gence. Le principe est d’utiliser des symboles dont la surface est proportionnelle aux effectifs :

library(gplots) library(caTools) library(bitops) balloonplot(taboiseaux)

version 3.4.1 (2017-06-30) – Page 6/16 – Compilé le 2017-09-27

URL : https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf

A.B. Dufour & M. Royer & J.R. Lobry

La fonction mosaicplot permet de mettre en évidence les liens les plus impor- tants :

mosaicplot(oiseaux, shade=TRUE,main="répartition des oiseaux")

version 3.4.1 (2017-06-30) – Page 7/16 – Compilé le 2017-09-27

URL : https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf

895 1121 1795 1693 2010 2568 3192 2595 1719 257610082S1S2S3S4S5S6PologneBourgogneProvenceCorseyx 33157751621776854507512444221375536 77164194357347580278288406494512598Balloon Plot for x by y.Area is proportional to Freq.StandardizedResiduals:<−4−4:−2−2:00:22:4>4répartition des oiseauxS1S2S3S4S5S6PologneBourgogneProvenceCorseA.B. Dufour & M. Royer & J.R. Lobry

2.2 Tableaux des profils lignes et colonnes

On calcule maintenant les fréquences conditionnelles. Pour ce faire, on note V1 et V2, les deux variables qualitatives étudiées.

Profils lignes Les fréquences conditionnelles associées aux profils lignes sont notées fi|j et définies par

fj|i = P (V2 = j|V1 = i) =

P (V2 = j ∩ V1 = i) P (V1 = i)

fj|i =

nij n ni• n

=

nij ni•

(profLignes <- prop.table(taboiseaux,1))

Provence

Publicité

Pologne Bourgogne

Corse S1 0.03687151 0.56648045 0.08603352 0.31061453 S2 0.14005352 0.45673506 0.14629795 0.25691347 S3 0.41838440 0.24735376 0.10807799 0.22618384 S4 0.36680449 0.13053751 0.21086828 0.29178972 S5 0.38606965 0.18656716 0.17263682 0.25472637 S6 0.33255452 0.20872274 0.22585670 0.23286604

On vérifie que les sommes en lignes sont toutes égales à 1.

rowSums(profLignes)

S1 S2 S3 S4 S5 S6 1 1 1 1

1 1

Profils colonnes Les fréquences conditionnelles associées aux profils colonnes sont notées fi|j et définies par

fi|j = P (V1 = i|V2 = j) =

P (V1 = i ∩ V2 = j) P (V2 = j)

fi|j =

nij n n•j n

=

nij n•j

(profColonnes <- prop.table(taboiseaux,2))

Provence

Pologne Bourgogne

Corse S1 0.01033835 0.19537572 0.04479348 0.10791925 S2 0.04918546 0.19730250 0.09540430 0.11180124 S3 0.23527569 0.17109827 0.11285631 0.15760870 S4 0.19454887 0.08516378 0.20767888 0.19177019 S5 0.24310777 0.14450867 0.20186155 0.19875776 S6 0.26754386 0.20655106 0.33740547 0.23214286

On vérifie également que les sommes en colonnes sont toutes égales à 1.

colSums(profColonnes)

Pologne Bourgogne Provence 1

1

1

Corse 1

version 3.4.1 (2017-06-30) – Page 8/16 – Compilé le 2017-09-27

URL : https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf

A.B. Dufour & M. Royer & J.R. Lobry

2.3 Lien avec le test du χ2 d’indépendance

Le test du Khi-Deux d’indépendance entre deux variables est caractérisé par les deux hypothèses :

— H0 : les deux variables sont indépendantes — H1 : les deux variables sont liées.

Sous l’hypothèse nulle H0, P (V2 = j ∩ V1 = i) = P (V1 = i) × P (V2 = j). Ainsi, sous H0, la fréquence théorique est égale à ni•

n × n•j n .

On en déduit la table des effectifs théoriques (qui serait observée sous H0), en conservant les effectifs marginaux observés.

ni• × n•j n

reschi <- chisq.test(oiseaux) reschi$expected

Pologne Bourgogne Provence

Corse S1 283.3604 230.3635 152.5992 228.6768 S2 354.9129 288.5335 191.1326 286.4209 S3 568.3039 462.0140 306.0509 458.6312 S4 536.0103 435.7603 288.6597 432.5697 S5 636.3737 517.3527 342.7088 513.5648 S6 813.0387 660.9760 437.8488 656.1365

La statistique du test est la suivante :

χ2 =

I X

J X

i=1

j=1

(nij − ni•n•j n ni•n•j n

)2

Elle tend vers une loi du χ2 à (I − 1) × (J − 1) degrés de liberté. Le résultat au test du Khi-Deux est reschi

Pearson's Chi-squared test

data: oiseaux X-squared = 1286.4, df = 15, p-value < 2.2e-16

Comme la p-value est très faible, on rejette l’hypothèse nulle. Les variables sont liées. Il est alors intéressant d’explorer la structure de cette relation.

Définition On appelle lien entre la modalité i de la variable V1 et la modalité j de la variable V2 la quantité : )(cid:1)2

1 n

(cid:0)nij − ni•n•j n ni•n•j n

Les couples de modalités (i, j) qui correspondent aux liens les plus importants sont les plus responsables de la dépendance entre la variable V1 et la variable V2.

Conclusion. Que la liaison entre les 2 variables soit statistiquement significa- tive ou non, on peut explorer la structure du tableau plus en détail. Lorsque les variables présentent de nombreuses modalités, il est difficile d’extraire une information pertinente si on se contente d’observer le tableau de données. La technique de l’Analyse Factorielle des Correspondances (AFC) est là pour pallier cette déficience.

version 3.4.1 (2017-06-30) – Page 9/16 – Compilé le 2017-09-27

URL : https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf

A.B. Dufour & M. Royer & J.R. Lobry

3 Compréhension des résultats d’une AFC

Les résultats de l’AFC de la table de contingence permettant d’étudier l’abondance globale des 79 espèces entre les régions et les stades de végétations.

afc <- dudi.coa(oiseaux, scannf=F, nf=3) names(afc) [1] "tab" "cw"

"eig"

"lw"

"rank" "nf"

"c1"

"li"

"co"

"l1"

"call"

[12] "N"

3.1 Le tableau analysé

Le tableau analysé est :

afc$tab

Pologne

Provence

Bourgogne

Corse S1 -0.88354056 1.20086931 -0.49541015 0.215689302 S2 -0.55763796 0.77449050 -0.14195700 0.005513046 S3 0.32147604 -0.03899013 -0.36611848 -0.114757176 S4 0.15855979 -0.49284040 0.23675044 0.142012415 S5 0.21940922 -0.27515601 0.01252145 -0.003046877 S6 0.05038053 -0.18907797 0.32465807 -0.088604250

C’est le lien entre les effectifs théoriques et les effectifs observés.

Pologne

(oiseaux-reschi$expected)/reschi$expected Bourgogne

Corse S1 -0.88354056 1.20086931 -0.49541015 0.215689302 S2 -0.55763796 0.77449050 -0.14195700 0.005513046 S3 0.32147604 -0.03899013 -0.36611848 -0.114757176 S4 0.15855979 -0.49284040 0.23675044 0.142012415 S5 0.21940922 -0.27515601 0.01252145 -0.003046877 S6 0.05038053 -0.18907797 0.32465807 -0.088604250

Provence

3.2 Les pondérations

Les pondérations des lignes et des colonnes sont les fréquences marginales de la table de contingence observée.

afc$cw

Pologne Bourgogne Provence

Corse 0.3166038 0.2573894 0.1705019 0.2555049 apply(oiseaux,2,function(x) sum(x)/n)

Pologne Bourgogne Provence

Corse 0.3166038 0.2573894 0.1705019 0.2555049

afc$lw

S6 0.08877207 0.11118826 0.17804007 0.16792303 0.19936521 0.25471137

S2

S5

S4

S1

S3

apply(oiseaux,1,function(x) sum(x)/n) S2

S6 0.08877207 0.11118826 0.17804007 0.16792303 0.19936521 0.25471137

Publicité

S1

S4

S5

S3

version 3.4.1 (2017-06-30) – Page 10/16 – Compilé le 2017-09-27

URL : https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf

A.B. Dufour & M. Royer & J.R. Lobry

3.3 La matrice diagonalisée

La matrice diagonalisée est H.

matZ <- as.matrix(afc$tab) DI <- diag(afc$lw) DrJ <- diag(sqrt(afc$cw)) matH <- DrJ %*% t(matZ) %*% DI %*% matZ %*% DrJ

Le rang de la matrice analysée est donné par min(I − 1, J − 1) soit

min(I-1,J-1)

[1] 3

afc$rank

[1] 3

Les valeurs propres et les vecteurs propres issus de cette diagonalisation sont :

eigen(matH)

eigen() decomposition $values [1] 1.109603e-01 1.358960e-02 3.041339e-03 -1.754281e-17 $vectors

[,1]

[,4] [,2] [1,] 0.59399474 0.5453407 -0.1821261 -0.5626756 [2,] -0.77126117 0.2088254 -0.3227364 -0.5073356 [3,] 0.21901448 -0.7942466 -0.3882049 -0.4129187 [4,] -0.06602364 -0.1678326 0.8437821 -0.5054749

[,3]

eigen(matH) -> reseigen

On retrouve bien les valeurs propres de l’analyse.

reseigen$values

[1] 1.109603e-01 1.358960e-02 3.041339e-03 -1.754281e-17

afc$eig

[1] 0.110960284 0.013589597 0.003041339

3.4 Les coordonnées des lignes

Les coordonnées des lignes dites axes principaux s’obtiennent par ZD1/2 sont centrées, de variances λ et de covariances nulles.

J U. Elles

matZ %*% DrJ %*% reseigen$vectors[,1:3]

[,2]

[,1]

[,3] S1 -0.81718935 0.00028756 0.06532488 S2 -0.50244823 -0.04296969 -0.04455945 S3 0.09342198 0.22432151 -0.01681756 S4 0.26250867 -0.09325185 0.08706607 S5 0.18223172 0.03432637 0.01926157 S6 0.12314001 -0.10353041 -0.06403649

afc$li

Axis2

Axis1

Axis3 S1 -0.81718935 0.00028756 0.06532488 S2 -0.50244823 -0.04296969 -0.04455945 S3 0.09342198 0.22432151 -0.01681756 S4 0.26250867 -0.09325185 0.08706607 S5 0.18223172 0.03432637 0.01926157 S6 0.12314001 -0.10353041 -0.06403649

sum(afc$li$Axis1*afc$lw)

[1] 5.551115e-17

sum(afc$li$Axis2*afc$lw)

[1] 5.170289e-18

sum(afc$li$Axis1*afc$li$Axis1*afc$lw)

version 3.4.1 (2017-06-30) – Page 11/16 – Compilé le 2017-09-27

URL: https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf

A.B. Dufour & M. Royer & J.R. Lobry

[1] 0.1109603 afc$eig[1] [1] 0.1109603

sum(afc$li$Axis2*afc$li$Axis2*afc$lw)

[1] 0.0135896 afc$eig[2] [1] 0.0135896

sum(afc$li$Axis1*afc$li$Axis2*afc$lw)

[1] -5.791334e-17

3.5 Les coordonnées des colonnes

Les coordonnées des colonnes dites composantes principales s’obtiennent par D−1/2

J UΛ1/2. Elles sont centrées, de variances λ et de covariances nulles. diag(1/sqrt(afc$cw)) %*% reseigen$vectors[,1:3] %*% diag(sqrt(afc$eig))

[,1]

[,3] [1,] 0.35164811 0.11298300 -0.01785034 [2,] -0.50639559 0.04798342 -0.03508205 [3,] 0.17668188 -0.22423018 -0.05184763 0.09205835 [4,] -0.04350946 -0.03870615

[,2]

afc$co

Comp1 Pologne 0.35164811 Bourgogne -0.50639559 Provence Corse

Comp3 0.11298300 -0.01785034 0.04798342 -0.03508205 0.17668188 -0.22423018 -0.05184763 0.09205835

-0.04350946 -0.03870615

Comp2

sum(afc$co$Comp1*afc$cw)

[1] 3.122502e-17

sum(afc$co$Comp2*afc$cw)

[1] 1.214306e-17

sum(afc$co$Comp1*afc$co$Comp1*afc$cw)

[1] 0.1109603 afc$eig[1] [1] 0.1109603

sum(afc$co$Comp2*afc$co$Comp2*afc$cw)

[1] 0.0135896 afc$eig[2] [1] 0.0135896

sum(afc$co$Comp1*afc$co$Comp2*afc$cw)

[1] -1.084202e-17

3.6 Lien avec le Khi-Deux

Lien entre l’inertie totale et la valeur de la statistique du Khi-Deux :

IT =

χ2 n

reschi$statistic

X-squared 1286.375 reschi$statistic/n

X-squared 0.1275912

sum(afc$eig) [1] 0.1275912

version 3.4.1 (2017-06-30) – Page 12/16 – Compilé le 2017-09-27

URL : https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf

A.B. Dufour & M. Royer & J.R. Lobry

3.7 Carte Factorielle sur les axes 1 et 2

scatter(afc)

Commenter.

4 Aides à l’interprétation

Les statistiques d’inertie sont importantes dans les analyses à pondérations non uniformes comme l’analyse factorielle des correspondances. Elles s’étendent à tout type d’analyse à un tableau. On les retrouve dans la fonction inertia.dudi. Pour les analyses à pondérations uniformes comme l’analyse en composantes principales, elles sont redondantes avec les cartes factorielles. C’est pourquoi les statistiques d’inertie sont présentées dans ce document.

aides <- inertia.dudi(afc, row.inertia=TRUE, col.inertia=TRUE) names(aides) [1] "TOT" [6] "col.contrib" "col.abs"

"row.contrib" "row.abs" "col.rel"

"row.rel" "col.cum"

"row.cum" "call"

4.1 Décomposition de l’inertie totale

La somme des valeurs propres est égale à l’inertie totale du nuage de points.

IT =

r X

Publicité

k=1

λk

où r représente le rang de la matrice diagonalisée. La quantité λk/IT est l’inertie relative du vecteur principal de rang k.

version 3.4.1 (2017-06-30) – Page 13/16 – Compilé le 2017-09-27

URL : https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf

d = 0.5S1S2S3S4S5S6PologneBourgogneProvenceCorseEigenvaluesA.B. Dufour & M. Royer & J.R. Lobry

IT <- sum(afc$eig) IT

[1] 0.1275912 afc$eig/IT

[1] 0.86965454 0.10650887 0.02383659

aides$TOT

inertia

cum(%) Ax1 0.110960284 0.1109603 86.96545 97.61634 Ax2 0.013589597 0.1245499 Ax3 0.003041339 0.1275912 100.00000

cum

La première colonne contient les valeurs propres λk de 1 à r. La seconde colonne contient la somme des valeurs propres de 1 à K : PK k=1 λk. La dernière colonne contient l’inertie relative cumulé du nuage sur les K dimen- sions retenues :

PK Pr

k=1 λk k=1 λk

4.2 Contributions absolues des lignes (resp. des colonnes)

L’inertie des projections sur la composante principale k se décompose en somme de contributions absolues (CA) de la variable (ou de la modalité) à la définition de k. Cela souligne les points qui contribuent le plus à l’analyse.

1 le vecteur associé à la modalité i de la variable V1 comme par exemple

Soit V i le vecteur associé au stade de végétation S5 :

oiseaux[5,]

Pologne Bourgogne Provence Corse 512 375

347

776

S5

La contribution du point est définie par :

CAuk (V i

1 ) =

1 pi.

< V i

1 /uk >2 DJ λk

aides$row.abs Axis1(%)

Axis2(%) Axis3(%) S1 53.426187 5.401653e-05 12.455717 S2 25.297290 1.510695e+00 7.258949 S3 1.400388 6.592544e+01 1.655689 S4 10.428696 1.074530e+01 41.854603 S5 5.966639 1.728617e+00 2.432023 S6 3.480801 2.008989e+01 34.343018

que l’on retrouve facilement à l’aide des valeurs retournées par l’objet dudi.coa.

afc$li[,1]*afc$li[,1]*afc$lw/afc$eig[1] S2

S6 0.53426187 0.25297290 0.01400388 0.10428696 0.05966639 0.03480801

S5

S1

S4

S3

Notez que les résultats donnés par la fonction inertia.dudi sont multipliés par 1000 pour faciliter la lecture.

version 3.4.1 (2017-06-30) – Page 14/16 – Compilé le 2017-09-27

URL : https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf

A.B. Dufour & M. Royer & J.R. Lobry

4.3 Contributions relatives des lignes (resp. des colonnes)

L’inertie totale se décompose en contributions à la trace des lignes (et des colonnes). Le carré de la norme de la variable ou de la modalité se décompose en contributions relatives (CR) des composantes à la représentation de la ligne i (resp. de la colonne j) . Les contributions relatives sont des carrés de cosinus.

CRuk (V i

1 ) =

< V i

1 /uk >2 DJ 1 k2 kV i DJ

aides$row.rel

Axis1

Axis3 Axis2 0.6349587 S1 -99.36503 1.230396e-05 -0.7747375 S2 -98.50482 -7.204425e-01 8.481308e+01 -0.4767020 S3 14.71022 8.8986367 S4 80.89337 -1.020800e+01 S5 95.54255 1.0674121 3.390039e+00 S6 50.57407 -3.574912e+01 -13.6768028

que l’on retrouve, dans le cas du payement semestriel :

(afc$li[3,]*afc$li[3,])/(sum(afc$tab[3,]*afc$tab[3,]*afc$cw))

Axis3 S3 0.1471022 0.8481308 0.00476702

Axis1

Axis2

Notez que :

1. les résultats sont également multipliés par 1000,

2. les résultats obtenus sont bien sûr tous supérieurs à 0 : le signe est rajouté

afin de situer la modalité sur les axes,

3. la dernière colonne contient la contribution à la trace : (afc$tab[3,]*sqrt(afc$cw))*sqrt(afc$lw[3]) -> temp sum(temp*temp)/sum(afc$eig)

[1] 0.08278964

4.4 Contributions relatives cumulées

Ce dernier tableau contient, pour chaque ligne V i

1 la somme des contributions relatives. Ce sont les carrés des cosinus entre un vecteur et un sous-espace de projection.

aides$row.cum

Axis1 Axis1:2 Axis1:3

S1 99.36503 99.36504 S2 98.50482 99.22526 S3 14.71022 99.52330 S4 80.89337 91.10136 S5 95.54255 98.93259 S6 50.57407 86.32320

Axis4:3 100 -2.220446e-14 100 0.000000e+00 100 1.110223e-14 100 -4.440892e-14 100 -2.220446e-14 100 -2.220446e-14

La case remain est ici égale à 0 car nous avons conservé toutes les valeurs propres de l’analyse. Dans le cas contraire, cette colonne contient la somme des contributions relatives du sous-espace qui n’a pas été retenu.

version 3.4.1 (2017-06-30) – Page 15/16 – Compilé le 2017-09-27

URL : https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf

A.B. Dufour & M. Royer & J.R. Lobry

5 Application

La recherche scientifique ne soulève que peu de controverse ou de résistance de la part du grand public. Dans quelques cas, rares, le débat entre science, morale et religion resurgit. C’est le cas de la recherche sur les embryons humains.

L’analyse que nous nous proposons de réaliser est adaptée de l’article Attitudes towards Embryo research, worldviews and the moral status of the Embryo Frame [2]. Les données ont été recueillies au près du grand public dans 9 pays européens et elles concernent le statut accordé à l’embryon.

A human embryo that is a few days old . . . (1) "is a mere cluster of cells, and it makes no sense to discuss its moral condition" ; (2) "has a moral condition halfway between that of a cluster of cells and that of a human being" ; (3) "is closer in its moral condition to a human being than to a mere cluster of cells" ; (4) "has the same moral condition as a human being."

Les données sont rangées dans la table de contingence ci-dessous. Répondre à la question "Peut-on faire une typologie des pays ?".

Pays Autriche Danemark France Allemagne Italie Pays.Bas Pologne Royaume.Uni Espagne

(1) 64 373 227 88 203 207 138 255 215

(2) 223 234 224 218 157 329 154 168 188

(3) 243 112 166 259 137 154 98 117 125

(4) 326 219 282 289 373 223 382 236 298

non réponses 144 62 100 146 130 88 229 224 174

Pour entrer les données, utilisez :

res <- data.frame() fix(res)

Références

[1] J. Blondel and H. Farré. The convergent trajectories of bird communities along ecological successions in european forests. åcologia (Berlin), 75 :83–93, 1988.

[2] R Pardo and F. Calvo. Attitudes towards embryo research, worldviews and the moral status of the embryo frame. Science Communication, 30, 1 :8–47, 2008.

[3] R.D. Snee. Graphical display of two-way contingency tables. The American

Statistician, 28 :9–12, 1974.

version 3.4.1 (2017-06-30) – Page 16/16 – Compilé le 2017-09-27

URL : https://pbil.univ-lyon1.fr/R/pdf/tdr620.pdf