アイリスデータセットは、PCAを学習するための良い例です。そうは言っても、がく片と花びらの長さと幅を説明する最初の4列は、強く歪んだデータの例ではありません。したがって、結果の主成分の回転はログ変換によってまったく変化しないため、データをログ変換しても結果はあまり変わりません。
他の状況では、ログ変換が適切な選択です。
データセットの一般構造の洞察を得るために、PCAを実行します。私たちは、PCAを支配する可能性のある些細な影響を取り除くために、センタリング、スケーリング、時には対数変換を行います。PCAのアルゴリズムは、各PCの回転を見つけて、残差の2乗、つまりサンプルからPCまでの垂直距離の2乗の合計を最小化します。値が大きいとレバレッジが高くなる傾向があります。
2つの新しいサンプルを虹彩データに注入することを想像してください。花びらの長さが430 cm、花びらの長さが0.0043 cmの花。両方の花は非常に異常であり、それぞれ平均的な例よりも100倍大きく、1000倍小さくなっています。最初の花のレバレッジは非常に大きいため、最初のPCはほとんどの場合、大きな花と他の花との違いを説明します。種のクラスタリングは、その1つの外れ値のために不可能です。データがログ変換される場合、絶対値は相対変動を表します。今、小さな花は最も異常なものです。それにもかかわらず、1つの画像にすべてのサンプルを含めることと、種の公平なクラスタリングを提供することが可能です。この例を確認してください。
data(iris) #get data
#add two new observations from two new species to iris data
levels(iris[,5]) = c(levels(iris[,5]),"setosa_gigantica","virginica_brevis")
iris[151,] = list(6,3, 430 ,1.5,"setosa_gigantica") # a big flower
iris[152,] = list(6,3,.0043,1.5 ,"virginica_brevis") # a small flower
#Plotting scores of PC1 and PC" without log transformation
plot(prcomp(iris[,-5],cen=T,sca=T)$x[,1:2],col=iris$Spec)
#Plotting scores of PC1 and PC2 with log transformation
plot(prcomp(log(iris[,-5]),cen=T,sca=T)$x[,1:2],col=iris$Spec)