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.
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")
num.group.sup=3,graph=FALSE)
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
Une tumeur dangereuse a des coord - sur dim1
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
plot.MFA(res.mfa,choix="group")
# Repr?sentation des groupes, montre la liaison entre groupes.
plotellipses(res.mfa,keepvar="type")
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
Il existe plein de m?thodes multibloc, comme :
L’avantage de l’AFM, c’est la possibilit? d’avoir des vars qualitatives en ACTIF trait?es comme en AFM !
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
Quand la 1ere CP de l’AFM = 1ere CP du groupe, le Lg = 1.
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