Kumpulan data iris adalah contoh yang bagus untuk mempelajari PCA. Yang mengatakan, empat kolom pertama yang menggambarkan panjang dan lebar sepal dan kelopak bukan contoh data yang sangat miring. Oleh karena itu log-transformasi data tidak banyak mengubah hasil, karena rotasi yang dihasilkan dari komponen-komponen utama cukup tidak berubah oleh log-transformasi.
Dalam situasi lain, transformasi log adalah pilihan yang baik.
Kami melakukan PCA untuk mendapatkan wawasan tentang struktur umum dari kumpulan data. Kami memusatkan, menskalakan, dan terkadang log-transform untuk menyaring beberapa efek sepele, yang dapat mendominasi PCA kami. Algoritma PCA pada gilirannya akan menemukan rotasi setiap PC untuk meminimalkan residu kuadrat, yaitu jumlah jarak tegak lurus kuadrat dari sampel ke PC. Nilai besar cenderung memiliki leverage yang tinggi.
Bayangkan menyuntikkan dua sampel baru ke dalam data iris. Bunga dengan panjang kelopak 430 cm dan bunga dengan panjang kelopak 0,0043 cm. Kedua bunga ini sangat abnormal, masing-masing 100 kali lebih besar dan 1000 kali lebih kecil daripada rata-rata. Leverage bunga pertama sangat besar, sehingga PC pertama sebagian besar akan menjelaskan perbedaan antara bunga besar dan bunga lainnya. Pengelompokan spesies tidak dimungkinkan karena spesies yang outlier. Jika data ditransformasi-log, nilai absolut sekarang menjelaskan variasi relatif. Sekarang bunga kecil adalah yang paling abnormal. Meskipun demikian dimungkinkan untuk keduanya mengandung semua sampel dalam satu gambar dan memberikan pengelompokan spesies yang adil. Lihat contoh ini:
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)