具有嵌套的混合效应模型

机器算法验证 r 混合模式 模型 嵌套数据 lme4-nlme
2022-01-30 14:48:19

我从一个实验中收集的数据组织如下:

两个站点,每个站点都有 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)

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

2个回答

我认为这是正确的。

  • (1|Tree/Organ/Sample)扩展为/等价于(1|Tree)+(1|Tree:Organ)+(1|Tree:Organ:Sample)(其中:表示交互)。
  • 固定因素TreatmentOrganTissue自动在正确的水平上得到处理。
  • 您可能应该将Site其作为固定效应包括在内(从概念上讲,它是一个随机效应,但尝试仅用两个站点估计站点间的差异是不切实际的);这将略微减少树间方差。
  • 您可能应该将所有数据包含在数据框中,并通过参数显式传递给lmerdata=my.data.frame

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

我阅读了这个问题和博克博士的回答,并试图复制数据(坦率地说,不太关心“长度”在生物学术语或单位中代表什么,然后按照上面的方法拟合模型。我在这里发布结果就可能存在的误解分享并寻求反馈。

我用来生成这个虚构数据的代码可以在这里找到,并且数据集具有 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具有显着固定效应的值,对于phloemvs xylem( 3vs 6),截距非常不同,随机效应设置为 a sd = 3
  3. 因为organ有两个随机截取的“贡献”来自N(0,3)(即)sd = 3的截距具有固定效应贡献6rootstem
  4. 因为tree我们只是有随机效应sd = 7
  5. 因为sample我试图用sd = 5.
  6. 因为 forsite也只是随机 eff 的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. 因为organ,样本来自stem增加的截距- 我已经设置了0.1856之间的固定效应没有区别我想作为随机效应的标准偏差没有得到反映。stemroot
  4. tree具有 sd 的随机效应很好7地呈现为7.027.
  5. 至于,sample字母被轻描淡写为sd53.088
  6. site不是模型的一部分。

因此,总体而言,模型似乎与数据结构相匹配。