PCA sẽ làm việc cho các kiểu dữ liệu boolean (nhị phân)?


38

Tôi muốn giảm tính chiều của các hệ thống bậc cao hơn và nắm bắt hầu hết hiệp phương sai trên trường tốt nhất là 2 chiều hoặc 1 chiều. Tôi hiểu điều này có thể được thực hiện thông qua phân tích thành phần chính và tôi đã sử dụng PCA trong nhiều tình huống. Tuy nhiên, tôi chưa bao giờ sử dụng nó với các kiểu dữ liệu boolean và tôi tự hỏi liệu việc làm PCA với bộ này có ý nghĩa gì không. Vì vậy, ví dụ: giả sử tôi có số liệu định tính hoặc mô tả và tôi chỉ định "1" nếu số liệu đó hợp lệ cho thứ nguyên đó và "0" nếu không phải là (dữ liệu nhị phân). Vì vậy, ví dụ, giả vờ bạn đang cố gắng so sánh Bảy chú lùn trong Bạch Tuyết. Chúng ta có:

Doc, Dopey, Bashful, Grumpy, Sneezy, Buồn ngủ và Hạnh phúc, và bạn muốn sắp xếp chúng dựa trên phẩm chất, và đã làm như vậy:

(Lactose IntolerantA Honor RollAthlettôicWemộttôithyDoc1011Dopey0000BmộtShfbạntôi1011Grbạnmpy1111Sneezy0110Stôieepy1000Hmộtppy1100)

Vì vậy, ví dụ Bashful không dung nạp đường sữa và không nằm trong danh dự A. Đây là một ma trận giả định hoàn toàn và ma trận thực của tôi sẽ có nhiều cột mô tả hơn. Câu hỏi của tôi là, liệu PCA trên ma trận này có còn phù hợp để tìm sự tương đồng giữa các cá nhân không?


1
Câu hỏi này là (gần như) một bản sao của câu hỏi đó . PCA có thể được thực hiện trên dữ liệu nhị phân / boolean, nhưng thực hiện phân tích nhân tố (bao gồm cả PCA "như thể" đó là FA) trên dữ liệu đó là vấn đề .
ttnphns

1
PCA trên dữ liệu nhị phân như của bạn ("hiện tại" so với "vắng mặt") thường sẽ được thực hiện mà không cần định tâm các biến vì không có lý do nào để đề xuất nguồn gốc (điểm tham chiếu) ngoài gốc 0. Vì vậy, thay vì hiệp phương sai- hoặc PCA dựa trên tương quan, chúng tôi đến SSCP- hoặc dựa trên cosine . Phân tích như vậy rất giống nhau, gần như tương đương với phân tích Nhiều tương ứng (= phân tích đồng nhất) có thể là lựa chọn cho bạn.
ttnphns

a means of finding the similarity between individuals. Nhưng nhiệm vụ này là dành cho phân tích Cluster, không phải PCA.
ttnphns

Câu trả lời ngắn: PCA tuyến tính (nếu được coi là kỹ thuật giảm kích thước và không phải là kỹ thuật biến tiềm ẩn như phân tích nhân tố) có thể được sử dụng cho quy mô (siêu hình) hoặc dữ liệu nhị phân. Tuy nhiên, PCA đơn giản (tuyến tính) không nên được sử dụng với dữ liệu thứ tự hoặc dữ liệu danh nghĩa - trừ khi các dữ liệu này được chuyển thành dạng số hoặc nhị phân (ví dụ: giả) theo một cách nào đó.
ttnphns

@ttnphns PCA có thể được xem như một cách để phân cụm biến. Ngoài ra, PCA và phân tích cụm có thể được sử dụng theo trình tự
Antoine

Câu trả lời:


12

Tôi muốn đề xuất cho bạn một kỹ thuật tương đối gần đây để trích xuất cấu trúc tự động từ dữ liệu biến phân loại (bao gồm cả nhị phân). Phương pháp này được gọi là CorEx từ Greg van Steeg từ Đại học Nam California. Ý tưởng là sử dụng khái niệm Tổng tương quan dựa trên các biện pháp entropy. Nó hấp dẫn do tính đơn giản của nó và không điều chỉnh số lượng lớn các siêu đường kính.

Bài viết về các đại diện phân cấp (gần đây nhất, được xây dựng trên đỉnh của các biện pháp trước đó). http://arxiv.org/pdf/1410.7404.pdf


1
@AlvinNunez Chào mừng bạn! Việc triển khai python có thể được tìm thấy trên GitHub github.com/gregversteeg/CorEx Thực sự dễ dàng để lấy dữ liệu của bạn và xem những gì xuất hiện.
Vladislavs Dovgalecs

13

Bạn cũng có thể sử dụng Phân tích nhiều tương ứng (MCA), đây là phần mở rộng của phân tích thành phần chính khi các biến được phân tích là phân loại thay vì định lượng (đó là trường hợp ở đây với các biến nhị phân của bạn). Xem ví dụ Husson et al. (2010) , hoặc Abdi và Valentin (2007) . Một gói R tuyệt vời để thực hiện MCA (và phân cụm phân cấp trên PC) là FactoMineR .


1
Một câu trả lời thú vị, tôi muốn đồng ý với nó. Nó sẽ là tài sản lớn nếu bạn giải thích chi tiết hơn về hiện tượng inflation of the feature spacevà lý do tại sao nó sẽ xảy ra trong PCA chứ không phải trong MCA.
ttnphns

Tôi hiểu nhầm inflation of the feature spacehiện tượng. Nó dường như sẽ xuất hiện khi đi từ CA đến MCA, nhưng không phải là vấn đề cố hữu của PCA. Tôi sẽ loại bỏ câu trả lời của tôi khi bạn đã đọc bình luận này. Cảm ơn đã khiến tôi nhận ra điều đó.
Antoine

Tôi không nghĩ rằng bạn phải loại bỏ câu trả lời. MCA là một trong những lựa chọn đúng đắn, đối với tôi, và câu trả lời của bạn là đúng.
ttnphns

Tôi đã thêm lại câu trả lời vì tôi nghĩ MCA có thể hữu ích ở đây, nhưng tôi đã xóa cuộc thảo luận về lạm phát của không gian tính năng vì nó dường như không liên quan
Antoine

Kết quả của MCA trên dữ liệu nhị phân khác với kết quả của PCoA như thế nào với thước đo khoảng cách phù hợp với dữ liệu nhị phân như Jaccard hoặc khớp đơn giản?
emudrak

9

Nếu bạn nghĩ về PCA như một kỹ thuật khám phá để cung cấp cho bạn cách trực quan hóa các mối quan hệ giữa các biến (và theo tôi thì đây là cách duy nhất để nghĩ về nó), vâng, không có lý do gì bạn không thể đưa vào nhị phân biến. Ví dụ, đây là một nhóm dữ liệu của bạn

nhập mô tả hình ảnh ở đây

Nó có vẻ hợp lý hữu ích. Chẳng hạn, bạn có thể thấy rằng Doc và Bashful rất giống nhau; HR đó không giống như ba biến số khác; Buồn ngủ và Hắt xì rất khác nhau, v.v.

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.