带嵌套的混合效果模型


34

我从以下组织的实验中收集了数据:

两个站点,每个站点有30棵树。每个部位治疗15例,对照15例。从每棵树中,我们采样了三根茎和三根根,因此每棵树有6个1级样品,由两个因子水平(根,茎)之一表示。然后,从这些茎/根样本中,我们通过解剖样本中的不同组织来获取两个样本,这由组织类型(组织类型A,组织类型B)的两个因子水平之一表示。这些样本作为连续变量进行测量。观测总数为720;2个地点* 30棵树*(三个茎样本+三个根样本)*(一个组织A样本+一个组织B样本)。数据看起来像这样...

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

我正在尝试使用R和lme4拟合混合效果模型,但是对于混合模型还是陌生的。我想将响应建模为治疗+ 1级因子(茎,根)+ 2级因子(组织A,组织B),而嵌套在两个级别中的特定样品具有随机效应。

在R中,我使用lmer进行此操作,如下所示

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

根据我的理解(...不确定,以及为什么要发布!),该术语:

(1|Tree/Organ/Sample)

指定“样本”嵌套在器官样本中,而器官样本嵌套在树中。这种嵌套是否相关/有效?抱歉,如果这个问题不清楚,请指明我可以详细说明的地方。

Answers:


33

我认为这是正确的。

  • (1|Tree/Organ/Sample)扩展到/等于(1|Tree)+(1|Tree:Organ)+(1|Tree:Organ:Sample)(其中:表示交互)。
  • 固定因素TreatmentOrgan并会Tissue自动以正确的水平进行处理。
  • 您可能应该将其包括Site为固定效应(从概念上讲,这是随机效应,但是仅用两个位点来估计位点之间的方差是不切实际的);这将略微减少树间差异。
  • 你或许应该包括数据帧中的所有数据,并明确通过这个来lmer通过一个data=my.data.frame说法。

您可能会发现glmm FAQ很有帮助(它专注于GLMM,但也包含与线性混合模型相关的内容)。


如果Erik想要为这些截距指定协方差结构怎么办?即,人们可能期望具有正树截距的样本也具有正器官截距。嵌套会自动解决此问题吗?如果没有,那么如何指定这种结构?
谢里登·格兰特

我认为,如果您尝试写出这种情况的方程式,您会发现它已经解决了。
本·博克

13

我阅读了这个问题和博尔克博士的回答,并尝试复制数据(坦率地说,对“长度”在生物学术语或单位中表示的内容并不在意,然后如上所述拟合模型。我在此处发布结果分享和寻求有关误解可能存在的反馈。

我用来生成虚构数据的代码可以在此处找到,数据集具有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

结构如下:

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

数据集被“操纵”(欢迎在此处进行反馈),如下所示:

  1. 对于treatment,存在固定效果,即治疗与对照(10070)有两个截然不同的截距,没有随机效应。
  2. 我将的值设置为tissue具有显着的固定效果,而phloemxylem36)的截距截然不同,为随机效果设置了sd = 3
  3. organñ03sd = 36rootstem
  4. 因为tree我们只对产生随机影响sd = 7
  5. 因为sample我试图只用设置随机效果sd = 5
  6. 对于site也只是随机效果sd = 3

由于变量的分类性质,因此没有设置斜率。

混合效果模型的结果:

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

分别是:

 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

效果如何:

  1. 因为treatment未经处理的截距是79.8623(我设置了的平均值70),经过处理的截距是79.8623 + 21.4368 = 101.2991(我们设置了的平均值)100
  2. 对于tissue有一个3.1820到的拦截礼貌的贡献xylem,我已经建立了之间的差异phloemxylem3。随机效应不是模型的一部分。
  3. 因为organstem截距增加了的样本0.1856-我在stem和之间没有设置固定效果的区别root。我想充当随机效应的标准偏差未得到反映。
  4. treesd为sd 的随机效应7很好地浮出水面7.027
  5. 至于sample,初始sd5被充分重视作为3.088
  6. site 不是模型的一部分。

因此,总的来说,该模型似乎与数据的结构匹配。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.