Bonjour
Je suis en train de m'arracher le peu de cheveux que j'ai sur le crâne avec une analyse factorielle des correspondances.
J'ai un tableau de contingence que voici (syntaxe R):
[5,10[ [10,15[ [15,20]
[0,4[ 1 0 0
[4,8[ 1 4 0
[8,12[ 1 8 0
[12,16[ 0 5 3
[16,20[ 0 0 4
Et j'essaie donc de faire l'AFC de ce tableau. Apparemment jusqu’au calcul des vecteurs propres et valeurs propres ça semble être correct (je contrôle mes calculs avec FactoMineR).
Voici ma matrice F des profils-lignes centrée
[,1] [,2] [,3]
[1,] 0.88888889 -0.62962963 -0.2592593
[2,] 0.08888889 0.17037037 -0.2592593
[3,] 0.00000000 0.25925926 -0.2592593
[4,] -0.11111111 -0.00462963 0.1157407
[5,] -0.11111111 -0.62962963 0.7407407
Voici la matrice Mn des poids-lignes:
[,1] [,2] [,3] [,4] [,5]
[1,] 27 0.0 0 0.000 0.00
[2,] 0 5.4 0 0.000 0.00
[3,] 0 0.0 3 0.000 0.00
[4,] 0 0.0 0 3.375 0.00
[5,] 0 0.0 0 0.000 6.75
Et celle Mp des poids colonnes:
[,1] [,2] [,3]
[1,] 9 0.00000 0.00000
[2,] 0 1.58824 0.00000
[3,] 0 0.00000 3.85714
Quand je diagonalise Mp.F'.Mn-1.F je trouve les vecteurs propres suivants:
[,1] [,2] [,3]
[1,] 0.5735303 -0.9629381 -0.5773503
[2,] 0.2233243 0.2287661 -0.5773503
[3,] -0.7881556 -0.1428853 -0.5773503
Et les valeurs propres associées:
[1] 6.562456e-01 3.032939e-01 5.074002e-17
Ce qui semble correct.
Cependant quand je calcule les composantes principales F.u avec u vecteurs propres j’obtiens des composantes principales qui sont correctes avec ce que je contrôle dans FactoMineR a un facteur multiplicatif près.
J'ai eu un indice de mon prof qui me dit que je dois normer mes vecteurs propres dans la métrique mais d'une part j'ai un soucis parce-qu’apparemment il sont déjà normés (racine de leur produit scalaire = 1) et d'autre part un des facteurs multiplicatif que je dois appliquer a la composante principale est négatif (et j'ai du mal a imaginer une norme de vecteur négative).
J'applique donc ce facteur multiplicatif au vecteur propre que je multiplie à la matrice des profils-lignes centrée pour trouver les composantes principales:
En R cela donne:
comp_col <- matrix(c(
mat_fi %*% matrix(res_col$vectors[,1], ncol=1) * -2.0897 ,
mat_fi %*% matrix(res_col$vectors[,2], ncol=1) * 4.75
), ncol=2)
Le script R est ici et l'énoncé est attaché comme image.
Merci!
Eriam
* Océane > eriam si tu veux de l'aide, merci de faire l'effort de recopier ton énoncé sur le forum. *