Quali criteri utilizzare per separare le variabili in variabili esplicative e le risposte ai metodi di ordinazione in ecologia?


9

Ho diverse variabili che interagiscono all'interno di una popolazione. Fondamentalmente ho fatto un inventario di millepiedi e misurato alcuni altri valori del terreno, come:

  • Le specie e la quantità di esemplari raccolti
  • I diversi ambienti in cui si trovano gli animali
  • il pH
  • La percentuale di materiale organico
  • la quantità di P, K, Mg, Ca, Mn, Fe, Zn, Cu
  • Relazione Ca + Mg / K

Fondamentalmente vorrei usare PCA per determinare quali variabili guidano la variabilità dei campioni e rendere diversa la foresta (ambienti); quali variabili dovrei usare per "variabili" e quali per "individui"?


Penso che potresti essere confuso su PCA. Tutte le variabili possono (ovviamente) essere solo "variabili". Probabilmente hai effettuato una serie di misurazioni in posizioni diverse (o in momenti diversi); quindi queste posizioni (o tempi) sono i tuoi "individui", o piuttosto "campioni".
ameba,

Inoltre, non posso fare a meno di chiedere: il tuo profilo dice che sei un fondatore di startup; è una startup che lavora con i millepiedi? Wow!
ameba,

in effetti @amoeba è mia moglie che ci sta lavorando, sono bravo in calcolo ma non molto sviluppato in statistica. E lei voleva che glielo chiedessi.
Leonardo,

1
Hpw è davvero una domanda statistica? Anche se sembra confuso sulla terminologia statistica, nella misura in cui è difficile da decodificare, se questo è risolto il consiglio è di usare il giudizio scientifico.
Nick Cox,

2
Potrebbe trattarsi di una domanda statistica, solo in un contesto diverso e con termini diversi da quelli più tipici nelle statistiche. Credo che tu stia chiedendo dei metodi di ordinazione dall'ecologia. Questo sito Web potrebbe esserti utile. Relativamente pochi dei nostri membri attivi qui sono esperti in questo, ma @GavinSimpson potrebbe essere in grado di aiutarti se possiamo attirare la sua attenzione.
gung - Ripristina Monica

Risposte:


19

Come menzionato da @amoeba nei commenti, PCA esaminerà solo un insieme di dati e mostrerà i principali modelli (lineari) di variazione in tali variabili, le correlazioni o le covarianze tra tali variabili e le relazioni tra i campioni (le righe ) nel tuo set di dati.

Cun'2+

0.5×pH+1.4×Cun'2++0.1×Totun'lCun'rBon

e il secondo componente

2.7×pH+0.3×Cun'2+-5.6×Totun'lCun'rBon

Questi componenti sono liberamente selezionabili tra le variabili misurate e vengono scelti quelli che spiegano in sequenza la maggiore quantità di variazione nel set di dati e che ogni combinazione lineare è ortogonale (non correlata con) le altre.

In un'ordinazione vincolata, abbiamo due set di dati, ma non siamo liberi di selezionare le combinazioni lineari del primo set di dati (i dati di chimica del suolo sopra) che desideriamo. Invece dobbiamo selezionare combinazioni lineari delle variabili nel secondo set di dati che spiegano meglio la variazione nel primo. Inoltre, nel caso di PCA, un unico set di dati è la matrice di risposta e non ci sono predittori (si potrebbe pensare alla risposta come a prevedere se stessa). Nel caso vincolato, abbiamo un set di dati di risposta che desideriamo spiegare con un set di variabili esplicative.

Anche se non hai spiegato quali variabili sono la risposta, normalmente si desidera spiegare la variazione delle abbondanze o della composizione di quelle specie (cioè le risposte) usando le variabili esplicative ambientali.

La versione vincolata di PCA è una cosa chiamata Analisi di ridondanza (RDA) nei circoli ecologici. Questo presuppone un modello di risposta lineare sottostante per la specie, che non è appropriato o è appropriato solo se si hanno brevi gradienti lungo i quali la specie risponde.

Un'alternativa alla PCA è una cosa chiamata analisi della corrispondenza (CA). Questo non è vincolato ma ha un modello di risposta unimodale sottostante, che è un po 'più realistico in termini di come le specie rispondono su pendenze più lunghe. Si noti inoltre che CA modella le abbondanze o la composizione relative , mentre la PCA modella le abbondanze grezze.

Esiste una versione vincolata di CA, nota come analisi di corrispondenza vincolata o canonica (CCA) - da non confondere con un modello statistico più formale noto come analisi di correlazione canonica.

Sia in RDA che in CCA l'obiettivo è quello di modellare la variazione nell'abbondanza o composizione delle specie come una serie di combinazioni lineari delle variabili esplicative.

Dalla descrizione sembra che tua moglie voglia spiegare la variazione nella composizione (o abbondanza) delle specie di millepiedi in termini di altre variabili misurate.

Alcune parole di avvertimento; RDA e CCA sono solo regressioni multivariate; CCA è solo una regressione multivariata ponderata. Tutto ciò che hai appreso sulla regressione si applica e ci sono anche un paio di altri aspetti:

  • man mano che aumenti il ​​numero di variabili esplicative, i vincoli in realtà diventano sempre meno e non stai realmente estraendo componenti / assi che spiegano la composizione delle specie in modo ottimale, e
  • con CCA, quando si aumenta il numero di fattori esplicativi, si rischia di indurre un artefatto di una curva nella configurazione dei punti nel diagramma CCA.
  • la teoria alla base di RDA e CCA è meno sviluppata rispetto a metodi statistici più formali. Possiamo solo ragionevolmente scegliere quali variabili esplicative continuare a usare la selezione graduale (che non è l'ideale per tutti i motivi per cui non ci piace come metodo di selezione in regressione) e per fare ciò dobbiamo usare i test di permutazione.

quindi il mio consiglio è lo stesso della regressione; pensa in anticipo quali sono le tue ipotesi e includi le variabili che riflettono tali ipotesi. Non buttare nel mix tutte le variabili esplicative.

Esempio

Ordinazione non vincolata

PCA

Mostrerò un esempio confrontando PCA, CA e CCA usando il pacchetto vegan per R che aiuto a mantenere e che è progettato per adattarsi a questi tipi di metodi di ordinazione:

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)

il vegano non standardizza l'inerzia, a differenza di Canoco, quindi la varianza totale è 1826 e gli autovalori sono in quelle stesse unità e si sommano al 1826

> 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

Vediamo anche che il primo autovalore è circa la metà della varianza e con i primi due assi abbiamo spiegato ~ 80% della varianza totale

> 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

Un biplot può essere estratto dai punteggi dei campioni e delle specie sui primi due componenti principali

> plot(pcfit)

inserisci qui la descrizione dell'immagine

Ci sono due problemi qui

  1. L'ordinazione è essenzialmente dominata da tre specie - queste specie si trovano più lontane dall'origine - in quanto si tratta dei taxa più abbondanti nel set di dati
  2. C'è un forte arco di curva nell'ordinazione, che suggerisce un gradiente singolo lungo o dominante che è stato scomposto nei due principali componenti principali per mantenere le proprietà metriche dell'ordinazione.

circa

Una CA può aiutare con entrambi questi punti poiché gestisce meglio il gradiente lungo grazie al modello di risposta unimodale e modella la composizione relativa delle specie e non le abbondanze grezze.

Il codice vegan / R per fare questo è simile al codice PCA usato sopra

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) 

Qui spieghiamo circa il 40% della variazione tra i siti nella loro relativa composizione

> 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

Il diagramma congiunto delle specie e dei punteggi dei siti è ora meno dominato da alcune specie

> plot(cafit)

inserisci qui la descrizione dell'immagine

Quale PCA o CA si sceglie dovrebbe essere determinato dalle domande che si desidera porre dei dati. Di solito con i dati sulle specie siamo più spesso interessati alla differenza nella suite di specie, quindi CA è una scelta popolare. Se avessimo un set di dati di variabili ambientali, diciamo chimica dell'acqua o del suolo, non ci aspetteremmo che rispondano in modo unimodale lungo i gradienti, quindi CA sarebbe inappropriato e PCA (di una matrice di correlazione, usando scale = TRUEnella rda()chiamata) sarebbe più appropriato.

Ordinazione vincolata; CCA

Ora, se abbiamo una seconda serie di dati che desideriamo utilizzare per spiegare i modelli nella prima serie di dati sulle specie, dobbiamo usare un'ordinazione vincolata. Spesso la scelta qui è CCA, ma RDA è un'alternativa, così come RDA dopo la trasformazione dei dati per consentirle di gestire meglio i dati delle specie.

data(varechem)                          # load explanatory example data

Riutilizziamo la cca()funzione ma forniamo due frame di dati ( Xper specie e Yper variabili esplicative / predittive) o una formula di modello che elenca la forma del modello che desideriamo adattare.

Per includere tutte le variabili che potremmo usare varechem ~ ., data = varechemcome formula per includere tutte le variabili, ma come ho detto sopra, questa non è una buona idea in generale

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

Il triplot dell'ordinazione sopra è prodotto usando il plot()metodo

> plot(ccafit)

inserisci qui la descrizione dell'immagine

Certo, ora il compito è capire quale di queste variabili sia effettivamente importante. Si noti inoltre che abbiamo spiegato circa 2/3 della varianza delle specie usando solo 13 variabili. uno dei problemi dell'utilizzo di tutte le variabili in questa ordinazione è che abbiamo creato una configurazione ad arco nei punteggi dei campioni e delle specie, che è puramente un artefatto dell'utilizzo di troppe variabili correlate.

Se vuoi saperne di più, consulta la documentazione vegana o un buon libro sull'analisi multivariata dei dati ecologici.

Rapporto con regressione

È più semplice illustrare il collegamento con RDA, ma CCA è lo stesso, tranne per il fatto che tutto comprende somme marginali a due vie della riga e della colonna come pesi.

Al suo centro, RDA è equivalente all'applicazione di PCA a una matrice di valori adattati da una regressione lineare multipla adattata ai valori di ciascuna specie (risposta) (abbondanza, diciamo) con predittori forniti dalla matrice di variabili esplicative.

In R possiamo farlo come

## 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))

Gli autovalori per questi due approcci sono uguali:

> (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

Per qualche ragione non riesco a far corrispondere i punteggi degli assi (caricamenti), ma invariabilmente questi sono ridimensionati (o meno), quindi devo esaminare esattamente come vengono eseguiti qui.

Non eseguiamo l'RDA tramite rda()come ho mostrato con lm()ecc., Ma utilizziamo una decomposizione QR per la parte del modello lineare e quindi SVD per la parte PCA. Ma i passaggi essenziali sono gli stessi.


4
+1.3-5.6

2
mnn×m

@amoeba Ci scusiamo per il ritardo, ma ho aggiunto una sezione alla mia risposta per provare a mostrare il collegamento con regressione e come RDA può essere visto come un PCA di valori adattati da una serie di regressioni lineari, una per variabile di risposta.
Gavin Simpson,

1
Xββfitted()Xβ

1
L'origine della RDA è dovuta a Rao (1964) che è un documento statistico, quindi dovrebbe essere appropriato.
Gavin Simpson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.