Modello di effetti misti con annidamento


34

Ho i dati raccolti da un esperimento organizzato come segue:

Due siti, ciascuno con 30 alberi. 15 sono trattati, 15 controllano ogni sito. Da ogni albero, campioniamo tre pezzi dello stelo e tre pezzi delle radici, quindi 6 campioni di livello 1 per albero che è rappresentato da uno dei due livelli di fattore (radice, gambo). Quindi, da quei campioni di gambo / radice, prendiamo due campioni sezionando diversi tessuti all'interno del campione, che è rappresentato da uno dei due livelli di fattore per il tipo di tessuto (tipo di tessuto A, tipo di tessuto B). Questi campioni sono misurati come una variabile continua. Il numero totale di osservazioni è 720; 2 siti * 30 alberi * (tre campioni di stelo + tre campioni di radice) * (un campione di tessuto A + un campione di tessuto B). I dati sembrano così ...

        ï..Site Tree Treatment Organ Sample Tissue Total_Length
    1        L  LT1         T     R      1 Phloem           30
    2        L  LT1         T     R      1  Xylem           28
    3        L  LT1         T     R      2 Phloem           46
    4        L  LT1         T     R      2  Xylem           38
    5        L  LT1         T     R      3 Phloem          103
    6        L  LT1         T     R      3  Xylem           53
    7        L  LT1         T     S      1 Phloem           29
    8        L  LT1         T     S      1  Xylem           21
    9        L  LT1         T     S      2 Phloem           56
    10       L  LT1         T     S      2  Xylem           49
    11       L  LT1         T     S      3 Phloem           41
    12       L  LT1         T     S      3  Xylem           30

Sto cercando di adattare un modello di effetti misti usando R e lme4, ma sono nuovo per i modelli misti. Vorrei modellare la risposta come il trattamento + fattore di livello 1 (stelo, radice) + fattore di livello 2 (tessuto A, tessuto B), con effetti casuali per i campioni specifici nidificati nei due livelli.

In R, lo sto facendo usando lmer, come segue

fit <- lmer(Response ~ Treatment + Organ + Tissue + (1|Tree/Organ/Sample)) 

Dalla mia comprensione (... che non è certo e perché sto postando!) Il termine:

(1|Tree/Organ/Sample)

Specifica che 'Campione' è nidificato all'interno dei campioni di organo, che è nidificato all'interno dell'albero. Questo tipo di annidamento è rilevante / valido? Scusate se questa domanda non è chiara, in tal caso, si prega di specificare dove posso elaborare.

Risposte:


33

Penso che sia corretto

  • (1|Tree/Organ/Sample)si espande in / è equivalente a (1|Tree)+(1|Tree:Organ)+(1|Tree:Organ:Sample)(dove :indica un'interazione).
  • I fattori fissi Treatment, Organe Tissuevengono automaticamente gestite al livello corretto.
  • Probabilmente dovresti includere Siteun effetto fisso (concettualmente è un effetto casuale, ma non è pratico provare a stimare la varianza tra i siti con solo due siti); questo ridurrà leggermente la varianza tra gli alberi.
  • Probabilmente dovresti includere tutti i dati all'interno di un frame di dati e passarli esplicitamente a lmertramite un data=my.data.frameargomento.

Potresti trovare utili le FAQ di glmm (è focalizzato sui GLMM ma ha anche cose rilevanti per i modelli misti lineari).


E se Erik volesse specificare una struttura di covarianza per queste intercettazioni? Vale a dire che ci si potrebbe aspettare che un campione con un'intercetta Tree positiva abbia anche un'intercetta Organ positiva. La nidificazione si occupa automaticamente di questo problema? In caso contrario, come si potrebbe specificare una tale struttura?
Sheridan Grant,

Penso che se provi a scrivere le equazioni per quel caso scoprirai che è stato curato.
Ben Bolker,

13

Ho letto questa domanda e la risposta del dott. Bolker, e ho cercato di replicare i dati (non preoccupandomi molto, francamente, di quale "lunghezza" rappresenti in termini o unità biologici, e quindi si adatta al modello come sopra. Sto pubblicando i risultati qui condividere e chiedere feedback in merito alla probabile presenza di incomprensioni.

Il codice che ho usato per generare questi dati fittizi può essere trovato qui e il set di dati ha la struttura interna dell'OP:

     site     tree treatment organ sample tissue    length
1    L       LT01         T  root      1  phloem  108.21230
2    L       LT01         T  root      1  xylem   138.54267
3    L       LT01         T  root      2  phloem   68.88804
4    L       LT01         T  root      2  xylem   107.91239
5    L       LT01         T  root      3  phloem   96.78523
6    L       LT01         T  root      3  xylem    88.93194
7    L       LT01         T  stem      1  phloem  101.84103
8    L       LT01         T  stem      1  xylem   118.30319

La struttura è la seguente:

 'data.frame':  360 obs. of  7 variables:
     $ site     : Factor w/ 2 levels "L","R": 1 1 1 1 1 1 1 1 1 1 ...
 $ tree     : Factor w/ 30 levels "LT01","LT02",..: 1 1 1 1 1 1 1 1 1 1 ...
     $ treatment: Factor w/ 2 levels "C","T": 2 2 2 2 2 2 2 2 2 2 ...
 $ organ    : Factor w/ 2 levels "root","stem": 1 1 1 1 1 1 2 2 2 2 ...
     $ sample   : num  1 1 2 2 3 3 1 1 2 2 ...
 $ tissue   : Factor w/ 2 levels "phloem","xylem": 1 2 1 2 1 2 1 2 1 2 ...
     $ length   : num  108.2 138.5 68.9 107.9 96.8 ...

Il set di dati era "truccato" (il feedback qui sarebbe il benvenuto) come segue:

  1. Infatti treatment, esiste un effetto fisso con due intercettazioni distinte per il trattamento rispetto ai controlli ( 100rispetto 70) e nessun effetto casuale.
  2. Ho impostato i valori tissuecon effetti fissi prominenti con intercettazioni molto diverse per phloemversus xylem( 3contro 6) e effetti casuali con a sd = 3.
  3. Perché organci sono due "contributi" di intercettazione casuali da aN(0,3)(ie sd = 3) con un contributo a effetto fisso all'intercettazione di 6entrambi roote stem.
  4. Perché treeabbiamo solo effetti casuali con a sd = 7.
  5. Perché sampleho provato a impostare solo effetti casuali con sd = 5.
  6. Perché siteanche per effetti casuali con sd = 3.

Non sono state create pendenze, a causa della natura categorica delle variabili.

I risultati del modello di effetti misti:

fit <- lmer(length ~ treatment + organ + tissue + (1|tree/organ/sample), data = trees) 

sono stati:

 Random effects:
 Groups              Name        Variance  Std.Dev. 
 sample:(organ:tree) (Intercept) 9.534e-14 3.088e-07
 organ:tree          (Intercept) 0.000e+00 0.000e+00
 tree                (Intercept) 4.939e+01 7.027e+00
 Residual                        3.603e+02 1.898e+01
Number of obs: 360, groups:  sample:(organ:tree), 180; organ:tree, 60; tree, 30

Fixed effects:
            Estimate Std. Error       df t value Pr(>|t|)    
(Intercept)  79.8623     2.7011  52.5000  29.567  < 2e-16 ***
treatmentT   21.4368     3.2539  28.0000   6.588 3.82e-07 ***
organstem     0.1856     2.0008 328.0000   0.093    0.926    
tissuexylem   3.1820     2.0008 328.0000   1.590    0.113    
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Come ha funzionato:

  1. Perché treatmentl'intercettazione senza trattamento era 79.8623(ho impostato una media di 70), e con il trattamento era 79.8623 + 21.4368 = 101.2991(abbiamo impostato una media di 100.
  2. Perché tissuec'era un 3.1820contributo all'intercettazione per gentile concessione di xylem, e io avevo creato una differenza tra phloeme xylemdi 3. Gli effetti casuali non facevano parte del modello.
  3. Infatti organ, i campioni stemaumentavano l'intercettazione di 0.1856- Non avevo impostato alcuna differenza negli effetti fissi tra steme root. La deviazione standard di ciò che volevo agire come effetti casuali non si rifletteva.
  4. Gli treeeffetti casuali con un sd 7sono emersi bene come 7.027.
  5. Per quanto riguarda sample, l'iniziale sddi 5era sottovalutato come 3.088.
  6. site non faceva parte del modello.

Quindi, nel complesso, sembra che il modello corrisponda alla struttura dei dati.

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.