Depende del objetivo de su análisis. Algunas prácticas comunes, algunas de las cuales se mencionan en el enlace de whuber:
- La normalización suele realizarse cuando las variables sobre las que se realiza el ACP no se miden en la misma escala. Tenga en cuenta que normalizar implica asignar la misma importancia a todas las variables.
- Si no se miden en la misma escala y se opta por trabajar con las variables no estandarizadas, suele ocurrir que cada PC esté dominado por una única variable y sólo se obtiene una especie de ordenación de las variables por su varianza. (Una de las cargas de cada componente (inicial) será cercana a +1 o -1).
- Los dos métodos conducen a menudo a resultados diferentes, como usted ha podido comprobar.
Ejemplo intuitivo:
Supongamos que tenemos dos variables: la altura de un árbol y la circunferencia del mismo árbol. Convertiremos el volumen en un factor: un árbol será alto en volumen si su volumen es superior a 20 pies cúbicos, y bajo en volumen en caso contrario. Utilizaremos el conjunto de datos trees que viene precargado en R.
>data(trees)
>tree.girth<-trees[,1]
>tree.height<-trees[,2]
>tree.vol<-as.factor(ifelse(trees[,3]>20,"high","low"))
Supongamos ahora que la altura se midiera en millas en lugar de en pies.
>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
El primer componente explica casi el 100% de la variabilidad de los datos. Las cargas:
> loadings(tree.pca)
Loadings:
Comp.1 Comp.2
tree.height -1
tree.girth 1
Evaluación gráfica:
>biplot(tree.pca,xlabs=tree.vol,col=c("grey","red"))
Vemos que los árboles de gran volumen tienden a tener una circunferencia alta, pero la altura de tres no da ninguna información sobre el volumen del árbol. Esto es probablemente erróneo y la consecuencia de las dos medidas de unidad diferentes.
Podríamos utilizar las mismas unidades o estandarizar las variables. Espero que ambas nos den una imagen más equilibrada de la variabilidad. Por supuesto, en este caso se puede argumentar que las variables deberían tener la misma unidad pero no estar estandarizadas, lo que puede ser un argumento válido, si no fuera porque estamos midiendo dos cosas diferentes. (Cuando estuviéramos midiendo el peso del árbol y la circunferencia del árbol, la escala en la que ambos deberían medirse ya no está muy clara. En este caso tenemos un argumento claro para trabajar sobre las variables estandarizadas).
>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"))
Ahora vemos que los árboles que son altos y tienen una gran circunferencia, tienen un gran volumen (esquina inferior izquierda), en comparación con la baja circunferencia y la baja altura de los árboles de bajo volumen (esquina superior derecha). Intuitivamente, esto tiene sentido.