Зависит от цели вашего анализа. Некоторые общие практики, некоторые из которых упоминаются в ссылке на whuber:
- Стандартизация обычно проводится, когда переменные, на которых выполняется PCA, не измеряются в одной и той же шкале. Обратите внимание, что стандартизация подразумевает присвоение одинаковой важности всем переменным.
- Если они не измеряются в одной и той же шкале, и вы решаете работать с нестандартизированными переменными, часто бывает, что на каждом ПК доминирует одна переменная, и вы просто получаете своего рода упорядочение переменных по их дисперсии. (Одна из загрузок каждого (раннего) компонента будет близка к +1 или -1.)
- Как вы уже видели, эти два метода часто приводят к разным результатам.
Интуитивно понятный пример:
Предположим, у вас есть две переменные: высота дерева и обхват одного и того же дерева. Мы преобразуем объем в фактор: дерево будет иметь большой объем, если его объем превышает 20 кубических футов, а в противном случае - низкий. Мы будем использовать набор данных деревьев, который предварительно загружен в R.
>data(trees)
>tree.girth<-trees[,1]
>tree.height<-trees[,2]
>tree.vol<-as.factor(ifelse(trees[,3]>20,"high","low"))
Теперь предположим, что высота была измерена в милях, а не в футах.
>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
Первый компонент объясняет почти 100% изменчивости данных. Нагрузки:
> loadings(tree.pca)
Loadings:
Comp.1 Comp.2
tree.height -1
tree.girth 1
Графическая оценка:
>biplot(tree.pca,xlabs=tree.vol,col=c("grey","red"))
Мы видим, что деревья с большим объемом имеют тенденцию иметь высокий обхват дерева, но три высоты не дают никакой информации об объеме дерева. Это, вероятно, неправильно и является следствием двух разных единичных мер.
Мы могли бы использовать одни и те же единицы или стандартизировать переменные. Я ожидаю, что оба приведут к более сбалансированной картине изменчивости. Конечно, в этом случае можно утверждать, что переменные должны иметь одинаковую единицу, но не должны быть стандартизированы, что может быть допустимым аргументом, если бы мы не измеряли две разные вещи. (Когда мы будем измерять вес дерева и обхват дерева, масштаб, на котором должны измеряться оба, уже не очень ясен. В этом случае у нас есть четкий аргумент для работы со стандартизованными переменными.)
>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"))
Теперь мы видим, что деревья, которые высокие и имеют большой обхват, имеют большой объем (нижний левый угол) по сравнению с низким обхватом и низкой высотой для деревьев с небольшим объемом (верхний правый угол). Это интуитивно понятно.
Однако, если присмотреться, мы видим, что контраст между высокой / низкой громкостью наиболее сильный в направлении обхвата, а не в направлении высоты. Давайте посмотрим, что происходит, когда мы стандартизируем:
>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"))
Действительно, обхват теперь объясняет большую часть различий в деревьях с большим и низким объемом! (Длина стрелки в биплоте указывает на отклонение в исходной переменной.) Таким образом, даже если измерения измеряются в одном и том же масштабе, стандартизация может оказаться полезной. Не стандартизировать можно рекомендовать, когда мы, например, сравниваем длину разных видов деревьев, потому что это одно и то же измерение.