Ekolojide koordinasyon yöntemleri için değişkenleri açıklayıcı değişkenlere ve yanıtlara ayırmak için hangi kriterler kullanılır?


9

Bir popülasyon içinde etkileşime giren farklı değişkenlerim var. Temelde kırkayak envanteri yapıyor ve arazinin diğer bazı değerlerini ölçüyorum, örneğin:

  • Toplanan örneklerin türü ve miktarı
  • Hayvanların bulunduğu farklı ortamlar
  • pH
  • Organik malzeme yüzdesi
  • P, K, Mg, Ca, Mn, Fe, Zn, Cu miktarı
  • Ca + Mg / K ilişkisi

Temel olarak hangi değişkenlerin örneklerin değişkenliğini sağladığını ve ormanı (ortamları) farklı kıldığını belirlemek için PCA'yı kullanmak istiyorum; "değişkenler" için hangi değişkenleri ve "bireyler" için hangilerini kullanmalıyım?


Bence PCA hakkında kafanız karışmış olabilir. Tüm değişkenler (elbette) sadece "değişkenler" olabilir. Muhtemelen farklı yerlerde (veya farklı zamanlarda) bir dizi ölçüm yaptınız; bu konumlar (veya saatler) sizin "bireyleriniz" veya "örnekler" dir.
amip

Ayrıca, sormaya yardımcı olamıyorum: profiliniz bir başlangıç ​​kurucusu olduğunuzu söylüyor; kırkayak ile çalışan bir başlangıç ​​mı? Vaov!
amip

Aslında @amoeba bu konuda çalışan benim karım, kalkülüste iyiyim ama istatistiklerde o kadar da gelişmemiş. Ve sormamı istedi.
Leonardo

1
Hpw bu gerçekten istatistiksel bir soru mu? İstatistiksel terminoloji ile karıştırılmış gibi görünse de, kodunun çözülmesi zor olduğu ölçüde, eğer bu çözülmüşse, tavsiye bilimsel yargı kullanmaktır.
Nick Cox

2
Bu, istatistiklerde daha tipik olandan farklı bir bağlamda ve farklı terimlerle istatistiksel bir soru olabilir. Ekolojiden koordinasyon yöntemleri hakkında soru sorduğunuza inanıyorum. Bu web sitesi size yardımcı olabilir. Buradaki aktif üyelerimizin nispeten azı bu konuda uzmandır, ancak @GavinSimpson dikkatini çekebilirsek size yardımcı olabilir.
gung - Monica'yı eski

Yanıtlar:


19

@Amoeba yorumlarda belirtildiği gibi, PCA sadece bir veri kümesine bakacak ve size bu değişkenlerdeki ana (doğrusal) varyasyon modellerini, bu değişkenler arasındaki korelasyonları veya kovaryansları ve örnekler (satırlar) arasındaki ilişkileri gösterecektir. ) veri kümenizde.

Normalde bir tür veri seti ve potansiyel açıklayıcı değişkenler paketi ile yapılan şey, kısıtlı bir sıralamaya uymaktır. PCA'da, ana bileşenler, PCA biplotundaki eksenler, tüm değişkenlerin optimal doğrusal kombinasyonları olarak türetilir. Bunu pH değişkenleri olan bir toprak kimyası veri kümesinde çalıştırdıysanız,Ca2+, TotalCarbon, ilk bileşenin

0.5×pH+1.4×Ca2++0.1×TotalCarbon

ve ikinci bileşen

2.7×pH+0.3×Ca2+5.6×TotalCarbon

Bu bileşenler, ölçülen değişkenlerden serbestçe seçilebilir ve seçilenler, veri kümesindeki en büyük varyasyon miktarını sırayla açıklayan ve her bir doğrusal kombinasyonun diğerleriyle dikey (ilişkisiz) olduğunu açıklayanlardır.

Kısıtlı bir sıralamada iki veri setimiz var, ancak ilk veri setinin (yukarıdaki toprak kimyası verileri) doğrusal kombinasyonlarını seçmekte özgür değiliz. Bunun yerine, ikinci veri kümesindeki birincideki değişimi en iyi açıklayan değişkenlerin doğrusal kombinasyonlarını seçmeliyiz. Ayrıca, PCA durumunda, bir veri kümesi yanıt matrisidir ve hiçbir belirleyici yoktur (yanıtı, kendini tahmin etmek olarak düşünebilirsiniz). Kısıtlı durumda, bir dizi açıklayıcı değişkenle açıklamak istediğimiz bir yanıt veri setimiz var.

Hangi değişkenlerin yanıt olduğunu açıklamamış olsanız da, normal olarak bu türlerin çevresel açıklayıcı değişkenleri kullanarak bolluklarındaki veya bileşimindeki (yani yanıtlar) varyasyonları açıklamak ister.

PCA'nın kısıtlı versiyonu ekolojik çevrelerde Artıklık Analizi (RDA) adı verilen bir şeydir. Bu, türler için uygun olmayan veya sadece türün yanıt verdiği kısa gradyanlarınız varsa uygun olan temel bir doğrusal yanıt modelini varsayar.

PCA'ya bir alternatif, yazışma analizi (CA) adı verilen bir şeydir. Bu kısıtsızdır, ancak türlerin daha uzun gradyanlar boyunca nasıl tepki verdikleri açısından biraz daha gerçekçi olan altta yatan tek modlu bir tepki modeline sahiptir. Ayrıca CA'nın göreceli bollukları veya bileşimi , PCA'nın ham bollukları modellediğini unutmayın.

Kısıtlı veya kanonik yazışma analizi (CCA) olarak bilinen kısıtlı bir CA sürümü vardır - kanonik korelasyon analizi olarak bilinen daha resmi bir istatistiksel modelle karıştırılmamalıdır.

Hem RDA hem de CCA'da amaç, tür bolluğu veya bileşimindeki varyasyonu açıklayıcı değişkenlerin bir dizi doğrusal kombinasyonu olarak modellemektir.

Tanımdan, karınızın kırkayak türü bileşimindeki (veya bolluktaki) varyasyonları ölçülen diğer değişkenler açısından açıklamak istediği anlaşılıyor.

Bazı uyarı kelimeleri; RDA ve CCA sadece çok değişkenli regresyonlardır; CCA sadece çok değişkenli bir regresyon. Regresyon hakkında öğrendiğiniz her şey geçerlidir ve birkaç tane daha var:

  • açıklayıcı değişken sayısını artırdıkça, kısıtlamalar aslında gittikçe azalıyor ve tür kompozisyonunu en iyi şekilde açıklayan bileşenleri / eksenleri gerçekten çıkarmıyorsunuz ve
  • CCA ile, açıklayıcı faktörlerin sayısını artırdıkça, CCA grafiğindeki noktaların konfigürasyonuna bir eğrinin bir artefaktını indükleme riskiniz vardır.
  • BKA ve CCA'nın altında yatan teori, daha resmi istatistiksel yöntemlerden daha az gelişmiştir. Hangi açıklayıcı değişkenlerin yalnızca aşamalı seçimi kullanmaya devam edeceğini makul bir şekilde seçebiliriz (bu, regresyonda bir seçim yöntemi olarak sevmediğimiz tüm nedenler için ideal değildir) ve bunu yapmak için permütasyon testlerini kullanmamız gerekir.

bu yüzden tavsiyem regresyon ile aynı; hipotezlerinizin ne olduğunu önceden düşünün ve bu hipotezleri yansıtan değişkenler ekleyin. Do not sadece karışımı içine tüm açıklayıcı değişkenler atmak.

Misal

Kısıtsız sıralama

PCA

PCA, CA ve CCA'yı R için vegan paketini kullanarak karşılaştırmaya yardımcı olan ve bu tür koordinasyon yöntemlerine uyacak şekilde tasarlanmış bir örnek göstereceğim :

library("vegan")                        # load the package
data(varespec)                          # load example data

## PCA
pcfit <- rda(varespec)
## could add `scale = TRUE` if variables in different units
pcfit

> pcfit
Call: rda(X = varespec)

              Inertia Rank
Total            1826     
Unconstrained    1826   23
Inertia is variance 

Eigenvalues for unconstrained axes:
  PC1   PC2   PC3   PC4   PC5   PC6   PC7   PC8 
983.0 464.3 132.3  73.9  48.4  37.0  25.7  19.7 
(Showed only 8 of all 23 unconstrained eigenvalues)

vegan , Canoco'nun aksine, Atalet'i standartlaştırmaz, bu nedenle toplam varyans 1826'dır ve Özdeğerler aynı birimlerdedir ve 1826'ya ulaşır

> cumsum(eigenvals(pcfit))
      PC1       PC2       PC3       PC4       PC5       PC6       PC7       PC8 
 982.9788 1447.2829 1579.5334 1653.4670 1701.8853 1738.8947 1764.6209 1784.3265 
      PC9      PC10      PC11      PC12      PC13      PC14      PC15      PC16 
1796.6007 1807.0361 1816.3869 1819.1853 1821.5128 1822.9045 1824.1103 1824.9250 
     PC17      PC18      PC19      PC20      PC21      PC22      PC23 
1825.2563 1825.4429 1825.5495 1825.6131 1825.6383 1825.6548 1825.6594

Ayrıca, ilk Özdeğer değerinin varyansın yaklaşık yarısı olduğunu ve ilk iki eksenle toplam varyansın ~% 80'ini açıkladık.

> head(cumsum(eigenvals(pcfit)) / pcfit$tot.chi)
      PC1       PC2       PC3       PC4       PC5       PC6 
0.5384240 0.7927453 0.8651851 0.9056821 0.9322031 0.9524749

İlk iki temel bileşen üzerindeki örneklerin ve türlerin puanlarından bir biplot çizilebilir

> plot(pcfit)

resim açıklamasını buraya girin

Burada iki sorun var

  1. Sıralamada üç tür hakimdir - bu türler başlangıçtan en uzaktadır - çünkü bunlar veri setindeki en bol taksonlardır
  2. Sıralamada, koordinasyonun metrik özelliklerini korumak için iki ana ana bileşene bölünmüş uzun veya baskın tek bir gradyanı düşündüren güçlü bir eğri kemeri vardır.

CA

Bir CA, unimodal tepki modeli nedeniyle uzun eğimi daha iyi ele aldığı ve her ikisi için de yardımcı olabilir ve ham bolluk olmayan türlerin göreceli kompozisyonunu modeller.

Bunu yapmak için vegan / R kodu yukarıda kullanılan PCA koduna benzer

cafit <- cca(varespec)
cafit

> cafit <- cca(varespec)
> cafit
Call: cca(X = varespec)

              Inertia Rank
Total           2.083     
Unconstrained   2.083   23
Inertia is mean squared contingency coefficient 

Eigenvalues for unconstrained axes:
   CA1    CA2    CA3    CA4    CA5    CA6    CA7    CA8 
0.5249 0.3568 0.2344 0.1955 0.1776 0.1216 0.1155 0.0889 
(Showed only 8 of all 23 unconstrained eigenvalues) 

Burada, nispi kompozisyonlarındaki siteler arasındaki varyasyonun yaklaşık% 40'ını açıklıyoruz

> head(cumsum(eigenvals(cafit)) / cafit$tot.chi)
      CA1       CA2       CA3       CA4       CA5       CA6 
0.2519837 0.4232578 0.5357951 0.6296236 0.7148866 0.7732393

Türlerin ortak arazisi ve alan puanları artık birkaç tür tarafından daha az baskındır

> plot(cafit)

resim açıklamasını buraya girin

Hangi PCA veya CA'yı seçeceğiniz, verilerle ilgili sormak istediğiniz sorularla belirlenmelidir. Genellikle tür verileriyle, türler grubundaki farklılıklarla daha çok ilgileniyoruz, bu nedenle CA popüler bir seçimdir. Çevresel değişkenlerin bir veri kümesini varsa, CA uygunsuz ve PCA bu yüzden su veya toprak kimyası, biz (bir korelasyon matrisi kullanılarak, irtifalarında tek modlu bir şekilde yanıt verdiklerini olanlar beklemek olmaz demek scale = TRUEde rda()olacağını çağrı) daha uygun.

Kısıtlı sıralama; CCA

Şimdi, ilk tür veri kümesindeki kalıpları açıklamak için kullanmak istediğimiz ikinci veri kümemiz varsa, kısıtlı bir sıralama kullanmalıyız. Genellikle buradaki seçim CCA'dır, ancak RDA, tür verilerinin daha iyi işlenmesine izin vermek için verilerin dönüştürülmesinden sonra RDA gibi bir alternatiftir.

data(varechem)                          # load explanatory example data

cca()İşlevi tekrar kullanıyoruz ancak ya iki veri çerçevesi ( Xtürler ve Yaçıklayıcı / tahmin değişkenleri için) ya da sığdırmak istediğimiz modelin biçimini listeleyen bir model formülü sağlıyoruz.

Tüm değişkenleri varechem ~ ., data = varechemdahil etmek için formül olarak kullanabileceğimiz tüm değişkenleri dahil etmek - ancak yukarıda söylediğim gibi, bu genel olarak iyi bir fikir değil

ccafit <- cca(varespec ~ ., data = varechem)

> ccafit
Call: cca(formula = varespec ~ N + P + K + Ca + Mg + S + Al + Fe + Mn +
Zn + Mo + Baresoil + Humdepth + pH, data = varechem)

              Inertia Proportion Rank
Total          2.0832     1.0000     
Constrained    1.4415     0.6920   14
Unconstrained  0.6417     0.3080    9
Inertia is mean squared contingency coefficient 

Eigenvalues for constrained axes:
  CCA1   CCA2   CCA3   CCA4   CCA5   CCA6   CCA7   CCA8   CCA9  CCA10  CCA11 
0.4389 0.2918 0.1628 0.1421 0.1180 0.0890 0.0703 0.0584 0.0311 0.0133 0.0084 
 CCA12  CCA13  CCA14 
0.0065 0.0062 0.0047 

Eigenvalues for unconstrained axes:
    CA1     CA2     CA3     CA4     CA5     CA6     CA7     CA8     CA9 
0.19776 0.14193 0.10117 0.07079 0.05330 0.03330 0.01887 0.01510 0.00949

Yukarıdaki sıralamanın üçlüsü plot()yöntem kullanılarak üretilir

> plot(ccafit)

resim açıklamasını buraya girin

Tabii ki, şimdi görev, bu değişkenlerden hangisinin gerçekten önemli olduğunu bulmaktır. Ayrıca tür varyansının yaklaşık 2 / 3'ünü sadece 13 değişken kullanarak açıkladığımızı da unutmayın. bu sıralamada tüm değişkenleri kullanmanın sorunlarından biri, örnek ve tür puanlarında kemerli bir konfigürasyon yaratmış olmamızdır;

Bununla ilgili daha fazla bilgi edinmek isterseniz, vegan belgelerine veya çok değişkenli ekolojik veri analizi hakkında iyi bir kitaba göz atın.

Regresyon ile ilişki

RDA ile bağlantıyı göstermek en basitidir, ancak CCA sadece aynıdır, ancak her şey ağırlık olarak satır ve sütun iki yönlü tablo marjinal toplamlarını içerir.

Onun kalbinde, RDA, açıklayıcı değişkenlerin matrisi tarafından verilen öngörücülerle, her tür (yanıt) değerine (bolluk, örneğin) takılan çoklu doğrusal regresyondan takılmış değerler matrisine PCA uygulamasına eşdeğerdir.

R'de bunu şu şekilde yapabiliriz:

## centre the responses
spp <- scale(data.matrix(varespec), center = TRUE, scale = FALSE)
## ...and the predictors
env <- as.data.frame(scale(varechem, center = TRUE, scale = FALSE))

## fit a linear model to each column (species) in spp.
## Suppress intercept as we've centred everything
fit <- lm(spp ~ . - 1, data = env)

## Collect fitted values for each species and do a PCA of that
## matrix
pclmfit <- prcomp(fitted(fit))

Bu iki yaklaşım için Özdeğerler eşittir:

> (eig1 <- unclass(unname(eigenvals(pclmfit)[1:14])))
 [1] 820.1042107 399.2847431 102.5616781  47.6316940  26.8382218  24.0480875
 [7]  19.0643756  10.1669954   4.4287860   2.2720357   1.5353257   0.9255277
[13]   0.7155102   0.3118612
> (eig2 <- unclass(unname(eigenvals(rdafit, constrained = TRUE))))
 [1] 820.1042107 399.2847431 102.5616781  47.6316940  26.8382218  24.0480875
 [7]  19.0643756  10.1669954   4.4287860   2.2720357   1.5353257   0.9255277
[13]   0.7155102   0.3118612
> all.equal(eig1, eig2)
[1] TRUE

Nedense maç için eksen puanları (yükleme) alamıyorum, ama her zaman bunlar ölçekli (ya da değil) bu yüzden tam olarak burada nasıl yapıldığını içine bakmak gerekir.

RDA'yı vb . İle rda()gösterdiğim gibi yapmıyoruz lm(), ancak lineer model parçası için bir QR ayrıştırması ve ardından PCA kısmı için SVD kullanıyoruz. Ancak gerekli adımlar aynıdır.


4
+1 ve devam arıyor! Birkaç yorum: (1) örneğin PC1'inizde PC2 ile dik değil; örneğin değiştirebilirsiniz+1.3 için 5.6Tamir etmek için. (2) Muhtemelen cevabınızın içeriğini yansıtacak şekilde OP'nin başlığını düzenlemek mantıklı olacaktır; başlığın şu anki baskısı benim, ama OP'nin neden bahsettiği hakkında pek bir fikrim yoktu. (3) "Yanıt" genellikle tek değişkenli veya çok değişkenli mi? İkincisi gibi görünüyor, ama örneğin kırkayak bolluğu çok değişkenli mi? Birkaç türün bolluğu? (4) Bu yöntemler regresyondan nasıl farklıdır? Bazı matematiksel işaretçiler ekleyebilir misiniz?
amip

2
Öneri ve takip için teşekkürler - doğrusal kombinasyon örneklerini dik yapmak benim için olmadı ama ben güncelledim. Re 2), bir varsayım yaptım, ancak c var. 12.000 tür kırkayak, burada yanıtın bolluğunun gözlemleri olduğundan şüpheleniyorumm her birindeki türler nörnekleme yerleri. Bu anlamda, RDA veya CCA, çok değişkenli bir yanıt matrisini boyutlandıracaktır.n×m. Çocukları yatağa yatırdıktan sonra 4 ile başa çıkmaya çalışacağım.
Gavin Simpson

@amoeba Gecikme için özür dilerim ama cevabımı regresyon ile göstermeye çalışmak için bir bölüm ekledim.
Gavin Simpson

1
@amoeba SVD yapıyoruz Xβ (uygun değerler) katsayılardan değil β, en azından şunu fitted()verir:Xβ. Bu nedenle, RDA'ya genellikle düşük seviyeli regresyon denir.
Gavin Simpson

1
RDA'nın kökeni, istatistiksel bir kağıt olan Rao'ya (1964) bağlıdır, bu yüzden uygun olmalıdır.
Gavin Simpson
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.