R 如何计算广义线性混合效应模型的中值绝对偏差(MAD)
我知道我的问题与统计数据有关,但我正在R 如何计算广义线性混合效应模型的中值绝对偏差(MAD),r,lme4,mixed-models,R,Lme4,Mixed Models,我知道我的问题与统计数据有关,但我正在R中寻找解决方案,因此我相信它适合这样做 我使用R中lme4包中的glmer函数构建了一个广义线性混合效应模型(GLMM),以Zuur等人(2009)的重要解释变量为基础,对水产养殖场周围的物种丰富度进行建模。模型是: Mod1 <- glmer(Richness ~ Distance + Depth + Substrate + Beggiatoa + Distance*Beggiatoa + (1|Site/transect), f
R
中寻找解决方案,因此我相信它适合这样做
我使用R
中lme4
包中的glmer
函数构建了一个广义线性混合效应模型(GLMM),以Zuur等人(2009)的重要解释变量为基础,对水产养殖场周围的物种丰富度进行建模。模型是:
Mod1 <- glmer(Richness ~ Distance + Depth + Substrate + Beggiatoa +
Distance*Beggiatoa + (1|Site/transect), family = poisson, data = mydata)
有人知道这里出了什么问题吗?是否stats
中的mad
无法计算GLMMs?如果是,是否有另一个R
包可以从GLMMs计算mad?
编辑:
为了让您了解我的数据,这里是来自dput(head(mydata))
的输出,还请注意,新数据集中没有“衬底”类别,“s”指的是“丰富性”:
对于样本内误差,中位数绝对偏差计算仅为
mad(residuals(fitted_model))
。。。您可能需要残差(fitted_model,type=“response”)
,因为残差默认情况下会给您偏差残差(请参见?residuals.merMod
)
如果要查看样本外错误,可以执行以下操作:
pred <- predict(fitted_model,
newdata = newdf,
type = "response",
re.form=~0)
mad(pred, center=newdf$S)
predmydata
看起来像什么?你能发布dput(head(mydata))
给我们一个感觉吗?听起来R试图将非数据帧的部分子集。@jdobres感谢您的关注。我刚刚用要求的信息更新了我的问题。mad
用于原始数据。它接受一个数字向量,而glmer
的结果将是一个列表对象。另外,您的示例数据不包含“丰富性”列。@jdobres再次感谢。“丰富性”在我的数据中被称为“S”,我只是在我的问题中解释清楚了。如果mad
函数仅用于原始数据,是否有函数计算glmer
的中值绝对偏差,或者我正在尝试计算无法从glmer
计算的值?请将您的问题编辑为“我如何计算mad”,而不是“寻找要-因此,不推荐请求非现场资源的问题。(如果答案是“使用软件包xxx”,那没关系。)谢谢你的回答和编辑,这就是我想要的。因此,如果我理解得很好,我会将原始数据集(样本内错误)上的模型中的mad
与新数据集(样本外错误)上的mad
进行比较,对吗?我真的不知道,我自己也没有将mad用作标准。好的,谢谢,我会验证这一点。如果您对在新数据集上评估模型性能有其他建议,欢迎您回答或评论我的简历问题!更改OOS答案中的center=
是否仍然返回中值,或者其他值?
mad(residuals(fitted_model))
pred <- predict(fitted_model,
newdata = newdf,
type = "response",
re.form=~0)
mad(pred, center=newdf$S)