Tôi có thể sử dụng CLR (chuyển đổi tỷ lệ log trung tâm) để chuẩn bị dữ liệu cho PCA không?


13

Tôi đang sử dụng một kịch bản. Đó là cho hồ sơ cốt lõi. Tôi có một khung dữ liệu hiển thị các thành phần nguyên tố khác nhau trong các cột theo độ sâu nhất định (trong cột đầu tiên). Tôi muốn thực hiện PCA với nó và tôi bối rối về phương pháp tiêu chuẩn hóa mà tôi phải chọn.

Có ai trong số bạn đã sử dụng clr()để chuẩn bị dữ liệu của bạn cho prcomp()? Hoặc nó pha trộn các giải pháp của tôi. Tôi đã thử sử dụng clr()dữ liệu trên trước khi sử dụng prcomp()chức năng ngoài việc sử dụng thang đo thuộc tính trong prcomp().

data_f_clr<- clr(data_f)
data_pca <- prcomp(data_f, center = TRUE, scale. = TRUE)

https://stat.ethz.ch/R-manual/R-devel/l Library / stat / html / prcomp.html

scale được mô tả để chia tỷ lệ dữ liệu, do đó chúng có phương sai đơn vị. Vì dữ liệu của tôi có một quy mô rất khác đó là những gì tôi muốn, tôi nghĩ. Vấn đề là, tôi nhận được một giải pháp khác, khi tôi sử dụng mã ở trên hoặc khi tôi bỏ qua clr()(điều này làm cho kết quả mong muốn hơn). Nhưng tôi muốn biết tại sao lại clr()đáng lo ngại trong trường hợp đó?


2
Đối với những người dùng không phải R như tôi, có thể hữu ích để làm rõ những gì clr....
Dougal

3
Tất nhiên CLR thay đổi các giải pháp - tại sao bạn lại sử dụng quy trình này? Có lẽ bạn nên hỏi làm thế nào để xác định phương pháp nào là tốt hơn. Có những bài viết hữu ích được tìm thấy bằng cách tìm kiếm trang web của chúng tôi cho CLR . Để trả lời một câu hỏi liên quan, tôi đã cung cấp một số hình ảnh minh họa có thể giúp bạn.
whuber

1
Câu trả lời nhanh là bạn có thể làm bất cứ điều gì bạn muốn với dữ liệu trước PCA. Không có sắc lệnh, luật pháp hoặc công thức nấu ăn nào điều chỉnh việc này. Một số người cho rằng PCA (không có vòng quay) là bất biến tỷ lệ trong khi những người khác cho rằng kết quả của PCA rất nhạy cảm với quy mô. Nhưng nếu bạn xoay kết quả của PCA thì quy tắc ngón tay cái bắt buộc chuẩn hóa trước PCA như CLR hoặc tiêu chuẩn hóa thành mean = 0 và SD = 1. Một cuộc thảo luận tuyệt vời về CLR nằm trong cuốn sách Phân tích thị phần của Lee Cooper ( anderson.ucla.edu/facemony/lee.cooper/MCI_Book/BOOKI2010.pdf ) liên kết nó với phân tích thành phần.
Mike Hunter

2
@DJohnson Tôi đã tìm kiếm pdf được liên kết với nhiều từ khác nhau trong CLR và chuyển đổi tỷ lệ log trung tâm nhưng không tìm thấy gì. Tôi đã làm gì sai? Không có chỉ mục trong phiên bản đó, nhưng các tiêu đề của phần không có triển vọng và các tài liệu tham khảo không bao gồm John Aitchison, người đã đề xuất chuyển đổi này cho dữ liệu thành phần. Trang tham khảo các cuộc thảo luận theo đó hoặc bất kỳ tên nào khác được đánh giá cao.
Nick Cox

1
Như đã đề cập, không có chỉ mục nào trong phiên bản bạn đã liên kết, vì vậy hãy tha thứ cho tôi vì đã không tham khảo ý kiến ​​đó. Cảm ơn từ khóa "tập trung vào nhật ký" mà từ đó tôi tìm thấy các cuộc thảo luận về một con thú khác, không phải là chuyển đổi tỷ lệ log trung tâm , mà chủ đề này là tất cả. @whuber đã đưa ra một liên kết đến một cuộc thảo luận trên trang web này. Điều quan trọng là đối với dữ liệu thành phần có tỷ lệ thêm 1, cần có phạm vi và phạm vi để chuyển đổi tập thể sang một không gian khác. Bạn đã bỏ lỡ từ "tỷ lệ" khi chỉ vào một ý tưởng khác với ý tưởng mà bạn biết.
Nick Cox

Câu trả lời:


5

Có, bạn có thể, và trên thực tế bạn nên, khi dữ liệu của bạn là thành phần.

Một đánh giá từ lĩnh vực vi sinh có thể được tìm thấy ở đây, điều này thúc đẩy sử dụng phép biến đổi CLR sau đó là PCA để phân tích các bộ dữ liệu microbiome (theo định nghĩa thành phần): https://www.frontiersin.org/articles/10.3389/fmicb .2017.02224 / đầy đủ .


Thật không may, bài báo đó là sai lầm khủng khiếp trong nhiều trường hợp, thật đáng tiếc, vì hai đồng tác giả là nhà vô địch của phân tích dữ liệu thành phần.
Eli Korvigo

@EliKorvigo Nhận xét đó có thể có cơ sở nhưng bản thân nó không hữu ích. Nếu bạn có thể chỉ ra một bài phê bình được công bố hoặc ít nhất là công khai thì một bài phê bình như vậy sẽ thay đổi bức tranh.
Nick Cox

@NickCox chắc chắn, có một bài báo của Filzmoser và Hron . Đây không phải là bài phê bình trực tiếp của bài báo đã nói ở trên, nhưng nó lập luận chống lại việc sử dụng CLR để phân tích tương quan, trong khi bài báo nói trên đề xuất các công cụ dựa trên CLR.
Eli Korvigo

@NickCox Tôi muốn nhấn mạnh sự tôn trọng sâu sắc của tôi đối với Tiến sĩ Pawlowsky-Glahn và Tiến sĩ EgozTHER, hai tác giả cuối cùng của bài báo được Archie đề cập. Trên thực tế, họ đã giới thiệu ILR để giải quyết những thiếu sót của CLR (EgozTHER và Pawlowsky-Glahn, 2003) . Đề cập đến CLR họ viết: "Tuy nhiên, các tham chiếu trực giao trong không gian con đó không được lấy theo cách đơn giản" .
Eli Korvigo

Trạng thái của Pawlowsky-Glahn và EgozTHER trong "Dữ liệu tổng hợp và phân tích của họ: giới thiệu" (2006) rằng các hệ số clr "có một số lợi thế nhất định: biểu thức đối xứng trong các phần và các tọa độ này làm giảm tính toán khoảng cách Aitchison với khoảng cách thông thường. hữu ích trong việc tính toán bi-lô (...) "
jO.

5

Bạn có thể gặp một số vấn đề với vanilla PCA trên tọa độ CLR. Có hai vấn đề lớn với dữ liệu thành phần:

  • họ hoàn toàn không tiêu cực
  • họ có một ràng buộc tổng

xG(x)

x^={đăng nhập(x1G(x)),Giáo dục,đăng nhập(xnG(x))}= ={đăng nhập(x1)-đăng nhập(G(x)),Giáo dục,đăng nhập(xn)-đăng nhập(G(x))}

Bây giờ, hãy xem xét rằng

đăng nhập(G(x))= =đăng nhập(điểm kinh nghiệm[1nΣTôi= =1nđăng nhập(xTôi)])= =E[đăng nhập(x)]

Σx^= =Σ[đăng nhập(x)-E[đăng nhập(x)]]= =0

Nói cách khác, CLR loại bỏ giới hạn phạm vi giá trị (tốt cho một số ứng dụng), nhưng không loại bỏ ràng buộc tổng, dẫn đến ma trận hiệp phương sai số, phá vỡ hiệu quả (M) ANOVA / hồi quy tuyến tính / ... và thực hiện PCA nhạy cảm với các ngoại lệ (vì ước lượng hiệp phương sai mạnh đòi hỏi ma trận xếp hạng đầy đủ). Theo như tôi biết, trong tất cả các biến đổi thành phần chỉ ILR giải quyết cả hai vấn đề mà không có bất kỳ giả định cơ bản chính nào. Tuy nhiên, tình hình phức tạp hơn một chút. SVD của tọa độ CLR cung cấp cho bạn cơ sở trực giao trong không gian ILR (tọa độ ILR bao trùm một siêu phẳng trong CLR), do đó, ước tính phương sai của bạn sẽ không khác nhau giữa ILR và CLR (điều đó là hiển nhiên, bởi vì cả ILR và CLR đều là hình học trên đơn giản). Tuy nhiên, có các phương pháp để ước lượng hiệp phương sai mạnh mẽ trên tọa độ ILR [2].

Cập nhật tôi

Chỉ để minh họa rằng CLR không hợp lệ cho các phương pháp tương quan và phụ thuộc vào vị trí. Giả sử chúng ta lấy mẫu một cộng đồng gồm ba thành phần phân phối thường độc lập tuyến tính 100 lần. Để đơn giản, hãy để tất cả các thành phần có kỳ vọng bằng nhau (100) và phương sai (100):

In [1]: import numpy as np

In [2]: from scipy.stats import linregress

In [3]: from scipy.stats.mstats import gmean

In [4]: def clr(x):
   ...:     return np.log(x) - np.log(gmean(x))
   ...: 

In [5]: nsamples = 100

In [6]: samples = np.random.multivariate_normal(
   ...:     mean=[100]*3, cov=np.eye(3)*100, size=nsamples
   ...: ).T

In [7]: transformed = clr(samples)

In [8]: np.corrcoef(transformed)
Out[8]: 
array([[ 1.        , -0.59365113, -0.49087714],
       [-0.59365113,  1.        , -0.40968767],
       [-0.49087714, -0.40968767,  1.        ]])

In [9]: linregress(transformed[0], transformed[1])
Out[9]: LinregressResult(
   ...:     slope=-0.5670, intercept=-0.0027, rvalue=-0.5936, 
   ...:     pvalue=7.5398e-11, stderr=0.0776
   ...: )

Cập nhật II

Xem xét các câu trả lời tôi đã nhận được, tôi thấy cần phải chỉ ra rằng không có điểm nào trong câu trả lời của tôi, tôi đã nói rằng PCA không hoạt động trên dữ liệu được chuyển đổi CLR. Tôi đã tuyên bố rằng CLR có thể phá vỡ PCA theo những cách tinh tế , điều này có thể không quan trọng đối với việc giảm kích thước, nhưng lại quan trọng đối với phân tích dữ liệu thăm dò. Bài viết được trích dẫn bởi @Archie bao gồm hệ sinh thái vi sinh vật. Trong lĩnh vực sinh học tính toán PCA hoặc PCoA trên các ma trận khoảng cách khác nhau được sử dụng để khám phá các nguồn khác nhau trong dữ liệu. Câu trả lời của tôi chỉ nên được xem xét trong bối cảnh này. Hơn nữa, điều này được nhấn mạnh trong chính bài báo:

... Biplot thành phần [lưu ý: đề cập đến PCA] có một số lợi thế so với các lô phối hợp chính (PCoA) để phân tích đa dạng β. Các kết quả thu được rất ổn định khi dữ liệu là tập hợp con (Bian và cộng sự, 2017), có nghĩa là phân tích thăm dò không bị chi phối đơn giản bởi các mối quan hệ vắng mặt trong dữ liệu cũng như bởi độ thưa thớt quá mức (Wong et al., 2016; Morton et al., 2017).

Gloor và cộng sự, 2017

Cập nhật III

Tài liệu tham khảo bổ sung cho nghiên cứu đã xuất bản (Tôi cảm ơn @Nick Cox về khuyến nghị để thêm nhiều tài liệu tham khảo hơn):

  1. Lập luận chống lại việc sử dụng CLR cho PCA
  2. Lập luận chống lại việc sử dụng CLR cho các phương pháp dựa trên tương quan
  3. Giới thiệu về ILR

2
Một ma trận hiệp phương sai số ít không phải là vấn đề đối với pca!
kjetil b halvorsen

@kjetilbhalvorsen thực sự, PCA per se không yêu cầu ma trận phải xếp hạng đầy đủ. Về mặt kỹ thuật, một ma trận hiệp phương sai số ít sẽ chỉ dẫn đến một hoặc nhiều giá trị riêng không. Tuy nhiên, mọi người thường áp dụng PCA để khám phá các nguồn phương sai, đó là nơi mà tính cấu thành bắt đầu. Đó là lý do tại sao tôi khá cẩn thận với cách diễn đạt của mình: "... phá vỡ PCA / ... theo nhiều cách tinh tế "
Eli Korvigo

Vì vậy, bạn có nghĩa là do số ít người ta không thể tính được lượng phương sai được giải thích cho mỗi thành phần? Mặt khác, người ta vẫn có thể thực hiện PCA để thực hiện giảm kích thước. Làm thế nào điều này sau đó ảnh hưởng đến ANOVA / hồi quy tuyến tính?
Archie

1
+1 vì câu trả lời rất thú vị. Nó không đi mà không có sự chỉ trích, mặc dù. Bạn dường như (đối với tôi ngu ngốc) đã không giải thích chính xác lý do tại sao thực hiện PCA trên dữ liệu thành phần hoặc chuyển đổi clr là không đúng cách "theo cách tinh tế" (mà? Làm thế nào?). Ngoài ra, bạn đang đưa ra một mã python nhưng không phải là kết quả của nó. Bạn có thể hiển thị và nhận xét kết quả của nó? Cuối cùng, bạn có thể để lại một liên kết về transfotm ILR, để đọc về?
ttnphns

1
@ttnphns 1) như tôi đã viết trong các bình luận, CLR không loại bỏ sự biến dạng của các nguồn phương sai được giới thiệu bởi việc đóng thành phần, ảnh hưởng đến phân tích dữ liệu khám phá: ước lượng hiệp phương sai mạnh mẽ đòi hỏi ma trận xếp hạng đầy đủ; 2) Tôi không chắc chắn mình làm theo, tại sao bạn nói không có kết quả: đó là phiên Python tương tác với đầu vào và đầu ra (nghĩa là kết quả); 3) Tôi đã thêm một tài liệu tham khảo cho ILR.
Eli Korvigo
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.