Định vị các mũi tên trên biplot PCA


18

Tôi đang tìm cách triển khai một biplot để phân tích thành phần chính (PCA) trong JavaScript. Câu hỏi của tôi là, làm thế nào để tôi xác định tọa độ của các mũi tên từ đầu ra của phân tách vectơ số ít (SVD) của ma trận dữ liệu?Bạn,V,D

Dưới đây là một ví dụ biplot được sản xuất bởi R:

biplot(prcomp(iris[,1:4]))

Biplot của bộ dữ liệu Iris

Tôi đã thử tìm kiếm nó trong bài viết trên Wikipedia về biplot nhưng nó không hữu ích lắm. Hoặc đúng. Không chắc chắn mà.


3
Biplot là một biểu đồ phân tán lớp phủ hiển thị cả giá trị U và giá trị V. Hoặc UD và V. Hoặc U và VD '. Hoặc UD và VD '. Về mặt PCA, UD được gọi là điểm thành phần chính thô và VD 'được gọi là tải thành phần biến.
ttnphns 10/03/2015

2
Cũng lưu ý rằng tỷ lệ của tọa độ phụ thuộc vào cách ban đầu bạn bình thường hóa dữ liệu. Trong PCA, ví dụ, một Normaly chia dữ liệu cho sqrt (r) hoặc sqrt (r-1) [r là số lượng hàng]. Nhưng theo nghĩa "biplot" thực sự theo nghĩa hẹp của từ người ta thường chia dữ liệu theo sqrt (rc) [c là số cột] và sau đó khử chuẩn hóa U và V.
ttnphns

Tại sao dữ liệu phải được thu nhỏ bởi ? 1n-1
ktdrv

1
@ttnphns: Sau những bình luận của bạn ở trên, tôi đã viết một câu trả lời cho câu hỏi này, nhằm cung cấp một cái gì đó giống như một cái nhìn tổng quan về chuẩn hóa biplot PCA. Tuy nhiên, kiến ​​thức của tôi về chủ đề này hoàn toàn là lý thuyết và tôi tin rằng bạn có nhiều kinh nghiệm thực hành với các môn học hơn tôi. Vì vậy, tôi sẽ biết ơn bất kỳ ý kiến.
amip nói phục hồi Monica

1
Một lý do để thực hiện mọi thứ, @Aleksandr, là để biết chính xác những gì đang được thực hiện. Như bạn có thể thấy, thật không dễ để biết chính xác điều gì sẽ xảy ra khi một người chạy biplot(). Ngoài ra, tại sao phải bận tâm với tích hợp R-JS cho một cái gì đó chỉ cần một vài dòng mã.
amip nói rằng Phục hồi Monica

Câu trả lời:


40

Có nhiều cách khác nhau để tạo ra một biplot PCA và vì vậy không có câu trả lời duy nhất cho câu hỏi của bạn. Đây là một tổng quan ngắn.

Chúng tôi giả sử rằng ma trận dữ liệu n điểm dữ liệu trong các hàng và được căn giữa (nghĩa là cột có nghĩa là tất cả bằng không). Hiện tại, chúng tôi không cho rằng nó đã được chuẩn hóa, tức là chúng tôi xem xét PCA trên ma trận hiệp phương sai (không phải trên ma trận tương quan). PCA chiếm một phân hủy giá trị ít X = U S V , bạn có thể xem câu trả lời của tôi ở đây để biết chi tiết: Mối quan hệ giữa SVD và PCA. Làm thế nào để sử dụng SVD để thực hiện PCA?Xn

X= =BạnSV,

Trong một biplot PCA, hai thành phần chính đầu tiên được vẽ như một biểu đồ phân tán, tức là cột đầu tiên của được vẽ trên cột thứ hai của nó. Nhưng bình thường hóa có thể khác nhau; ví dụ: người ta có thể sử dụng:Bạn

  1. Cột của : đây là các thành phần chính được chia tỷ lệ thành đơn vị tổng bình phương;Bạn
  2. Cột của : đây là các thành phần chính được tiêu chuẩn hóa (phương sai đơn vị);n-1Bạn
  3. Cột của : đây là các thành phần chính "thô" (dự đoán về các hướng chính).BạnS

Hơn nữa, các biến ban đầu được vẽ như mũi tên; tức là tọa độ của một i -thứ mũi tên thiết bị đầu cuối được đưa ra bởi các i -thứ giá trị trong cột đầu tiên và thứ hai của V . Nhưng một lần nữa, người ta có thể chọn các chuẩn hóa khác nhau, ví dụ:(x,y)iiV

  1. VS
  2. VS/n-1
  3. V

Đây là cách tất cả những thứ đó trông giống như cho bộ dữ liệu của Fisher Iris:

Bộ ba Fisher Iris, PCA về hiệp phương sai

9XBạnSαβVS(1-α)/β9 là "biplots thích hợp": cụ thể là sự kết hợp của bất kỳ subplot nào ở trên với cái trực tiếp bên dưới.

[Dù sử dụng kết hợp nào, có thể cần phải chia tỷ lệ mũi tên theo một số yếu tố không đổi tùy ý để cả mũi tên và điểm dữ liệu xuất hiện gần như trên cùng một tỷ lệ.]

VS/n-1Bạnn-1

[Sự lựa chọn cụ thể] này có khả năng cung cấp một trợ giúp đồ họa hữu ích nhất trong việc diễn giải các ma trận đa biến của các quan sát, tất nhiên, với điều kiện là chúng có thể được xấp xỉ đầy đủ ở cấp hai.

BạnSV

BạnS

biplotBạnVSbiplot0,8biplotn/(n-1)1Mũi tên của các biến cơ bản trong biplot PCA trong R. )

PCA về ma trận tương quan

X1

Bộ ba Fisher Iris, PCA về mối tương quan

1R= =1


Đọc thêm:


1
+6, điều này xứng đáng hơn 3 lần nâng cấp.
gung - Tái lập Monica

3
Chỉ cần lưu ý rằng? Ca :: lô.ca có một cái nhìn tổng quan đẹp về các chuẩn hóa khác nhau có thể có: họ phân biệt hiệu trưởng hàng (mẫu biplot = hàng trong hợp đồng chính, cols trong hợp đồng tiêu chuẩn), hiệu trưởng col (covariance biplot = cols trong hợp đồng chính, hàng trong các coords tiêu chuẩn), biplot đối xứng (các hàng và cột được chia tỷ lệ để có các phương sai bằng với các giá trị số ít (căn bậc hai của giá trị riêng), rowgab và colgab (các hàng trong coords chính và cols trong các coords tiêu chuẩn nhân với khối lượng của điểm tương ứng hoặc ngược lại) và hàng xanh và màu xanh lá cây (như rowgab và colgab nhưng với sqrt (khối lượng))
Tom Wenseleers

2
Những cái cuối cùng này còn được gọi là "biplots đóng góp"; cuốn sách của M. Greenacre "Biplots in Practice" cũng cho một cái nhìn tổng quan tốt đẹp về tất cả những điều này; những cách mở rộng này áp dụng cho tất cả các phương pháp dựa trên SVD (ví dụ: bộ ba CA, bộ ba PCA, bộ ba LDA, v.v.); để biết ví dụ về cách thức hoạt động, hãy xem mã nguồn ca ::: plot.ca và đối số "bản đồ"
Tom Wenseleers

1
n-1

1
@AntoniParellada Tôi đã chỉnh sửa và chèn một vài liên kết.
amip nói rằng Phục hồi Monica
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.