1. Execution de l’AFM:

library(FactoMineR)
#import:
comp <- read.table("http://factominer.free.fr/more/gene.csv",sep=";",header=T,row.names=1)
#execution de la MFA
res.mfa <- MFA(comp,group=c(68,356,1),type=c(rep("s",2),"n"),name.group=c("CGH","expr","WHO"),num.group.sup=3,graph=FALSE)

On execute et stock les res text de l’AFM.

1.1 Arguments de la fonction MFA:

group=c(68,356,1)

  • 68 vars dans le grp 1

  • 356 dans le grp 2

  • 1 var quali dans le grp 3

type=c(rep("s",2),"n")

  • On scale les 2 premiers groupes de vars

  • On ne touche pas au 3eme, on le garde tel quel en quali

name.group=c("CGH","expr","WHO")

  • On nomme chacun des groupes de vars

num.group.sup=3,graph=FALSE)

  • Le 3?me groupe de vars est mis en supplémentaire.

On fait une AFM et pas une ACP car:

  • On veut garder la notion de groupes dans les variables
  • On veut équilibrer les poids des groupes de variables. S’il y en a un avec 200 vars et l’autre avec 10 vars, celui qui a 200 vars va accaparer toute la variabilité. L’info du 2?me groupe sera alors masqu?e, totalement dissimul?e.
  • Attention l’AFM n’est pas si connue que ?a worldwide.
  • Liaison entre les groupes: similarités & dissimilarités. Est ce que les # groupes apportent la même information ?

2 Groupes sont proches s’ils induisent la m?me structure sur les individus. On a alors un indicateur dit coefficient de corr?lation entre groupes: le RV

1.2 De l’importance de la pond?ration

  • Elle donne le m?me poids ? chaque groupe, ?quivaut ? une r?duction de vars en ACP, sauf qu’il s’agit ici de groupes. On ram?ne la variance de tous les groupes ? 1

Une tumeur dangereuse a des coord - sur dim1

2. Sorties Graphiques

Graphiques classique / ACP

plot.MFA(res.mfa,habillage="type",lab.ind.moy=F)
## Warning in plot.window(...): "lab.ind.moy" n'est pas un paramètre graphique
## Warning in plot.xy(xy, type, ...): "lab.ind.moy" n'est pas un paramètre
## graphique
## Warning in axis(side = side, at = at, labels = labels, ...): "lab.ind.moy"
## n'est pas un paramètre graphique
## Warning in axis(side = side, at = at, labels = labels, ...): "lab.ind.moy"
## n'est pas un paramètre graphique
## Warning in box(...): "lab.ind.moy" n'est pas un paramètre graphique
## Warning in title(...): "lab.ind.moy" n'est pas un paramètre graphique
## Warning in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...):
## "lab.ind.moy" n'est pas un paramètre graphique
## Warning in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...):
## "lab.ind.moy" n'est pas un paramètre graphique
## Warning in text.default(xy, labels, cex = cex, ...): "lab.ind.moy" n'est
## pas un paramètre graphique
## Warning in plot.xy(xy.coords(x, y), type = type, ...): "lab.ind.moy" n'est
## pas un paramètre graphique

 # Graph des vars, comme en ACP

# Groupes
plot.MFA(res.mfa,invisible="ind",partial="all",habillage="group")

# Cercle des corr?lations: Groupe vert est bcp plus unidimensionnel que l'autre. Toutes les vars sont intercorr?l?es. On a 365x la m?me information ! 
# Le groupe rouge est un peu moins unidimensionnel
plot.MFA(res.mfa,choix="var",habillage="group",lab.var=F)

#Sans les labels

A pr?sent les graphs sp?cifiques de l’AFM !

plot.MFA(res.mfa,choix="group")

# Repr?sentation des groupes, montre la liaison entre groupes. 
plotellipses(res.mfa,keepvar="type")

3. Sorties texte

3.1 Coefficient RV :

  • Varie entre 0 et 1
    • Vaut 0 pour toutes les vars d’un groupe sont ortho à celles de l’autre.
    • Vaut 1 pour toutes les vars d’un groupe sont li?es lin?airement, la position relative des ind dans un groupe est la m?me que leur position dans le 2nd groupe. Il peuvent ?tre tourn?s … les nuages se superposent ? une rotation/translation pr?s.
  • C’est un indicateur synth?tique
names(res.mfa)
##  [1] "separate.analyses" "eig"               "group"            
##  [4] "inertia.ratio"     "ind"               "summary.quanti"   
##  [7] "summary.quali"     "quanti.var"        "quali.var.sup"    
## [10] "partial.axes"      "call"              "global.pca"
names(res.mfa$group)
##  [1] "Lg"          "RV"          "coord"       "contrib"     "cos2"       
##  [6] "dist2"       "correlation" "coord.sup"   "cos2.sup"    "dist2.sup"
res.mfa$group$RV
##            CGH      expr       WHO       MFA
## CGH  1.0000000 0.3613982 0.3990655 0.8951569
## expr 0.3613982 1.0000000 0.3509322 0.7391316
## WHO  0.3990655 0.3509322 1.0000000 0.4560469
## MFA  0.8951569 0.7391316 0.4560469 1.0000000
  • RV entre un groupe et lui m?me = 1 (normal)
  • MFA: Comment un groupe est li? ? l’ensemble (on ne s’en sert pas)
  • On a RV(CGH,expr)=0.36 ce qui parait faible mais attention, il y a peut-?tre des effets de structure, de taille, de significativit? etc … Il faut faire un test sur la significativit? de ce RV pour savoir si sa valeur est grande ou petite au regard des dimensions n,p et p2

Il existe plein de m?thodes multibloc, comme :

  • la *Multibloc PLS
  • les m?thodes de Tukey/Parafac
  • m?thodes 3 voies (m?me nombre de variables dans chaque groupe -> Cubes de donn?es)
  • STATIS (fond?e sur la diagonalisation de matrices de RV)

L’avantage de l’AFM, c’est la possibilit? d’avoir des vars qualitatives en ACTIF trait?es comme en AFM !

3.2 Le Coefficient Lg

res.mfa$group$Lg
##            CGH      expr       WHO      MFA
## CGH  2.5063395 0.5994341 1.0942706 1.957972
## expr 0.5994341 1.0976680 0.6368239 1.069904
## WHO  1.0942706 0.6368239 3.0000000 1.091334
## MFA  1.9579722 1.0699037 1.0913336 1.908863

Le Lg est la liaison entre le groupe et la composante principale.

  • Le coefficient Lg est interpr?table entre un groupe et lui m?me et pas entre 2 groupes
  • c’est un indicateur de dimensionnalit?. Plus il est petit, plus le groupe est unidimensionnel.
    ex: groupe expr a une valeur de 1.09, on a vu pr?cedemment qu’il ?tait tr?s unidim. CGH semble plus riche d?j?.

Quand la 1ere CP de l’AFM = 1ere CP du groupe, le Lg = 1.

4. Retour sur les graphs

plot.MFA(res.mfa,partial="all",habillage="group")

GBM29 est particuli?re, elle est dangereuse selon un type de donn?es, et pas dangereuse selon un autre type.
Si on a pas l’info CGH, on ne peut pas savoir si elle est dangereuse.

L’AFM permet de d?tecter les ind discordants, qui se comportent diff?remment des autres.

Il faut trier les points suivants res.mfa$ind$within.partial.inertia

names(res.mfa$ind)
## [1] "coord"                  "contrib"               
## [3] "cos2"                   "within.inertia"        
## [5] "coord.partiel"          "within.partial.inertia"
part<-res.mfa$ind$within.partial.inertia