Modelo de efeitos mistos com aninhamento


34

Eu tenho dados coletados de um experimento organizado da seguinte maneira:

Dois locais, cada um com 30 árvores. 15 são tratados, 15 são controle em cada local. De cada árvore, amostramos três pedaços do caule e três pedaços das raízes, de modo que 6 amostras de nível 1 por árvore são representadas por um dos dois níveis de fator (raiz, caule). Então, a partir dessas amostras de caule / raiz, coletamos duas amostras dissecando tecidos diferentes dentro da amostra, o que é representado por um dos dois níveis de fator para o tipo de tecido (tipo de tecido A, tipo de tecido B). Essas amostras são medidas como uma variável contínua. O número total de observações é 720; 2 locais * 30 árvores * (três amostras de caule + três amostras de raiz) * (uma amostra de tecido A + uma amostra de tecido B). Os dados têm esta aparência ...

        ï..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

Estou tentando ajustar um modelo de efeitos mistos usando R e lme4, mas sou novo em modelos mistos. Gostaria de modelar a resposta como o Tratamento + Fator de nível 1 (tronco, raiz) + Fator de nível 2 (tecido A, tecido B), com efeitos aleatórios para as amostras específicas aninhadas nos dois níveis.

Em R, estou fazendo isso usando o lmer, da seguinte maneira

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

Pelo meu entendimento (... o que não é certo e por que estou postando!), O termo:

(1|Tree/Organ/Sample)

Especifica que 'Amostra' está aninhada nas amostras de órgãos, aninhadas na árvore. Esse tipo de aninhamento é relevante / válido? Desculpe se esta questão não está clara. Em caso afirmativo, especifique onde posso elaborar.

Respostas:


33

Eu acho que está correto.

  • (1|Tree/Organ/Sample)expande para / é equivalente a (1|Tree)+(1|Tree:Organ)+(1|Tree:Organ:Sample)(onde :denota uma interação).
  • Os fatores fixos Treatment, Organe Tissueautomaticamente se tratado no nível correto.
  • Você provavelmente deve incluir Sitecomo efeito fixo (conceitualmente é um efeito aleatório, mas não é prático tentar estimar a variação entre sites com apenas dois sites); isso reduzirá ligeiramente a variação entre árvores.
  • Você provavelmente deve incluir todos os dados em um quadro de dados e transmiti-lo explicitamente para lmeratravés de um data=my.data.frameargumento.

Você pode encontrar as perguntas frequentes sobre o glmm úteis (focadas nos GLMMs, mas também possuem material relevante para modelos mistos lineares).


E se Erik quisesse especificar uma estrutura de covariância para essas interceptações? Ou seja, pode-se esperar que uma amostra com interceptação de árvore positiva também tenha interceptação de órgão positiva. O aninhamento cuida desse problema automaticamente? Caso contrário, como alguém poderia especificar tal estrutura?
— Sheridan Grant

Acho que se você tentar escrever as equações para esse caso, descobrirá que ele foi resolvido.
— precisa

13

Li essa pergunta e a resposta do Dr. Bolker e tentei replicar os dados (sem me importar muito, francamente, com o que "comprimento" representa em termos ou unidades biológicas e depois encaixar o modelo conforme acima. Estou publicando os resultados aqui compartilhar e buscar feedback sobre a provável presença de mal-entendidos.

O código que eu usei para gerar esses dados fictícios pode ser encontrado aqui e o conjunto de dados tem a estrutura interna do 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

A estrutura é a seguinte:

 '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 ...

O conjunto de dados foi "manipulado" (o feedback aqui seria bem-vindo) da seguinte maneira:

  1. Pois treatment, existe um efeito fixo com duas interceptações distintas para tratamento versus controle ( 100versus 70) e sem efeitos aleatórios.
  2. Defino os valores para tissueefeitos fixos proeminentes com interceptações muito diferentes para phloemversus xylem( 3versus 6) e efeitos aleatórios com a sd = 3.
  3. organN(0 0,3)sd = 36rootstem
  4. Pois treetemos apenas efeitos aleatórios com a sd = 7.
  5. Pois sampleeu tentei configurar apenas efeitos aleatórios com sd = 5.
  6. Para sitetambém apenas efeitos aleatórios com sd = 3.

Não houve declives, devido à natureza categórica das variáveis.

Os resultados do modelo de efeitos mistos:

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

estavam:

 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

Como funcionou:

  1. Pois treatmenta interceptação sem tratamento foi 79.8623(estabeleci uma média de 70), e com o tratamento foi 79.8623 + 21.4368 = 101.2991(estabelecemos uma média de 100.
  2. Pois tissuehavia uma 3.1820contribuição para a cortesia de interceptação de xylem, e eu havia estabelecido uma diferença entre phloeme xylemde 3. Os efeitos aleatórios não fizeram parte do modelo.
  3. Pois organ, amostras do stemaumento da interceptação em 0.1856- eu não havia estabelecido diferença nos efeitos fixos entre steme root. O desvio padrão do que eu queria agir como efeitos aleatórios não foi refletido.
  4. Os treeefeitos aleatórios com um SD de 7surgiram muito bem como 7.027.
  5. Quanto a sample, a inicial sdde 5foi subestimada como 3.088.
  6. site não fazia parte do modelo.

Portanto, no geral, parece que o modelo corresponde à estrutura dos dados.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.