Sự khác biệt giữa chức năng R prcomp và Princeomp là gì?


70

Tôi đã so sánh ?prcomp?princomptìm thấy điều gì đó về phân tích thành phần chính của chế độ Q và chế độ R (PCA). Nhưng thành thật mà nói - tôi không hiểu điều đó. Bất cứ ai có thể giải thích sự khác biệt và thậm chí có thể giải thích khi áp dụng đó?


2
Là câu hỏi về sự khác biệt giữa các chức năng prcomp và Princomp trong R hoặc về sự khác biệt giữa "Chế độ Q" và "PCA chế độ R"? Hai người không liên quan.
Brett

Đã được một lúc rồi. Nhưng tôi sẽ kiểm tra ngay khi có thời gian. IIRC Tôi thực sự có một số khác biệt ...
hans0l0

Câu trả lời:


50

Sự khác biệt giữa chúng không liên quan gì đến loại PCA mà chúng thực hiện, chỉ là phương pháp chúng sử dụng. Như trang trợ giúp cho prcompbiết:

Việc tính toán được thực hiện bằng cách phân tách giá trị số ít của ma trận dữ liệu (tập trung và có thể thu nhỏ), chứ không phải bằng cách sử dụng eigentrên ma trận hiệp phương sai. Đây thường là phương pháp ưa thích cho độ chính xác số.

Mặt khác, princomp trang trợ giúp cho biết:

Việc tính toán được thực hiện bằng cách sử dụng eigenma trận tương quan hoặc hiệp phương sai, như được xác định bởi cor. Điều này được thực hiện để tương thích với kết quả S-PLUS. Một phương pháp tính toán ưa thích là sử dụng svdtrên x, như được thực hiện trong prcomp. "

Vì vậy, prcompđược ưu tiên , mặc dù trong thực tế, bạn khó có thể thấy nhiều sự khác biệt (ví dụ: nếu bạn chạy các ví dụ trên các trang trợ giúp, bạn sẽ nhận được kết quả giống hệt nhau).


1
Có một số chi tiết kỹ thuật khủng khiếp về các đại số tuyến tính và LAPACK cơ bản khác nhau được sử dụng trong câu trả lời của tôi cho Tại sao các thành phần chính trong PCA (hàm riêng của ma trận hiệp phương sai) cùng trực giao?
Cá bạc

1
Ngoài ra, xem Tại sao PCA của dữ liệu bằng phương tiện SVD của dữ liệu? để thảo luận về lý do tại sao SVD trên ma trận dữ liệu, như được triển khai bởi prcomp, là một phương pháp được ưa thích.
amip nói rằng Phục hồi Monica

22

Thường là một phân tích đa biến (tương quan tính toán, giải nén latents, vv) được thực hiện các cột dữ liệu đó là các tính năng hay thắc mắc, - trong khi các đơn vị mẫu, các hàng, là r espondents. Do đó cách này được gọi là phân tích cách R. Tuy nhiên, đôi khi, bạn có thể muốn thực hiện phân tích đa biến các đáp ứng, trong khi q uestions được coi là đơn vị mẫu. Đó sẽ là cách phân tích Q.

Không có sự khác biệt chính thức giữa hai loại, vì vậy bạn có thể quản lý cả hai với cùng một chức năng, chỉ chuyển đổi dữ liệu của bạn. Tuy nhiên, có những khác biệt trong các vấn đề về tiêu chuẩn hóa và giải thích kết quả.

Đây là câu trả lời chung chung: Tôi không chạm vào cụ thể các chức năng R prcompprincompvì tôi không phải là người dùng R và không nhận thức được sự khác biệt có thể có giữa chúng.


5

Một tài liệu hữu ích và cụ thể từ Gregory B. Anderson , có tiêu đề PRINCIPAL COMPONENT ANALYSIS IN R AN EXAMINATION OF THE DIFFERENT FUNCTIONS AND METHODS TO PERFORM PCAđã cung cấp thêm thông tin về chủ đề này.

Hai đoạn sau đây được trích từ phần giới thiệu:

Trong R, có hai phương pháp chung để thực hiện PCA mà không có bất kỳ giá trị bị thiếu nào: (1) phân rã phổ (chế độ R [còn được gọi là phân tách eigendec]) và (2) phân rã giá trị số ít (Q-mode; R Development Core Team 2011). Cả hai phương pháp này đều có thể được thực hiện bằng cách sử dụng hàm eigen (chế độ R) và svd (chế độ Q) tương ứng hoặc có thể được thực hiện bằng cách sử dụng nhiều hàm PCA có trong gói thống kê và các gói có sẵn khác. Phương pháp phân tích phổ phân tích kiểm tra hiệp phương sai và tương quan giữa các biến, trong khi phương pháp phân rã giá trị số ít xem xét hiệp phương sai và tương quan giữa các mẫu. Mặc dù cả hai phương thức có thể dễ dàng được thực hiện trong R, phương thức phân rã giá trị số ít (nghĩa là

Tài liệu này tập trung vào việc so sánh các phương pháp khác nhau để thực hiện PCA trong R và cung cấp các kỹ thuật trực quan phù hợp để kiểm tra tính quy phạm trong gói thống kê. Cụ thể hơn, tài liệu này so sánh sáu chức năng khác nhau được tạo hoặc có thể được sử dụng cho PCA: eigen, Princeomp, svd, prcomp, PCA và pca. Trong toàn bộ tài liệu, mã R thiết yếu để thực hiện các chức năng này được nhúng trong văn bản bằng phông chữ Courier New và được mã hóa màu bằng kỹ thuật được cung cấp trong Tinn-R ( https://sourceforge.net/projects/tinn-r ). Ngoài ra, kết quả từ các hàm được so sánh bằng cách sử dụng quy trình mô phỏng để xem các phương thức khác nhau có khác nhau về giá trị riêng, hàm riêng và điểm được cung cấp từ đầu ra không.


2
Câu trả lời sẽ tốt hơn khi chúng độc lập, vì các liên kết có xu hướng bị hỏng (ví dụ: nếu trang di chuyển hoặc bị xóa). Bạn có phiền khi cố gắng mở rộng câu trả lời của bạn?
Patrick Coulombe

@PatrickCoulombe, Nó đã được thực hiện. Cảm ơn đề nghị của bạn. Tôi sẽ thông báo về điều này trong tương lai.
chim cánh cụt

1

Chúng khác nhau khi cả hai sử dụng ma trận hiệp phương sai. Khi chia tỷ lệ (chuẩn hóa) dữ liệu huấn luyện, prcompsử dụng làm mẫu số nhưng sử dụng làm mẫu số của nó. Sự khác biệt của hai mẫu số này được giải thích trong hướng dẫn này về phân tích thành phần chính .n1princompn

Dưới đây là kết quả kiểm tra của tôi:

> 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

Dữ liệu kiểm tra:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.