PCA için veri hazırlamak amacıyla CLR'yi (ortalanmış günlük oranı dönüşümü) kullanabilir miyim?


13

Bir senaryo kullanıyorum. Çekirdek kayıtlar içindir. Belirli bir derinlikte (ilk sütunda) sütunlarda farklı elementel kompozisyonlar gösteren bir veri çerçevesi var. Onunla bir PCA yapmak istiyorum ve seçmem gereken standardizasyon yöntemi hakkında kafam karıştı.

Sizden kimse kullandı clr()için verilerinizi hazırlamak için prcomp()? Yoksa çözümlerimi karıştırıyor mu? Öznitelik ölçeğini kullanmaya ek olarak işlevi clr()kullanmadan önce verileri kullanarak denedim .prcomp()prcomp()

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

https://stat.ethz.ch/R-manual/R-devel/library/stats/html/prcomp.html

ölçek, verileri ölçeklemek için tanımlanır, böylece birim varyansı vardır. Verilerimin çok farklı bir ölçeği olduğundan istediğim şey bu, sanırım. Sorun, yukarıdaki kodu kullandığımda (veya clr()daha çok istenen sonuç yapar) atladığımda, farklı bir çözüm almak olmasıdır . Ama neden clr()bu durumda rahatsız edici olduğunu bilmek istiyorum ?


2
Benim gibi R olmayan kullanıcılar için, ne işe yaradığını açıklığa kavuşturmak yardımcı olabilir clr....
Dougal

3
Tabii ki CLR çözümleri değiştiriyor - bu prosedürü neden başka kullanasınız? Belki de hangi yaklaşımın daha iyi olduğunu nasıl belirleyeceğinizi sormalısınız. Sitemizde CLR için arama yaparak bulunabilecek yararlı mesajlar vardır . İlgili bir sorunun cevabında size yardımcı olabilecek bazı çizimler sağladım.
whuber

1
Hızlı yanıt, PCA'dan önceki verilerle istediğiniz her şeyi yapabilmenizdir. Bunu düzenleyen emirler, yasalar veya tarifler yoktur. Bazıları PCA'nın (dönmeden) ölçek değişmez olduğunu, diğerleri ise PCA'nın sonuçlarının ölçeğe karşı oldukça hassas olduğunu iddia eder. Sonra kurallarını PCA sonuçlarını döndürmek Ama eğer başparmak görev öncesi PCA normale gibi CLR veya standartlaştırılması = 0 ve SD = 1 anlamında. Büyük bir tartışma CLR Lee Cooper'ın kitapta Pazar Payı Analizi ( anderson.ucla.edu/faculty/lee.cooper/MCI_Book/BOOKI2010.pdf ) bileşen analizi bağlayarak.
Mike Hunter

2
@DJohnson CLR'de çeşitli kelimeler için bağlantılı pdf aradım ve log-oran dönüşümünü ortaladım ama hiçbir şey bulamadım. Neyi yanlış yaptım? Bu sürümde dizin yok, ancak bölüm başlıkları umut verici görünmüyor ve referanslar, bileşimsel veriler için bu dönüşümü öneren John Aitchison'u içermiyor. Bu ya da takdir edilen başka bir ad altında yapılan tartışmalara sayfa referansları.
Nick Cox

1
Daha önce de belirtildiği gibi, bağlandığınız sürümde herhangi bir dizin yok, bu yüzden danışmamam için beni affedin. Bu iş parçacığının tümüyle ilgili olan merkezli günlük oranı dönüşümünü değil, farklı bir canavarın tartışmalarını bulduğum "log-centering" anahtar kelimesi için teşekkürler . @whuber zaten bu sitedeki bir tartışmaya bağlantı verdi. Anahtar nokta, oran 1'e eklenen kompozisyon verileri için, farklı bir alana toplu dönüşüm için ihtiyaç ve kapsamın olmasıdır. Bildiğiniz fikirden farklı bir fikre işaret ettiği için "oran" kelimesini kaçırdınız.
Nick Cox

Yanıtlar:


6

CLR koordinatlarında vanilya PCA ile ilgili bazı sorunlar yaşayabilirsiniz. Bileşim verileriyle ilgili iki önemli sorun vardır:

  • kesinlikle olumsuz değiller
  • toplam kısıtlaması var

xG(x)

x^={log(x1G(x)),,log(xnG(x))}={log(x1)log(G(x)),,log(xn)log(G(x))}

Şimdi şunu düşünün

log(G(x))=log(exp[1ni=1nlog(xi)])=E[log(x)]

x^=[log(x)E[log(x)]]=0

Başka bir deyişle CLR, değer aralığı kısıtlamasını kaldırır (bazı uygulamalar için iyidir), ancak toplam kısıtlamasını kaldırmaz, bu da (M) ANOVA / lineer regresyon / ... 'ı etkin bir şekilde kıran ve tek bir kovaryans matrisine neden olur. Aykırı değerlere duyarlı PCA (sağlam kovaryans tahmini tam dereceli bir matris gerektirdiğinden). Bildiğim kadarıyla, tüm kompozisyon dönüşümlerinden sadece ILR her iki konuyu da altında yatan temel varsayımlar olmadan ele alıyor. Ancak durum biraz daha karmaşıktır. CLR koordinatlarının SVD'si, ILR alanında ortogonal bir temel verir (ILR koordinatları CLR'de bir hiper düzlemi kapsar), bu nedenle varyans tahminleriniz ILR ve CLR arasında farklılık göstermez (elbette açıktır, çünkü hem ILR hem de CLR, izometriktir. basit). Bununla birlikte, ILR koordinatlarında sağlam kovaryans tahmini için yöntemler vardır [2].

Güncelleme I

Sadece CLR'nin korelasyon ve konuma bağlı yöntemler için geçerli olmadığını göstermek için. Diyelim ki doğrusal olarak bağımsız üç dağıtılmış bileşenden oluşan bir topluluğu 100 kez örnekliyoruz. Basitlik adına, tüm bileşenlerin eşit beklentilere (100) ve varyanslara (100) sahip olmasına izin verin:

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
   ...: )

Güncelleme II

Aldığım yanıtları göz önünde bulundurarak, cevabımın hiçbir noktasında PCA'nın CLR ile dönüştürülmüş veriler üzerinde çalışmadığını söylediğimi belirtmek gerekir. CLR'nin boyutsal azaltma için önemli olmayabilecek, ancak keşifsel veri analizi için önemli olabilecek ince yollarla PCA'yı kırabileceğini ifade ettim . @Archie tarafından belirtilen makale mikrobiyal ekolojiyi kapsamaktadır. Bu hesaplamalı biyoloji alanında, çeşitli mesafe matrisleri üzerinde PCA veya PCoA verilerdeki varyasyon kaynaklarını araştırmak için kullanılır. Cevabım sadece bu bağlamda ele alınmalıdır. Dahası, bu makalenin kendisinde vurgulanır:

... Kompozisyon biplotunun [not: PCA'ya atıfta bulunmak] β-çeşitlilik analizi için ana koordinat (PCoA) grafiklerine göre çeşitli avantajları vardır. Veriler alt kümeye alındığında elde edilen sonuçlar çok kararlıdır (Bian ve diğ., 2017), bu da keşifsel analizin sadece verilerdeki mevcudiyet yokluğu ilişkilerinden veya aşırı seyreklikten kaynaklanmadığını (Wong ve ark., 2016; Morton ve ark. al., 2017).

Gloor ve ark., 2017

Güncelleme III

Yayınlanan araştırmalara ek referanslar (Daha fazla referans ekleme önerisi için @ Nick Cox'a teşekkür ederim):

  1. PCA için CLR kullanımına karşı argümanlar
  2. Korelasyon tabanlı yöntemler için CLR kullanımına karşı argümanlar
  3. ILR'ye Giriş

2
Tek bir kovaryans matrisi, pca için sorun değil!
kjetil b halvorsen

@kjetilbhalvorsen aslında, PCA per matrisin tam rütbe olmasını gerektirmez. Teknik olarak konuşursak, tekil bir kovaryans matrisi sadece bir veya daha fazla sıfır özdeğer ile sonuçlanır. Yine de, insanlar genellikle kompozisyonun devreye girdiği varyans kaynaklarını keşfetmek için PCA'yı uygularlar. Bu yüzden benim ifadelerime oldukça dikkat ettim: "... PCA / ... 'ı birçok ince şekilde
etkiliyor

Yani tekillik nedeniyle, bileşen başına açıklanan varyans miktarını hesaplayamayacağınızı mı söylüyorsunuz? Bunun dışında, boyutsal küçülmeyi gerçekleştirmek için PCA yine de yapılabilir. Bu ANOVA / lineer regresyonu nasıl etkiler?
Archie

1
+1 çünkü cevap çok ilginç. Yine de eleştirisiz gitmiyor. Görünüşe göre (benim için aptalca), kompozisyon veya clr ile dönüştürülmüş veriler üzerinde PCA yapmanın neden "ince yollarla" uygunsuz olduğunu açıklamıyorsunuz (hangisi? Nasıl?). Ayrıca, bir python kodu veriyor ancak sonuçlarını vermiyorsunuz. Sonuçlarını görüntüleyebilir ve yorumlayabilir misiniz? Son olarak, okumak için ILR transfotm hakkında bir bağlantı bırakabilir misiniz?
ttnphns

1
@ttnphns 1) yorumlarda yazdığım gibi, CLR, bileşimsel kapatma tarafından getirilen varyans kaynaklarının bozulmasını ortadan kaldırmaz, keşifsel veri analizini etkiler: sağlam kovaryans tahmini tam dereceli bir matris gerektirir; 2) Takip ettiğimden emin değilim, neden sonuç olmadığını söylüyorsunuz: giriş ve çıkışlarla etkileşimli bir Python oturumu (yani sonuçlar); 3) ILR için bir referans ekledim.
Eli Korvigo

5

Evet, verileriniz bileşimsel olduğunda bunu yapabilirsiniz ve aslında yapmanız gerekir.

Mikrobiyoloji alanından bir inceleme burada bulunabilir, bu da CLR dönüşümünü ve ardından PCA'nın mikrobiyoma veri setlerini (tanım gereği kompozisyon) analiz etmek için kullanmayı motive eder: https://www.frontiersin.org/articles/10.3389/fmicb .2017.02224 / dolu .


Ne yazık ki, iki yazarın kompozisyon veri analizinin şampiyonu olduğu düşünüldüğünde, bu yazı birçok durumda çok yanlıştır, ki bu üzücü bir durumdur.
Eli Korvigo

@EliKorvigo Bu yorum iyi kurulmuş olabilir, ancak tek başına yararlı değildir. Yayınlanmış veya en azından kamuoyu eleştirisine işaret edebilseydiniz, böyle bir eleştiri resmi değiştirirdi.
Nick Cox

@NickCox, Filzmoser ve Hron'un bir makalesi var . Yukarıda belirtilen makalenin doğrudan bir eleştirisi değildir, ancak korelasyon analizi için CLR kullanımına karşı çıkarken, yukarıda belirtilen makale CLR'ye dayalı araçlar önermektedir.
Eli Korvigo

@NickCox Archie'nin yazdığı makalenin son iki yazarı olan Dr. Pawlowsky-Glahn ve Dr.Egozcue'ya olan saygımı vurgulamak istiyorum. Aslında, CLR'nin eksikliklerini gidermek için ILR'yi tanıttılar (Egozcue ve Pawlowsky-Glahn, 2003) . CLR'ye atıfta bulunarak şöyle yazarlar: "Bununla birlikte, bu alt uzaydaki dikgen referanslar açık bir şekilde elde edilemez" .
Eli Korvigo

Pawlowsky-Glahn ve Egozcue, "Bileşim verileri ve analizleri: bir giriş" (2006) clr katsayılarının "bazı avantajları vardır: ifade kısımlarda simetriktir ve bu koordinatlar Aitchison mesafelerinin sıradan mesafelere hesaplanmasını azaltır. bi-parsellerin hesaplanmasında yararlıdır (...) "
jO.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.