R fonksiyonları prcomp ve princomp arasındaki fark nedir?


70

Karşılaştırma yaptım ?prcompve ?princompQ modu ve R modu ana bileşen analizi (PCA) hakkında bir şeyler buldum. Ama dürüst olmak gerekirse, anlamıyorum. Birisi farkı açıklayabilir ve belki de ne zaman uygulanacağını açıklayabilir mi?


2
Prcomp ve princomp işlevleri arasında R'deki veya "Q modu" ile "R modu PCA" arasındaki fark hakkında soru mu var? İkisi ilgisiz.
Brett,

Uzun zaman oldu. Ama zamanım var olmaz kontrol edeceğim. IIRC Aslında bazı farklılıklar
yaşadım

Yanıtlar:


50

Aralarındaki fark, yaptıkları PCA türü ile sadece kullandıkları yöntemle ilgisi yoktur. Gibi yardım sayfasına için prcompdiyor ki:

Hesaplama (merkezlenmiş ve büyük olasılıkla ölçeklenmiş) veri matrisinin tekil bir değer ayrıştırmasıyla yapılır eigen, kovaryans matrisi üzerinde kullanılmaz . Bu genellikle sayısal doğruluk için tercih edilen yöntemdir.

Öte yandan, princomp yardım sayfasında diyor ki:

Hesaplama, eigenbelirlendiği şekilde korelasyon veya kovaryans matrisi kullanılarak yapılır cor. Bu, S-PLUS sonucuyla uyumluluk için yapılır. Hesaplama tercih edilen bir yöntem kullanmak için svdüzerine xyapıldığı gibi, prcomp".

Yani, prcomptercih edilir pratikte çok daha farkı görmek pek mümkün olmasına rağmen, (eğer yardım sayfalarında örnekler çalıştırırsanız Örneğin, aynı sonuçları elde olmalıdır).



1
Ayrıca bkz . Verilerin SVD'si ile neden veri PCA'sı? SVD'nin neden olduğu gibi, veri matrisi üzerindeki SVD'nin prcomptercih edilen bir yöntem olduğunu tartışmak için .
amip diyor Reinstate Monica

22

Genellikle, çok değişkenli analiz özellikleri veya soru vardır veri sütunları yapılır (vs, latents ayıklanması faktörleri analiz), - numune birimleri iken, satırlar, olan R espondents. Dolayısıyla bu şekilde R yol analizi denir . Bazen, ama, sen ise responsents değişkenli analiz yapmak isteyebilir q uestions örnek birimleri olarak kabul edilir. Bu Q yol analizi olurdu .

İkisi arasında resmi bir fark yoktur, dolayısıyla her ikisini de aynı işlevle yönetebilirsiniz, yalnızca verilerinizi aktarın. Bununla birlikte, standardizasyon ve sonuçların yorumlanması konularında farklılıklar vardır.

Bu genel bir cevaptır: Özellikle R işlevlerine dokunmuyorum prcompve princompR kullanıcısı olmadığım ve aralarındaki olası farkların farkında olmadığım için.


5

Gregory B. Anderson'ın yararlı ve özel dokümantasyonu başlıklı PRINCIPAL COMPONENT ANALYSIS IN R AN EXAMINATION OF THE DIFFERENT FUNCTIONS AND METHODS TO PERFORM PCAbu konuda daha fazla bilgi verdi.

Aşağıdaki iki paragraf girişten çıkarıldı:

R'de PCA'yı herhangi bir eksik değer olmadan gerçekleştirmek için iki genel yöntem vardır: (1) spektral ayrıştırma (R-modu [aynı zamanda eigende birleştirme] olarak da bilinir) ve (2) tekil değer ayrışması (Q-modu; R Development Core Team 2011). Bu metotların her ikisi de sırasıyla eigen (R-mode) ve svd (Q-mode) fonksiyonlarını kullanarak ya da istatistik paketinde ve diğer mevcut ek paketlerde bulunan birçok PCA fonksiyonunu kullanarak gerçekleştirilebilir. Analizin spektral ayrıştırma yöntemi değişkenler arasındaki kovaryansları ve korelasyonları incelerken, tekil değer ayrıştırma metodu örnekler arasındaki kovaryanslara ve korelasyonlara bakar. Her iki yöntem de R içinde kolayca gerçekleştirilebilse de, tekil değer ayrıştırma yöntemi (yani

Bu belge, PCA'yı R'de gerçekleştirmek için kullanılan farklı yöntemleri karşılaştırmaya odaklanır ve istatistiksel paket içindeki normalliği incelemek için uygun görselleştirme teknikleri sunar. Daha spesifik olarak, bu belge PCA için oluşturulmuş veya kullanılabilecek altı farklı işlevi karşılaştırır: eigen, princomp, svd, prcomp, PCA ve pca. Belge boyunca bu işlevleri yerine getirmek için gerekli R kodu Courier New yazı tipini kullanarak metnin içine gömülür ve Tinn-R'de ( https://sourceforge.net/projects/tinn-r ) verilen teknik kullanılarak renk kodlaması yapılır . Ek olarak, fonksiyonlardan elde edilen sonuçlar, farklı yöntemlerin özdeğerlerde, özvektörlerde ve çıktıdan alınan puanlarda farklılık gösterip göstermediğini görmek için simülasyon prosedürü kullanılarak karşılaştırılır.


2
Cevaplar bağımsız olduklarında daha iyidir, çünkü bağlantılar kopma eğilimindedir (örneğin sayfa hareket ederse veya silinirse). Cevabınızı genişletmeyi dener misiniz?
Patrick Coulombe

@PatrickCoulombe, Yapıldı. Önerin için teşekkürler. Bunu gelecekte farkedeceğim.
şımarık

1

prcompn-1princompn

Aşağıda test sonuçlarım:

> job<-read.table("./job_perf.txt", header=TRUE, sep="")
> pc.cr<-prcomp(job, scale=TRUE, cor=TRUE, scores=TRUE)
> pc.cr1<-princomp(job, scale=TRUE, cor=TRUE, scores=TRUE)
> pc.cr$scale
    commun probl_solv    logical      learn   physical appearance
  5.039841   1.689540   2.000000   4.655398   3.770700   4.526689
> pc.cr1$scale
    commun probl_solv    logical      learn   physical appearance
  4.805300   1.610913   1.906925   4.438747   3.595222   4.316028

Test verisi:

commun probl_solv logical learn physical appearance 12 52 20 44 48 16 12 57 25 45 50 16 12 54 21 45 50 16 13 52 21 46 51 17 14 54 24 46 51 17 22 52 25 54 58 26 22 56 26 55 58 27 17 52 21 45 52 17 15 53 24 45 53 18 23 54 23 53 57 24 25 54 23 55 58 25

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.