Dépend de l'objectif de votre analyse. Quelques pratiques courantes, dont certaines sont mentionnées dans le lien de whuber:
- La normalisation est généralement effectuée lorsque les variables sur lesquelles l'ACP est effectuée ne sont pas mesurées sur la même échelle. Notez que la standardisation implique d'attribuer une importance égale à toutes les variables.
- S'ils ne sont pas mesurés sur la même échelle et que vous choisissez de travailler sur les variables non standardisées, il arrive souvent que chaque PC soit dominé par une seule variable et vous obtenez juste une sorte de classement des variables par leur variance. (L'un des chargements de chaque composant (précoce) sera proche de +1 ou -1.)
- Les deux méthodes conduisent souvent à des résultats différents, comme vous l'avez constaté.
Exemple intuitif:
Supposons que vous ayez deux variables: la hauteur d'un arbre et la circonférence du même arbre. Nous convertirons le volume en un facteur: un arbre aura un volume élevé si son volume est supérieur à 20 pieds cubes et un volume faible dans le cas contraire. Nous utiliserons l'ensemble de données d'arbres préchargé dans R.
>data(trees)
>tree.girth<-trees[,1]
>tree.height<-trees[,2]
>tree.vol<-as.factor(ifelse(trees[,3]>20,"high","low"))
Supposons maintenant que la hauteur soit réellement mesurée en miles au lieu de pieds.
>tree.height<-tree.height/5280
>tree<-cbind(tree.height,tree.girth)
>
>#do the PCA
>tree.pca<-princomp(tree)
>summary(tree.pca)
Importance of components:
Comp.1 Comp.2
Standard deviation 3.0871086 1.014551e-03
Proportion of Variance 0.9999999 1.080050e-07
Cumulative Proportion 0.9999999 1.000000e+00
La première composante explique près de 100% de la variabilité des données. Les chargements:
> loadings(tree.pca)
Loadings:
Comp.1 Comp.2
tree.height -1
tree.girth 1
Évaluation graphique:
>biplot(tree.pca,xlabs=tree.vol,col=c("grey","red"))
Nous voyons que les arbres à volume élevé ont tendance à avoir une circonférence d'arbre élevée, mais les trois hauteurs ne donnent aucune information sur le volume des arbres. C'est probablement faux et la conséquence des deux mesures unitaires différentes.
Nous pourrions utiliser les mêmes unités ou standardiser les variables. Je pense que les deux mèneront à une image plus équilibrée de la variabilité. Bien sûr, dans ce cas, on peut affirmer que les variables devraient avoir la même unité mais ne pas être normalisées, ce qui peut être un argument valable, si nous ne mesurons pas deux choses différentes. (Lorsque nous mesurerions le poids de l'arbre et la circonférence de l'arbre, l'échelle sur laquelle les deux devraient être mesurés n'est plus très claire. Dans ce cas, nous avons un argument clair pour travailler sur les variables normalisées.)
>tree.height<-tree.height*5280
>tree<-cbind(tree.height,tree.girth)
>
>#do the PCA
>tree.pca<-princomp(tree)
> summary(tree.pca)
Importance of components:
Comp.1 Comp.2
Standard deviation 6.5088696 2.5407042
Proportion of Variance 0.8677775 0.1322225
Cumulative Proportion 0.8677775 1.0000000
> loadings(tree.pca)
Loadings:
Comp.1 Comp.2
tree.height -0.956 0.293
tree.girth -0.293 -0.956
>biplot(tree.pca,xlabs=tree.vol,col=c("grey","red"))
Nous voyons maintenant que les arbres qui sont grands et qui ont une grande circonférence, ont un volume élevé (coin inférieur gauche), par rapport à une circonférence basse et une faible hauteur pour les arbres à faible volume (coin supérieur droit). Cela a un sens intuitif.
Cependant, si l'on regarde attentivement, on voit que le contraste entre le volume haut / bas est le plus fort dans le sens de la circonférence et non dans le sens de la hauteur. Voyons ce qui se passe quand on standardise:
>tree<-scale(tree,center=F,scale=T)
>tree.pca<-princomp(tree)
> summary(tree.pca)
Importance of components:
Comp.1 Comp.2
Standard deviation 0.2275561 0.06779544
Proportion of Variance 0.9184749 0.08152510
Cumulative Proportion 0.9184749 1.00000000
> loadings(tree.pca)
Loadings:
Comp.1 Comp.2
tree.height 0.203 -0.979
tree.girth 0.979 0.203
>biplot(tree.pca,xlabs=tree.vol,col=c("grey","red"))
En effet, la circonférence explique désormais la majorité de la différence dans les arbres à volume élevé et faible! (La longueur de la flèche dans le biplot indique la variance de la variable d'origine.) Ainsi, même si les choses sont mesurées à la même échelle, la normalisation peut être utile. Une non standardisation peut être recommandée lorsque nous comparons par exemple la longueur de différentes espèces d'arbres car il s'agit exactement de la même mesure.