我正在尝试使用 lme4
包将广义线性混合效应模型拟合到我的数据中 .
数据可描述如下(见下面的例子):28天内鱼类的存活数据 . 示例数据集中的解释变量是:
-
Region
这是幼虫起源的地理区域 . -
treatment
每个地区的鱼类子样本升高的温度 . -
replicate
整个实验的三次重复之一 -
tub
随机变量 . 总共15个桶(用于维持水族箱中的实验温度)(5个温度中的每个温度为replicate
s) . 每个浴缸每个容器包含1个水族箱(总共4个水族箱),并随机放置在实验室中 . -
Day
自解释,从实验开始的天数 . -
stage
未在分析中使用 . 可以忽略 .
响应变量
-
csns
累积生存 . 即remaining fish/initial fish at day 0
. -
start
权重用于告诉模型生存概率与实验开始时的鱼数相关 . -
aquarium
第二个随机变量 . 这是每个水族箱的唯一ID,包含其所属的每个因子的值 . 例如N-14-1表示Region N
,Treatment 14
,replicate 1
.
我的问题很不寻常,因为我之前已经安装了以下模型:
dat.asr3<-glmer(csns~treatment+Day+Region+
treatment*Region+Day*Region+Day*treatment*Region+
(1|tub)+(1|aquarium),weights=start,
family=binomial, data=data2)
但是,现在我正在尝试重新运行模型,为了生成分析以便发布,我使用相同的模型结构和包得到以下错误 . 输出如下:
> Warning messages:
1:在eval(expr,envir,enclos)中:二项式glm中的非整数#successes! 2:在checkConv(attr(opt,“derivs”)中,选择$ par,ctrl = control $ checkConv,:模型未能收敛于max | grad | = 1.59882(tol = 0.001,component> 1)3:在checkConv( attr(opt,“derivs”),opt $ par,ctrl = control $ checkConv,:模型几乎无法识别:非常大的特征值 - 重新定标变量?;模型几乎无法识别:大特征值比率 - 重新定标变量?
我的理解如下:
警告信息1 .
non-integer #success in a binomial glm
指的是 csns
变量的比例格式 . 我已经咨询过几个来源,包括github,r-help等,所有人都建议这样做 . 3年前帮助我进行这项分析的研究员无法到达 . 它可以与过去3年中 lme4
包的变化有关吗?
警告信息2 .
我知道这是一个问题,因为没有足够的数据点来适应模型,特别是在L-30-1
, L-30-2
和 L-30-3
,
只有两个观察结果:Day 0 csns=1.00
和 Day 1 csns=0.00
所有三个水族馆 . 因此,没有可变性或足够的数据来适应模型 .
尽管如此, lme4
中的这个模型之前已经有效,但现在没有这些警告就没有了 .
警告信息3
这个对我来说完全不熟悉 . 从未见过它 .
样本数据:
Region treatment replicate tub Day stage csns start aquarium
N 14 1 13 0 1 1.00 107 N-14-1
N 14 1 13 1 1 1.00 107 N-14-1
N 14 1 13 2 1 0.99 107 N-14-1
N 14 1 13 3 1 0.99 107 N-14-1
N 14 1 13 4 1 0.99 107 N-14-1
N 14 1 13 5 1 0.99 107 N-14-1
有问题的数据 1005cs.csv
可通过以下方式获取:http://we.tl/ObRKH0owZb
任何解密这个问题的帮助,将不胜感激 . 对于分析这些数据的合适包或方法的任何替代建议也将是很好的 .
1 回答
tl;dr "non-integer successes"警告是准确的;再次,由你来决定这些不同配方的结果是否足以让你担心......
适合的模型(稍微更紧凑的模型配方)
我收到你报告的警告 .
我们来看看数据:
这里没有明显的问题,尽管它确实清楚地表明某些治疗组合的数据非常接近1,并且治疗值远非零 . 让我们尝试缩放和居中一些输入变量:
现在“非常大的特征值”警告消失了,但我们仍然有“非整数#成功”警告,并且最大| grad | = 0.082 . 让我们尝试另一个优化器:
现在只剩下“非整数#successes”警告 .
这些偏差差别不大(偏差量表上的0.44比可以通过舍入误差计算得多,但拟合度差异不大);实际上,第一个模型给出了最好(最低)的偏差,这表明了警告是误报......
这清楚地表明确实存在非整数响应,因此警告是正确的 .