【问题标题】:Errors trying to run glmer with paired data and repeated measures (lme4)尝试使用配对数据和重复测量运行 glmer 时出错 (lme4)
【发布时间】:2017-08-21 18:06:12
【问题描述】:

我想分析2种处理对植物物种丰度沿时间梯度变化的影响。

实验设计包括封闭区(处理 = 没有驼鹿)和对照地块(处理 = 驼鹿)。一个站点由 1 个隔离区 + 1 个控制地块组成。有 15 个站点(因此 15 个封闭区 + 15 个配对地块 = 30 个实验单元)。每个实验单元都有唯一的“id”。冷杉的丰度(比例:0 到 1 之间的连续值)已监测 5 年(每年一次 = 重复测量)。所以重复的措施嵌套在“id”里面。

我想分析处理对冷杉丰度的影响,同时控制数据的配对结构和重复测量。

由于响应数据是一个比例(0 到 1 之间的丰度),因此我一直使用 family=binomial 的 GLMM。

但是,我不完全确定如何编写模型。我试过了:

fit = glmer(fir ~ treatment*time + (time|id) + (1|site), data=dat1, family=binomial)

如果我做对了,“(1|site)”将控制成对结构,而“(time|id)”将控制重复结构(因为“time”嵌套在“id”中)。

但我收到以下错误:

Warning messages:
1: In eval(family$initialize, rho) :
non-integer #successes in a binomial glm!
2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
unable to evaluate scaled gradient
3: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Hessian is numerically singular: parameters are not uniquely determined

知道我的模型出了什么问题以及这些错误消息是什么意思吗?

谢谢

【问题讨论】:

  • 使用reproducible example 会更容易提供帮助。听起来可能无法使用您拥有的数据来估计您想要的模型的参数。
  • 你不会编码像“(1|time/id)”这样的嵌套效果吗?

标签: r lme4


【解决方案1】:

我学会了一种同时包含配对结构和重复测量的方法。

但首先,我了解到您不能直接在 glmer 中使用比例,因为您会丢失有关该比例“稳固性”的信息。例如,如果 2 个地块中有 1 个有冷杉,则获得 50% 的丰度,但 50% 的“可信度”低于 120 个地块中的 60 个地块(也提供 50% 的丰度)。 此外,无法在 glmer 中插入相关参数。 在我们的实验中,4200 是采样的工作量:

dat1$fir2 = round(dat1$fir*4200);
dat1$N = 4200

要同时包含配对结构和重复测量,您可以使用库 (MASS) 中使用惩罚拟似然(或 glmmPQL)的广义线性混合模型。通过 corCAR1() 的相关参数包含重复测量。

上述情况的模型是:

fit2 = glmmPQL(cbind(fir2, N-fir2) ~ treatment*time,
     random=~1|site/treatment, data=dat1, family=binomial,
     correlation=corCAR1(form = ~time|site/treatment))

干杯!

【讨论】:

  • 这很好 - 解决了 5 个小时的搜索问题。我唯一的问题是,如果设计不平衡(如果缺少组合),corCAR1 似乎不起作用。
猜你喜欢
  • 1970-01-01
  • 2014-07-01
  • 2017-11-01
  • 2016-03-23
  • 1970-01-01
  • 2014-10-22
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
相关资源
最近更新 更多