Biến nào giải thích thành phần PCA nào và ngược lại?


14

Sử dụng dữ liệu này:

head(USArrests)
nrow(USArrests)

Tôi có thể làm PCA như vậy:

plot(USArrests)
otherPCA <- princomp(USArrests)

Tôi có thể nhận được các thành phần mới trong

otherPCA$scores

và tỷ lệ phương sai được giải thích bởi các thành phần với

summary(otherPCA)

Nhưng điều gì sẽ xảy ra nếu tôi muốn biết biến nào được giải thích chủ yếu bởi thành phần chính nào? Và ngược lại: ví dụ PC1 hay PC2 được giải thích chủ yếu bởi murder? Tôi có thể làm cái này như thế nào?

Tôi có thể nói ví dụ rằng PC1 được giải thích 80% bằng cách murderhay assaultkhông?

Tôi nghĩ rằng các tải giúp tôi ở đây, nhưng chúng cho thấy tính định hướng không phải là phương sai được giải thích như tôi hiểu, vd

otherPCA$loadings

Loadings:
         Comp.1 Comp.2 Comp.3 Comp.4
Murder                         0.995
Assault  -0.995                     
UrbanPop        -0.977 -0.201       
Rape            -0.201  0.974   

2
Lưu ý rằng các dấu hiệu của tải là tùy ý. Cả ba biến tội phạm đều có mối tương quan tích cực với nhau, nhưng bạn sẽ rất thông minh khi làm việc từ các dấu hiệu của tải trọng ở trên.
Nick Cox

Thật không may, tôi tin rằng câu trả lời được chấp nhận cho câu hỏi này là không chính xác. Tôi đã đăng câu trả lời của riêng tôi dưới đây.
amip nói rằng Phục hồi lại

Câu trả lời:


10

Bạn đã đúng, các tải có thể giúp bạn ở đây. Chúng có thể được sử dụng để tính toán mối tương quan giữa các biến và các thành phần chính. Ngoài ra, tổng tải trọng bình phương của một biến trên tất cả các thành phần chính bằng 1. Do đó, tải trọng bình phương cho bạn biết tỷ lệ phương sai của một biến được giải thích bởi một thành phần chính.

Vấn đề với Princeomp là, nó chỉ cho thấy tải "rất cao". Nhưng vì các tải trọng chỉ là các hàm riêng của ma trận hiệp phương sai, nên người ta có thể nhận được tất cả các tải bằng cách sử dụng eigenlệnh trong R:

 loadings <- eigen(cov(USArrests))$vectors
 explvar <- loadings^2

Bây giờ, bạn có thông tin mong muốn trong ma trận explvar.


cảm ơn anh chàng ngẫu nhiên, bạn có thể chỉ cho tôi ví dụ assaulthoặc urban popchúng ta có thể làm điều này? một phần bối rối vì chỉ có một mối tương quan hiện diện trong ma trận choassault
user1320502

1
Xin lỗi, tôi đã cải thiện câu trả lời của mình và không nhận thấy bạn đã nhận xét bài đăng của tôi. tải tấn công với -0.995 trên PC1. Do đó, người ta có thể kết luận sau khi bình phương giá trị này PC1 giải thích 99% phương sai của cuộc tấn công biến. Sau khi bình phương các giá trị của pop đô thị, bạn có thể kết luận PC3 giải thích 4% và PC2 95,5% về phương sai của pop đô thị.
Random_guy

1
OP không hỏi về bao nhiêu PCA có thể được quy cho một biến? Câu trả lời của bạn là về số lượng biến có thể được giải thích bằng CPA
Heisenberg

2
Quay trở lại câu hỏi này, tôi nghĩ câu trả lời này là sai. Xem xét 10 biến có tương quan cao (99%) với nhau và tất cả đều được chia tỷ lệ thành phương sai đơn vị. PC đầu tiên về cơ bản sẽ là trung bình giữa chúng. Vì vậy, các eigenvector đầu tiên sẽ là với chiều dài 1 , và eigenvalue đầu tiên là gần như 10 , nói 9,9 . Bây giờ, mỗi biến được giải thích gần như đầy đủ bởi PC đầu tiên. Và PC đầu tiên được giải thích gần như đầy đủ bởi mỗi biến. Nhưng làm thế nào bạn sẽ kết luận cái này hay cái khác từ các yếu tố bình phương củaw=(0.3,0.3,...0.3)1109.9 là tất cả 0,1 ? w0.1
amip nói phục hồi Monica

2
Xin lỗi để nhấn mạnh, nhưng bạn có nghĩ rằng tôi sai trong nhận xét của tôi ở trên? Nếu không, sau đó bạn có thể chỉnh sửa câu trả lời của mình để loại bỏ sự nhầm lẫn tiềm ẩn, điều này sẽ rất hữu ích cho những độc giả tương lai. Tôi vừa đăng một câu trả lời cho mình, cố gắng giải thích những vấn đề này chi tiết hơn.
amip nói rằng Phục hồi Monica

9

Tôi nghĩ rằng câu trả lời được chấp nhận có thể gây hiểu nhầm một cách nguy hiểm (-1). Có ít nhất bốn câu hỏi khác nhau được trộn lẫn với nhau trong OP. Tôi sẽ xem xét chúng từng cái một.


  • Q1. Bao nhiêu phương sai của một PC nhất định được giải thích bởi một biến ban đầu nhất định? Bao nhiêu phương sai của một biến ban đầu nhất định được giải thích bởi một PC nhất định?

r2riVisiLiLi=(si)1/2Vi. Các yếu tố của nó là mối tương quan của PC này với các biến ban đầu tương ứng.

ViLi

Ngoài ra, nếu PCA được thực hiện trên hiệp phương sai (và không dựa trên tương quan), thì tải cũng sẽ cung cấp cho bạn hiệp phương sai, không tương quan. Để có được mối tương quan, người ta cần tính toán chúng theo cách thủ công, theo PCA. [Câu trả lời hiện được chấp nhận là không rõ ràng về điều đó.]

  • 80%

r2R2

r2R2

  • 80%

r=0.9r=0.9r2R2=0.90.95>1R2

Cách chọn tập hợp con giải thích số lượng phương sai đã cho, được đề xuất bởi @FrankHarrell (+1).


+1, đây phải là câu trả lời được chấp nhận.
gents


6

Việc Mỹ bắt giữ dữ liệu đi kèm với R chỉ là một ví dụ ở đây, nhưng tôi lưu ý rằng các tính toán tải trong câu hỏi đến từ PCA của ma trận hiệp phương sai . Đó là một nơi nào đó giữa tùy ý và vô nghĩa, vì các biến được đo trên các thang đo khác nhau.

Dân số thành thị trông giống như một phần trăm. California là 91% và cao nhất.

Ba biến số tội phạm dường như là số vụ bắt giữ đối với các tội phạm được biểu thị liên quan đến quy mô dân số (có lẽ trong một khoảng thời gian). Có lẽ nó được ghi lại ở đâu đó cho dù nó bị bắt trên 1000 hay 10000 hay bất cứ điều gì.

Giá trị trung bình của biến tấn công trong các đơn vị đã cho là khoảng 171 và giết người trung bình là khoảng 8. Vì vậy, lời giải thích về tải trọng của bạn là phần lớn mô hình là một vật phẩm: nó phụ thuộc vào độ biến thiên rất khác nhau của các biến.

Vì vậy, mặc dù có ý nghĩa trong dữ liệu ở chỗ có nhiều vụ bắt giữ đối với các vụ tấn công hơn là các vụ giết người, v.v., thực tế đã biết (hoặc không có gì đáng ngạc nhiên) chi phối phân tích.

Điều này cho thấy rằng, như bất kỳ nơi nào khác trong thống kê, bạn phải suy nghĩ về những gì bạn đang làm trong PCA.

Nếu bạn thực hiện điều này hơn nữa:

  1. Tôi cho rằng phần trăm đô thị tốt hơn nên rời khỏi phân tích. Đó không phải là một tội ác để thành thị; tất nhiên nó có thể phục vụ proxy cho các biến ảnh hưởng đến tội phạm.

  2. Một PCA dựa trên ma trận tương quan sẽ có ý nghĩa hơn trong quan điểm của tôi. Một khả năng khác là làm việc với logarit của tỷ lệ bắt giữ, chứ không phải tỷ lệ bắt giữ (tất cả các giá trị đều dương; xem bên dưới).

Lưu ý: Câu trả lời của @ Random_guy cố tình sử dụng ma trận hiệp phương sai.

Dưới đây là một số thống kê tóm tắt. Tôi đã sử dụng Stata, nhưng điều đó khá phi vật chất.

    Variable |       Obs        Mean    Std. Dev.       Min        Max
-------------+--------------------------------------------------------
   urban_pop |        50       65.54    14.47476         32         91
      murder |        50       7.788     4.35551         .8       17.4
        rape |        50      21.232    9.366384        7.3         46
     assault |        50      170.76    83.33766         45        337
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.