Có nên loại bỏ các biến tương quan cao trước khi làm PCA?


111

Tôi đang đọc một bài báo mà tác giả loại bỏ một số biến do tương quan cao với các biến khác trước khi thực hiện PCA. Tổng số biến là khoảng 20.

Điều này có mang lại lợi ích gì không? Nó có vẻ như là một chi phí đối với tôi vì PCA sẽ tự động xử lý việc này.


26
Chỉ là một gợi ý. Hãy suy nghĩ, theo cách nào thì kết quả của PCA sẽ thay đổi nếu thêm ngày càng nhiều bản sao (hoặc gần bản sao) của một trong các biến.
ttnphns

@ type2 bạn có thể vui lòng đặt tên cho bài báo bạn đang đọc không?
Amatya

Câu trả lời:


123

Điều này thể hiện qua gợi ý sâu sắc được cung cấp trong một nhận xét của @ttnphns.

Các biến gần kề tương quan làm tăng sự đóng góp của yếu tố cơ bản chung của chúng vào PCA. Chúng ta có thể thấy điều này về mặt hình học. Hãy xem xét các dữ liệu này trong mặt phẳng XY, được hiển thị dưới dạng đám mây điểm:

Phân tán

Có rất ít mối tương quan, hiệp phương sai xấp xỉ bằng nhau và dữ liệu được căn giữa: PCA (dù được tiến hành như thế nào) sẽ báo cáo hai thành phần xấp xỉ bằng nhau.

Bây giờ chúng ta hãy ném vào một biến thứ ba bằng cộng với một lỗi nhỏ ngẫu nhiên. Ma trận tương quan của cho thấy điều này với các hệ số đường chéo nhỏ ngoại trừ giữa hàng thứ hai và thứ ba và cột ( và ):ZY(X,Y,Z)YZ

(1.0.03440180.0460760.03440181.0.9418290.0460760.9418291.)

Về mặt hình học, chúng tôi đã thay thế tất cả các điểm ban đầu gần như theo chiều dọc, nâng hình ảnh trước đó ra khỏi mặt phẳng của trang. Đám mây điểm 3D giả này cố gắng minh họa việc nâng lên với chế độ xem phối cảnh bên (dựa trên một tập dữ liệu khác, mặc dù được tạo theo cùng một cách như trước):

Cốt truyện 3D

Các điểm ban đầu nằm trong mặt phẳng màu xanh và được nâng lên các chấm đỏ. Trục ban đầu chỉ về bên phải. Độ nghiêng kết quả cũng kéo dài các điểm ra dọc theo các hướng của YZ, do đó nhân đôi đóng góp của chúng cho phương sai. Do đó, PCA của những dữ liệu mới này vẫn sẽ xác định hai thành phần chính, nhưng bây giờ một trong số chúng sẽ có gấp đôi phương sai của dữ liệu kia.Y

Kỳ vọng hình học này được sinh ra với một số mô phỏng trong R. Để làm điều này, tôi đã lặp lại quy trình "nâng" bằng cách tạo các bản sao gần đúng của biến thứ hai lần thứ hai, thứ ba, thứ tư và thứ năm, đặt tên chúng là đến . Dưới đây là một ma trận phân tán cho thấy bốn biến cuối đó có mối tương quan tốt như thế nào:X2X5

Ma trận phân tán

PCA được thực hiện bằng cách sử dụng các tương quan (mặc dù nó không thực sự quan trọng đối với các dữ liệu này), sử dụng hai biến đầu tiên, sau đó là ba, ... và cuối cùng là năm. Tôi hiển thị kết quả bằng cách sử dụng các biểu đồ đóng góp của các thành phần chính cho tổng phương sai.

Kết quả PCA

Ban đầu, với hai biến gần như không tương quan, các đóng góp gần như bằng nhau (góc trên bên trái). Sau khi thêm một biến tương quan với biến thứ hai - chính xác như trong hình minh họa hình học - vẫn chỉ có hai thành phần chính, một biến có kích thước gấp đôi biến kia. (Thành phần thứ ba phản ánh sự thiếu tương quan hoàn hảo; nó đo "độ dày" của đám mây giống như bánh kếp trong phân tán 3D.) Sau khi thêm một biến tương quan khác ( ), thành phần đầu tiên hiện chiếm khoảng 3/4 tổng số ; sau khi một phần năm được thêm vào, thành phần đầu tiên là gần bốn phần năm của tổng số. Trong tất cả bốn trường hợp, các thành phần sau lần thứ hai có thể được coi là không quan trọng bởi hầu hết các thủ tục chẩn đoán PCA; trong trường hợp cuối cùng nó 'X4một thành phần chính đáng xem xét.

Bây giờ chúng ta có thể thấy rằng có thể có công trong việc loại bỏ các biến được cho là đo lường cùng một khía cạnh cơ bản (nhưng "tiềm ẩn") của một tập hợp các biến , bởi vì bao gồm các biến gần như dư thừa có thể khiến PCA quá coi trọng sự đóng góp của chúng. Không có gì đúng về mặt toán học (hoặc sai) về một thủ tục như vậy; đó là một cuộc gọi phán xét dựa trên các mục tiêu phân tích và kiến ​​thức về dữ liệu. Nhưng cần phải rõ ràng rằng việc đặt các biến được biết là có tương quan mạnh với các biến khác có thể có ảnh hưởng đáng kể đến kết quả PCA.


Đây là Rmã.

n.cases <- 240               # Number of points.
n.vars <- 4                  # Number of mutually correlated variables.
set.seed(26)                 # Make these results reproducible.
eps <- rnorm(n.vars, 0, 1/4) # Make "1/4" smaller to *increase* the correlations.
x <- matrix(rnorm(n.cases * (n.vars+2)), nrow=n.cases)
beta <- rbind(c(1,rep(0, n.vars)), c(0,rep(1, n.vars)), cbind(rep(0,n.vars), diag(eps)))
y <- x%*%beta                # The variables.
cor(y)                       # Verify their correlations are as intended.
plot(data.frame(y))          # Show the scatterplot matrix.

# Perform PCA on the first 2, 3, 4, ..., n.vars+1 variables.
p <- lapply(2:dim(beta)[2], function(k) prcomp(y[, 1:k], scale=TRUE))

# Print summaries and display plots.
tmp <- lapply(p, summary)
par(mfrow=c(2,2))
tmp <- lapply(p, plot)

5
+1, số liệu đẹp. Bạn đã sử dụng gì cho top 2? Cái thứ nhất trông giống như được vẽ bằng tay.
gung

14
@gung tôi đã sử dụng một biến thể của mã tại mathematica.stackexchange.com/questions/11350/xkcd-style-graphs cho con số đầu tiên. Từ lâu, người ta đã biết rằng việc thêm một chút jitter ngẫu nhiên vào văn bản hoặc hình ảnh có thể làm cho nó trông ấm hơn và dễ tiếp cận hơn. ( Bản thân ban đầu được xây dựng trên Metafont , được Donald Knuth thiết kế sau khi nghiên cứu sâu về kiểu chữ; ông đã bao gồm biến thể tích hợp như vậy.) Đối với một số đồ họa, như phân tán 3D giả trong hình thứ hai, kỹ thuật jitter thêm ít hoặc là mất tập trung, vì vậy tôi đã không sử dụng nó ở đó. TEX
whuber

2
Đó là rất giác ngộ, whuber. Tôi đã học được một cái gì đó mới.
Spacey

7
@whuber giống như nhà thống kê hippest - sử dụng các lô XKCD như một pro.
Cam.Davidson.Pilon

2
@logan Nói cách khác, không. Cho phép tôi hướng sự chú ý của bạn đến một câu muộn trong bài đăng này: "Không có gì đúng về mặt toán học (hoặc sai) về thủ tục như vậy; đó là một cuộc gọi phán xét dựa trên các mục tiêu phân tích và kiến ​​thức về dữ liệu."
whuber

43

Tôi sẽ minh họa thêm về quy trình và ý tưởng tương tự như @whuber đã làm, nhưng với các ô tải, - bởi vì tải là bản chất của kết quả PCA.

Dưới đây là ba 3 phân tích. Trong lần đầu tiên, chúng tôi có hai biến và (trong ví dụ này, chúng không tương quan). Trong lần thứ hai, chúng tôi đã thêm gần như là bản sao của và do đó tương quan với nó rất mạnh. Trong phần ba, chúng tôi vẫn bổ sung tương tự thêm 2 "bản sao" của nó: và .X1X2X3X2X4X5

Các lô tải của 2 thành phần chính đầu tiên sau đó đi. Các gai màu đỏ trên các ô biểu thị mối tương quan giữa các biến, do đó, một số các gai là nơi tìm thấy một cụm các biến tương quan chặt chẽ. Các thành phần là các đường màu xám; "sức mạnh" tương đối của một thành phần (cường độ eigenvalue tương đối của nó) được tính theo trọng số của đường thẳng.

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

Hai hiệu ứng của việc thêm "bản sao" có thể được quan sát:

  1. Thành phần 1 trở nên mạnh hơn và mạnh hơn, và Thành phần 2 ngày càng yếu đi.
  2. Định hướng của các thành phần thay đổi: lúc đầu, Thành phần 1 đi ở giữa giữa và ; khi chúng tôi đã thêm vào Thành phần 1 ngay lập tức tự định hướng lại để đi theo bó biến số mới nổi; và bạn có thể chắc chắn rằng sau khi chúng tôi thêm hai biến nữa vào bó, phần đính kèm của Hợp phần 1 với bó biến tương quan chặt chẽ đó trở nên không thể tranh cãi hơn.X1X2X3X2

Tôi sẽ không tiếp tục đạo đức vì @whuber đã làm điều đó.


Ngoài ra . Dưới đây là một số hình ảnh để phản hồi ý kiến ​​của @ whuber. Đó là về sự phân biệt giữa "không gian biến" và "không gian chủ thể" và cách các thành phần tự định hướng ở đây và ở đó. Ba PCA hai biến được trình bày: phân tích hàng đầu tiên , phân tích hàng thứ hai và hàng thứ bar=0r=0.62r=0.77 . Cột bên trái là các biểu đồ phân tán (của dữ liệu được tiêu chuẩn hóa) và cột bên phải đang tải các ô.

X1X2r=0 X1X2chính các dòng có thể được chọn làm thành phần.] Tọa độ của các điểm dữ liệu (200 đối tượng) trên một thành phần là điểm thành phần và tổng bình phương của chúng bị lệch 200-1 là giá trị riêng của thành phần .

rX1X2(nhưng thêm một biến thứ 3 có thể làm chệch hướng nó bằng mọi cách). Góc (cosine) giữa một vectơ biến đổi và một dòng thành phần là mối tương quan giữa chúng và bởi vì các vectơ là chiều dài đơn vị và các thành phần là trực giao, nên không có gì khác ngoài tọa độ, tải . Tổng tải trọng bình phương lên thành phần là giá trị riêng của nó (thành phần chỉ định hướng chính nó trong không gian chủ đề này để tối đa hóa nó)

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


Ngoài ra2. Trong Addition trên tôi đã nói về "không gian biến" và "không gian chủ đề" như thể chúng không tương thích với nhau như nước và dầu. Tôi đã phải xem xét lại và có thể nói rằng - ít nhất là khi chúng ta nói về PCA - cuối cùng cả hai không gian đều là đẳng cấu, và nhờ đức tính đó, chúng ta có thể hiển thị chính xác tất cả các chi tiết PCA - điểm dữ liệu, trục biến, trục thành phần, biến như điểm, - trên một biplot không bị biến dạng.

Dưới đây là biểu đồ phân tán (không gian biến) và biểu đồ tải (không gian thành phần, là không gian chủ thể bởi nguồn gốc di truyền của nó). Tất cả mọi thứ có thể được hiển thị trên cái này, cũng có thể được hiển thị trên cái khác. Các hình ảnh là giống hệt nhau , chỉ xoay 45 độ (và được phản ánh, trong trường hợp cụ thể này) tương đối với nhau. Đó là một PCA biến v1 và v2 (tiêu chuẩn hóa, do đó nó là r đó được phân tích). Các đường màu đen trên hình ảnh là các biến như trục; đường màu xanh / vàng là các thành phần như trục; điểm màu xanh là đám mây dữ liệu (chủ thể); điểm màu đỏ là các biến được hiển thị dưới dạng điểm (vectơ).

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


1
+1 minh họa thú vị. BTW, quan sát thứ hai của bạn là một tạo tác của dữ liệu: hướng thay đổi bởi vì trong trường hợp đầu tiên, mối tương quan là hoàn hảo, tạo ra một không gian eigens hai chiều. (Điều này cực kỳ hiếm trong dữ liệu thực; nó thường có nghĩa là đã xảy ra lỗi cơ sở dữ liệu và một biến là biểu hiện lại tuyến tính của một dữ liệu khác.) Phần mềm có thể tự do chọn bất kỳ cơ sở trực giao nào cho không gian đó, tùy ý. Chỉ cần lượng tương quan nhỏ nhất sẽ loại bỏ sự thoái hóa này. Do đó, tôi nghĩ rằng bạn diễn giải quá mức hiện tượng định hướng lại này.
whuber

@whuber, Có lẽ tôi không hiểu bạn. Tương quan "hoàn hảo" là gì? r bw X1 và X2 là 0,003; và nó có thể là bất kỳ, ví dụ 0,03. Đó sẽ là cos của góc bw hai vectơ đỏ trên cốt truyện. Dù là r , PC thứ 1 luôn là bộ chia trong khi chỉ có 2 biến được phân tích. Tôi đoán rằng ghi chú của bạn The software was free to choose any orthogonal basis for that space, arbitrarilyáp dụng cho đám mây tròn trong không gian biến (ví dụ: phân tán dữ liệu, như hình ảnh thứ 1 trong câu trả lời của bạn), nhưng tải biểu đồ là không gian chủ đề trong đó các biến, không phải là trường hợp, là các điểm (vectơ).
ttnphns

1
R5

Tôi đã sử dụng các mối tương quan (chú ý ma trận và thực tế là các vectơ màu đỏ về cơ bản có cùng độ dài). Có, không gian chủ đề một biểu đồ phân tán tupsy-torvey với n trục (chủ thể) và p điểm (biến). Tất nhiên, tất cả các kích thước np đều dư thừa và bất kỳ tập hợp biến p nào cũng có thể được vẽ trong không gian chủ đề p chiều, nhưng điều này không biến nó thành một không gian biến! Tôi sẽ chỉ thêm một hình ảnh vào câu trả lời của tôi.
ttnphns

5
+1, cảm ơn vì sự đóng góp bổ sung, @ttnphns. Điều này đang chuyển từ những gì tôi nghĩ ban đầu là một câu hỏi khá đơn giản thành một chủ đề thông tin tuyệt vời.
gung

4

Nếu không có chi tiết từ bài viết của bạn, tôi sẽ phỏng đoán rằng việc loại bỏ các biến có tương quan cao này được thực hiện chỉ để tiết kiệm năng lượng tính toán hoặc khối lượng công việc. Tôi không thể thấy lý do tại sao PCA sẽ 'phá vỡ' đối với các biến có tương quan cao. Chiếu dữ liệu trở lại vào các cơ sở được PCA tìm thấy có tác dụng làm trắng dữ liệu, (hoặc không tương quan với chúng). Đó là toàn bộ điểm phía sau PCA.


4
Bạn đã đọc gợi ý của @ttnphns? PCA chú ý không chỉ đến người bản địa (mà bạn thảo luận) mà còn cả giá trị bản địa (mà bạn bỏ qua). Điều này rất quan trọng, bởi vì các giá trị riêng được sử dụng để xác định thành phần nào được giữ lại và thành phần nào sẽ giảm.
whuber

2
@whuber Có ... vâng tôi nghĩ tôi hiểu rồi. Vì vậy, về cơ bản, các biến tương quan nhiều hơn sẽ nhấn mạnh quá mức các hàm riêng, (hướng) và nếu có nhiều biến tương quan, thì sẽ có rất nhiều hướng 'giả' được nhấn mạnh quá mức, sẽ nhấn chìm một hướng / hàm riêng 'gốc' có thể dễ dàng nhìn thấy Tôi hiểu bạn phải không?
Spacey

2
Điều đó khá gần, Mohammad. Thực tế là một tập hợp các biến tương quan có thể "tải" lên một số thành phần chính (hàm riêng), do đó, bao gồm nhiều biến từ một tập hợp như vậy sẽ có trọng số khác nhau - và do đó cũng thay đổi hướng của tất cả các hàm riêng.
whuber

1

Theo hiểu biết của tôi, các biến tương quan là ok, bởi vì PCA xuất ra các vectơ trực giao.


5
Bạn nói đúng, nhưng bạn có phiền khi giải thích tại sao tính trực giao có liên quan đến việc có nên loại bỏ các biến trước không?
whuber

-1

Vâng, nó phụ thuộc vào thuật toán của bạn. Các biến tương quan cao có thể có nghĩa là một ma trận điều hòa. Nếu bạn sử dụng một thuật toán nhạy cảm với nó, nó có thể có ý nghĩa. Nhưng tôi dám nói rằng hầu hết các thuật toán hiện đại được sử dụng để tạo ra các giá trị riêng và các hàm riêng đều mạnh mẽ cho việc này. Hãy thử loại bỏ các biến tương quan cao. Do các giá trị riêng và hàm riêng thay đổi nhiều? Nếu họ làm, thì điều hòa không tốt có thể là câu trả lời. Vì các biến tương quan cao không thêm thông tin, phân tách PCA không nên thay đổi


4
Thật không may, PCA không thay đổi: nó gần như được đảm bảo.
whuber

1
@whuber Wow, số lượng lớn phản hồi, và rất nhiều thông tin. Xin lỗi vì nhận xét của tôi, nó hoàn toàn sai. Lỗi của tôi. Câu trả lời rất nhiều thông tin BTW
Juancentro

4
Tôi học được nhiều nhất từ ​​những câu trả lời hoàn toàn sai, Juancentro - đặc biệt là của riêng tôi, điều may mắn là hiếm khi được đưa ra trước công chúng :-). Tôi đã có suy nghĩ tương tự như bạn cho đến khi @ttnphns để lại nhận xét.
whuber

-1

Phụ thuộc vào phương pháp lựa chọn thành phần nguyên tắc nào bạn sử dụng không?

Tôi có xu hướng sử dụng bất kỳ thành phần nguyên tắc nào với giá trị riêng> 1. Vì vậy, nó sẽ không ảnh hưởng đến tôi.

Và từ các ví dụ trên, ngay cả phương pháp cốt truyện scree thường sẽ chọn đúng. NẾU BẠN GIỮ TẤT CẢ TRƯỚC KHI ELBOW. Tuy nhiên, nếu bạn chỉ cần chọn thành phần nguyên tắc với giá trị riêng 'chiếm ưu thế', bạn sẽ bị lạc lối. Nhưng đó không phải là cách đúng đắn để sử dụng cốt truyện scree!


5
Chào mừng đến với trang web, Chris. Thật không may, cả hai thủ tục đặc biệt này đều không thể phòng thủ được. Lưu ý rằng trong trường hợp đầu tiên, bạn không thể thay đổi hình dạng dữ liệu của mình và chuyển từ chọn tất cả chúng sang chọn không có dữ liệu nào (chỉ bằng cách nhân mọi thứ với một hằng số).
Đức Hồng Y
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.