Bu soru ana bileşenleri hesaplamanın etkili bir yoludur.
Doğrusal PCA ile ilgili birçok metin, casewise verilerinin tekil değer ayrışımını kullanarak savunur . Veri varsa kendisine, ve değişkenler (kendi değiştirmek istiyor sütun temel bileşenler), yaptığımız SVD: X = U S V ' (. Kare özdeğerler kökleri), tekil değerler ana çapını işgal S , sağ özvektörler V , eksen değişkenlerinin eksen-bileşenlerine ortogonal dönme matrisidir, sol özvektörler U sadece durumlar için V gibidir . Daha sonra bileşen değerlerini C = X V = U S olarak hesaplayabiliriz..
Değişkenlerin PCA'sını yapmanın başka bir yolu, kare matrisin ayrışmasıdır (yani R , değişkenler arasında korelasyonlar veya kovaryanslar vb. Olabilir ). Kare simetrik pozitif yarı kesin matris ile, aynı sonucu verir: dekompozisyon ya da tekil değer ayrışma bozunma-öz edilebilir R = V L V ' diyagonal olarak öz değerleri ile L ve V daha önce tarif edildiği gibi. Bileşen değerleri C = X V olacaktır .
Şimdi, sorum şu: eğer verileri büyük bir matris ise ve vakaların sayısı (bu genellikle bir durumdur) değişken sayısından çok daha büyükse, o zaman yolun (1) yoldan çok daha yavaş olması beklenir (2), çünkü yol (1) büyük bir matrise oldukça pahalı bir algoritma (SVD gibi) uygular; bizim durumumuzda gerçekten ihtiyaç duymadığımız U matrisini hesaplar ve saklar (değişkenlerin PCA'sı). Eğer öyleyse, o zaman neden bu kadar çok ders kitabı savunuyor ya da sadece tek yoldan bahsediyor gibi görünüyor (1)? Belki de olduğu verimli ve bir şey eksik?
Joliffe, Principal component analysis, 2nd ed.
Aslında, Joliffe iki yolu da anlatıyor, ancak PCA'nın ana bölümünde, hatırlayabildiğim kadarıyla, sadece 1.
R
svd