Bộ dữ liệu mống mắt là một ví dụ điển hình để tìm hiểu PCA. Điều đó nói rằng, bốn cột đầu tiên mô tả chiều dài và chiều rộng của cánh hoa và cánh hoa không phải là một ví dụ về dữ liệu bị sai lệch mạnh. Do đó, chuyển đổi log dữ liệu không làm thay đổi kết quả nhiều, vì vòng quay kết quả của các thành phần chính hoàn toàn không thay đổi khi chuyển đổi log.
Trong các tình huống khác, chuyển đổi log là một lựa chọn tốt.
Chúng tôi thực hiện PCA để hiểu rõ hơn về cấu trúc chung của một tập dữ liệu. Chúng tôi tập trung, mở rộng quy mô và đôi khi chuyển đổi log để lọc một số hiệu ứng tầm thường, có thể chi phối PCA của chúng tôi. Thuật toán của PCA sẽ lần lượt tìm ra vòng quay của mỗi PC để giảm thiểu phần dư bình phương, cụ thể là tổng khoảng cách vuông góc bình phương từ bất kỳ mẫu nào đến PC. Giá trị lớn có xu hướng có đòn bẩy cao.
Hãy tưởng tượng tiêm hai mẫu mới vào dữ liệu mống mắt. Một bông hoa có chiều dài cánh hoa 430 cm và một bông hoa có chiều dài cánh hoa là 0,0043 cm. Cả hai bông hoa rất bất thường lớn hơn 100 lần và nhỏ hơn 1000 lần so với các ví dụ trung bình. Đòn bẩy của bông hoa đầu tiên là rất lớn, do đó, các PC đầu tiên sẽ mô tả sự khác biệt giữa bông hoa lớn và bất kỳ bông hoa nào khác. Phân cụm các loài là không thể do một ngoại lệ. Nếu dữ liệu được chuyển đổi log, giá trị tuyệt đối sẽ mô tả biến thể tương đối. Bây giờ bông hoa nhỏ là bất thường nhất. Tuy nhiên, có thể cả hai đều chứa tất cả các mẫu trong một hình ảnh và cung cấp một cụm công bằng của loài. Kiểm tra ví dụ này:
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)