Matrisi kullanmanız gerekir $loadings
, değil $rotmat
:
x <- matrix(rnorm(600),60,10)
prc <- prcomp(x, center=TRUE, scale=TRUE)
varimax7 <- varimax(prc$rotation[,1:7])
newData <- scale(x) %*% varimax7$loadings
Matris $rotmat
, döndürülmemiş olanlardan yeni yükler üreten dik matrisdir.
12 Şubat 2015 itibarıyla EDIT:
Aşağıda @amoeba tarafından haklı olarak işaret edildiği gibi (ayrıca önceki yazısının yanı sıra @ttnphns'tan başka bir yazıyı da inceleyin ) bu cevap doğru değil. Bir veri matrisi düşünün . Tekil değer ayrışımı
, burada sütunları olarak (normalleştirilmiş) özvektörlerine sahiptir . Şimdi, bir dönme koordinatların değişmesi ve yukarıdaki eşitliğin şu şekilde yazılmasıdır:
, bir elde etmek için ortogonal bir matrisdir seyrek yakın (girişler arasındaki maksimum kontrast, gevşek konuşma). Şimdi, hepsi bu olsaydın×mX
X=USVT
VX′XX=(UST)(TTVT)=U∗V∗
TV∗ki öyle değil, biri olarak puanları elde etmek için yukarıdaki eşitliği ile çarpabilir , ama elbette tüm PC'yi asla döndürmüyoruz. Aksine, bir alt kümesini hala iyi bir rank- içerir yaklaştırılmasını ,
Bu şekilde döndürüldüğü çözüm hemen
şimdi bir matrisidir. Biz artık öyle değil sadece çarpma can arasında devrik ile ziyade biz çözümlerinden biri @amoeba tarafından tarif başvurmak gerekir.
V∗U∗X(V∗)Tk<mkXX≈(UkSkTk)(T T k V T k )=U ∗ k V ∗ k V ∗ k k×nXV ∗ kX≈(UkSk)(VTk)
X≈(UkSkTk)(TTkVTk)=U∗kV∗k
V∗kk×nXV∗k
Başka bir deyişle, önerdiğim çözüm sadece işe yaramaz ve saçma olacağı belirli bir durumda doğrudur.
Bu konuyu bana açıklığa kavuşturduğu için içten teşekkürler @amoeba'ya; Yıllardır bu yanlış anlama ile yaşıyorum.
@ Amip yayınının yola yukarıdaki notu o / o ilişkilendirmek gibi görünüyor bir nokta da ile bölgesi . PCA'da norm 1 sütunlarına sahip olması ve temel bileşenin değerlerinde emmesi daha yaygındır . Aslında, bunlar genellikle tabi olan orijinal (ortalanmış, belki ölçeklendirilmiş) değişkenlerin doğrusal kombinasyonları olarak sunulur . Her iki şekilde de kabul edilebilir olduğunu düşünüyorum ve aradaki her şey (biplot analizinde olduğu gibi).SVLVSvTiX (i=1,…,m)∥vi∥=1
FURTHER EDIT - 12 Şubat 2015
@ Amaeba'nın işaret ettiği gibi, dikdörtgen olsa da , önerdiğim çözüm hala kabul edilebilir olabilir: birim matris ve . Yani her şey, birinin tercih ettiği puanların tanımına bağlı görünüyor. V ∗ k ( V ∗ k ) T X ( V ∗ k ) T ≈ U ∗ kV∗kV∗k(V∗k)TX(V∗k)T≈U∗k