Initiation à l'AFCM avec

Généralisation de l'AFC et exemples élémentaires

Résumé

Comparaison entre des analyses des correspondances appliquées à une table de contingence, un tableau disjonctif complet et un tableau de Burt comme généralisation de l'Analyse Factorielle des Correspondances (AFC) pour définir l'Analyse Factorielle Multiple des Correspondances. Exemple d'AFCM élémentaire et AFCM de variables avec interactions. Utilisation du package FactoMineR.

1 AFCM et AFC de données fictives

1.1 Les données

Six invividus identifiés de un à sixsont questionnés. Ils indiquent leur CSP (1 à 4) et leur sport préféré: Rou T.


In [ ]:
matFic=read.table("Data/afcfic.dat",header=TRUE, row.names=1)
matFic

1.2 Les tableaux

Q Quel est le tableau ci-dessous?


In [ ]:
T=table(matFic$csp,matFic$sport)
T

Q Quel est le tableau ci-dessous?


In [ ]:
library(FactoMineR)
D=tab.disjonctif(matFic)
D

Q Quel est le tableau ci-dessous? De quels blocs est-il constitué?


In [ ]:
B=t(D)%*%D
B

1.3 Analyses des correspondances

Analyse multuple des correspondances définie par généralisation de l'analyse factorielle des correspondances.

AFC de T

Q Quelles sont les ACPs définissant l'AFC de T?


In [ ]:
options(repr.plot.width=4, repr.plot.height=4)
CA(T)$eig

Q Que sont plus précisément les % exprimés sur les axes? Noter les valeurs propres.

AFC de B


In [ ]:
CA(B)$eig

Q Pourquoi les modalités sont doublées dans la représentation?

Q Quelle significaiton des pourcentages sur les axes?

Q Retrouver les valeurs propres de AFC(B) à partir de celles de AFC(T).

AFC de D


In [ ]:
CA(D)$eig

Q Qu'apporte en plus l'AFC(D)?

Q Quelle signification des pourcentages sur les axes?

Q Retrouver les valeurs propres de AFC(D) à partir de celles de AFC(T).

Q Question subsidiaire: pourquoi les points sont projetés sur une parabole nommée dans la littérature: horseshoe ou effet Guttman?

2 Races de chiens

Nous nous proposons de représenter à l'aide d'une AFCM les proprités de races de chiens afin d'évaluer leur compatibles avec la fonction de ces chiens considérée comme variable supplémentaire.

2.1 Les données

Les données sont extraites de Bréfort (1982). Elles contiennent le descriptif des qualités de 27 races de chien: tailles (T), poids (P), vélocité (V), intelligence (I), codées sur trois modalités (- faible, + moyen, ++ fort), affection (Af) et agressivité (Ag) sur deux modalités (- faible, + forte), enfin la fonction sur trois modalités: Com (compagnie), Cha (chasse), Uti (utilité). Les modalités étaient initialement codées par des entiers mais l'obtention de graphes des modalités explicites nécessite un recodage explicite des modalités avec des libellés facilement identifiables. Ce recodage a été opéré dans SAS.

La première colonne identifie la race du chien donc chaque individu.


In [ ]:
chiens=read.csv("Data/chiens.csv", row.names=1)
chiens
summary(chiens)

2.2 AFCM avec FactoMineR

La librairie FactoMineR est particulièrement conçue pour exécuter et représenter des analyses factorielles des correspondances.


In [ ]:
library(FactoMineR)
#afcm avec la fonction des chiens en supplémentaire
afcm=MCA(chiens,quali.sup=7,graph=F)
options(repr.plot.width=5, repr.plot.height=5)
plot(afcm,habillage="quali",invisible="ind")

Q Quelle AFC a été calculée pour produire le graphe ci-dessus?

Q Quelle signification des pourcentages sur les axes?

Q Quelle interprétation possible?


In [ ]:
plot(afcm, choix="ind",habillage="quali")

Q Quelle AFC a été exécutée pour obtenir le graphe ci-dessus?

3 Diagnostic du cancer du sein

L'objet de cet exemple est de mettre en évidence les limitations de l'AFCM ou les précautions à prendre pour traiter des données complexes. L'AFCM analyse le seul tableau de Burt croisant (tables de contingence) les variables deux à deux. Par construction, cette méthode ne prend donc pas en compte la présence possible d'interactions d'ordre supérieur à deux entre les variables. Ce peut être trompeur.

3.1 Les données

Les données relatives à plusieurs variables qualitatives sont représentées habituellement sous la forme d'une table de contingence complète. L'exemple ci-dessous est extrait de Bishop et al. (1976). Il décrit les résultats partiels d'une enquête ancienne réalisée dans trois centres hospitaliers (Boston, Glamorgan, Tokio) sur des patientes atteintes d'un cancer du sein. On se propose d'étudier la survie de ces patientes trois ans après le diagnostic. En plus de cette information, quatre autres variables sont documentées pour chacune des patientes:

  • le centre de diagnostic,
  • la tranche d'âge,
  • le degré d'inflammation chronique petite ou grande,
  • l'apparence relative (bénigne ou maligne) de la tumeur.

Le croisement de toutes les variables permet de construire la table de contingence complète ci-dessous.

Centre Age Survie Petite Inflammation Grande Inflammation
Ap Maligne App Benine App Maligne App Benine
Tokio <50 non 9 7 4 3
oui 26 68 25 9
50-69 non 9 9 11 2
oui 20 46 18 5
>70 non 2 3 1 0
oui 1 6 5 1
Boston <50 non 6 7 6 0
oui 11 24 4 0
50-69 non 8 20 3 2
oui 18 58 10 3
>70 non 9 18 3 0
oui 15 26 1 1
Glamorgan <50 non 16 7 3 0
oui 16 20 8 1
50-69 non 14 12 3 0
oui 27 39 10 4
>70 non 3 7 3 0
oui 12 11 4 1

Q Que signifie chaque entier dans cette table?

L'objectif de cette étude est une analyse descriptive (AFCM) de cette table en recherchant à mettre en évidence les facteurs de décès.


In [ ]:
diagnos=read.csv("Data/diagnos.csv")
summary(diagnos[,1:6])

Q Quel est le graphique ci-dessous? Aide-t-il à la compréhension?


In [ ]:
T=xtabs(eff~centre+age+survie+inflam+appar,diagnos)
mosaicplot(T)

3.2 AFCM des variables simples

Même si la table de contingence complète permet de reconstruire toute l'information à tous le sniveaux d'interaction entre les variables, l'AFCM, obtenue par AFC du tableau de Burt, ne prend nécessairement en compte que le croisement des variables 2 à 2.


In [ ]:
library(FactoMineR)
# fréquences "biaisées" car le programme
# ne supporte pas des fréquences nulles
freq=diagnos[,1]+.0001
afcm=MCA(diagnos[,2:6],row.w=freq,graph=F)
plot(afcm, choix="ind",invisible="ind",habillage="quali",title="")

Q Interpréter le deuxième axe. A la lumière de ce graphique, quels sont les facteurs de décès?

Q Quelle est influence de l'âge? Et surtout celle du centre?

Q Influence du centre ou déséquilibre des distributions des âges entre les centres? Commnent répondre à cette question?

3.3 AFCM des variables croisées

Le graphique de l'analyse précédente suggère l'influence de l'âge mais aussi celle du centre de diagnostic dans les risques de décès avant trois ans. Pour expliciter ces liaisons, les données sont reconsidérées de la façon suivante:

  • les variables centre et age sont croisées pour construire une variable agecent à 9 modalités,
  • les variables inflam et appar sont croisées également pour définir la variable histo à 4 modalités.

In [ ]:
summary(diagnos)

Ce qui conduit au mosaicplot guère plus explicite:


In [ ]:
T=xtabs(eff~agecent+survie+histo,diagnos)
mosaicplot(T)

In [ ]:
afcm=MCA(diagnos[,2:8],quali.sup=c(1,2,4,5),row.w=freq,graph=F)
options(repr.plot.width=6, repr.plot.height=6)
plot(afcm, choix="ind",invisible="ind",habillage="quali",title="")

Q Reprérer les modalités de la variable agecent. Comment celles-si sont -elles positionnées par rapport à celles de la variable supplémentaire centre; puis de celles de la variable age?

Q Même chose pour les variables histo, imflam, appar.

Q Quels sont, pour ce graphique, les principaux facteurs de risque?

Q Est-ce compatible avec le graphique de l'AFCM précédente?