分析の目的に依存します。いくつかの一般的なプラクティス、その一部はwhuberのリンクに記載されています。
- 通常、標準化は、PCAが実行される変数が同じスケールで測定されない場合に行われます。標準化とは、すべての変数に等しい重要度を割り当てることを意味することに注意してください。
- それらが同じスケールで測定されておらず、標準化されていない変数で作業することを選択した場合、各PCが単一の変数によって支配されている場合が多く、変数による分散の並べ替えが行われます。(各(初期)コンポーネントの負荷の1つは+1または-1に近くなります。)
- あなたが経験したように、2つの方法はしばしば異なる結果につながります。
直観的な例:
2つの変数があるとします:ツリーの高さと同じツリーの周囲。ボリュームをファクターに変換します。ボリュームが20立方フィートを超える場合、ツリーはボリュームが大きくなり、そうでない場合はボリュームが小さくなります。Rにプリロードされているtreesデータセットを使用します。
>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"))
ボリュームの大きいツリーでは、周囲のサイズが大きくなる傾向がありますが、3つの高さではツリーのボリュームに関する情報は得られません。これはおそらく間違っており、2つの異なる単位測定の結果です。
同じ単位を使用することも、変数を標準化することもできます。両方とも、変動性のよりバランスのとれた全体像につながると期待しています。もちろん、この場合、変数は同じ単位を持つべきであるが、標準化されるべきではなく、有効な引数である可能性があると主張することができます。(木の重量と木の周りを測定する場合、両方を測定するスケールはもはや明確ではありません。この場合、標準化された変数を処理する明確な議論があります。)
>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"))
確かに、胴回りは現在、高ボリュームの木と低ボリュームの木の違いの大部分を説明しています!(バイプロットの矢印の長さは、元の変数の分散を示しています。)そのため、物事が同じスケールで測定されている場合でも、標準化は有用です。たとえば、異なる樹種の長さを比較する場合、これはまったく同じ測定であるため、標準化しないことをお勧めします。