Analyse factorielle vs analyse en composantes principales
Pour réduire la dimensionnalité, on a souvent à choisir entre l'analyse en composantes principales (PCA) et l'analyse factorielle (FA). Souvent, on ne sait pas laquelle choisir. Les deux reposent sur des postulats différents. En science sociale, d'habitude on utilise l'analyse factorielle.
Analyse en composantes principales / Principal Component Analysis (PCA)
- Le seul objectif : réduction de dimensionalité
- Modèle : décomposition algébrique de la variance totale
- Aucune hypothèse sur une structure latente; sur un concept latent
- Les composantes sont des combinaisons linéaires qui maximisent la variance expliquée. C'est tout.
Formellement :
où
Analyse factorielle / Factor analysis (FA)
Parfois aussi appelée analyse factorielle exploratoire / exploratory factor analysis (EFA), pour la distinguer de l'analyse factorielle confirmatoire (CFA). Analyse factorielle exploratoire: on laisse les données révéler librement la structure des facteurs. Analyse factorielle confirmatoire: on teste un modèle factoriel précis défini à l’avance.
- Objectif de FA : modéliser une structure latente
- Modèle probabiliste
- Ne s’intéresse qu’à la variance commune (shared variance)
Modèle :
où :
= facteur latent = loading = variance spécifique (erreur)
La matrice de covariance est :
En FA, on suppose qu’il existe une variable latente (ex : autoritarisme, nationalisme, etc.) qui génère les réponses observées.
Comment calculer une FA ?
- On estime la matrice de corrélations.
- On extrait les facteurs (ML ou minres).
- On estime les loadings.
- On peut calculer des scores factoriels (les positions des gens sur notre nouvelle échelle de mesure de notre variable latente).
Exemple:
n <- 500
F <- rnorm(n)
x1 <- 0.8*F + rnorm(n, sd=.6)
x2 <- 0.7*F + rnorm(n, sd=.7)
x3 <- 0.9*F + rnorm(n, sd=.5)
x4 <- rnorm(n) # bruit pur
dat <- data.frame(x1,x2,x3,x4)
# analyse factorielle 1 facteur
fa1 <- factanal(dat, 1, scores = "regression")
Les loadings représentent la contribution d’un facteur latent à une variable observée; dans les modèles orthogonaux standardisés, ils correspondent aux corrélations variable–facteur. Encore une fois, ici c'est compliqué mais l'idée c'est que les loadings représentent à quel point les items sont liés au facteur latent.
Scores factoriels:
c(fa1$scores)
Les scores factoriels sont des estimations de la position des individus sur le facteur latent. Ils dépendent des loadings, de la matrice de corrélation (ou covariance) entre les items, ainsi que de la méthode d’estimation utilisée (régression, Bartlett, Anderson-Rubin, etc.). Intuitivement, on peut les voir comme une combinaison linéaire pondérée des items, où les poids sont dérivés des loadings et de la structure de corrélation.
On utilise souvent FA pour vérifier que les items mesurent bien une même dimension, puis on calcule simplement une moyenne additive parce qu’elle est plus simple à interpréter, plus stable entre échantillons et moins dépendante du modèle. Lorsque les loadings sont similaires, pondérer par des scores factoriels n’apporte presque rien par rapport à une simple moyenne.
En pratique :
dat$scale_mean <- rowMeans(dat[,c("x1","x2","x3")])
Si la structure est unidimensionnelle et cohérente, la moyenne ≈ score factoriel.
Comment choisir le nombre de dimensions?
library(psych)
fa.parallel(dat)
On peut quand même rester à une seule dimension même si fa.parallel propose plus. Ça dépend de notre théorie.
-
Dire que la PCA “explique toute la variance, y compris l’erreur spécifique” signifie intuitivement qu’elle ne fait aucune distinction entre ce qui, dans une variable, provient d’un construit latent partagé et ce qui relève simplement de son bruit propre ou de ses particularités idiosyncratiques. Imaginons trois items censés mesurer l’autoritarisme : chacun contient une part commune (le trait latent) et une part spécifique (erreur de mesure, ambiguïté de formulation, humeur du répondant, variance propre au contenu précis de l’item). L’analyse factorielle suppose explicitement que seule la variance commune doit servir à estimer le facteur latent, et elle modélise séparément la variance spécifique. La PCA, en revanche, cherche uniquement une combinaison linéaire des variables qui maximise la variance totale observée dans les données, sans se demander d’où vient cette variance ; elle traite donc la variance partagée et la variance spécifique exactement de la même manière. Si un item contient beaucoup de variance idiosyncratique (par exemple parce qu’il est mal formulé ou capte un aspect marginal), cette variance compte quand même dans le calcul de la composante principale. Autrement dit, la PCA compresse l’information statistique disponible, mais elle ne distingue pas structure latente et bruit : elle “explique” toute la dispersion des données, qu’elle soit théoriquement pertinente ou non. Mathématiquement, la distinction vient du fait que la PCA et la FA partent de décompositions différentes de la matrice de covariance (ou de corrélation) des variables observées. En PCA, on prend simplement la matrice de covariance et on fait une décomposition en valeurs propres. Les composantes principales sont des combinaisons linéaires correspondant aux directions de variance maximale, et toute la variance présente dans la matrice de covariance est distribuée entre ces composantes ; il n’y a aucun terme séparé pour l’erreur ou la variance spécifique, car le modèle n’en postule pas l’existence. En analyse factorielle, on impose un modèle où la variance commune est attribuée aux facteurs latents et la variance spécifique est modélisée séparément. Autrement dit, la FA contraint la matrice de covariance à être décomposée en une partie de rang réduit (les facteurs communs) plus un résidu diagonal (le spécifique), alors que la PCA ne sépare rien : elle redistribue toute la variance observée dans des axes orthogonaux sans modèle génératif sous-jacent. La distinction mathématique tient donc au fait que la FA introduit explicitement un terme pour la variance non partagée et estime ses paramètres, tandis que la PCA effectue uniquement une décomposition spectrale de la variance totale, sans hypothèse sur sa provenance. C'est ok de ne pas tout comprendre. C'est réellement compliqué. Il faut juste comprendre l'idée en général. ↩