r - 如何测试 R 中的线性混合效应模型(lmer)是否大于 1?
问题描述
在下面的虚拟数据中,我想测试oviposition index
A 和 B 的值是否与 1 显着不同。如果我理解正确,summary(mod) 表示每个物种是否与 0 显着不同。如何更改默认值以进行测试如果它不同于1?在这里,我希望物种B
与 1 显着不同,因为置信区间不包括 1
set.seed(111)
oviposition.index <- rnorm(20, 2, 1.3)
species <- rep(c("A","B"), each = 10)
month <- rep(c("Jan", "Feb"), times = 10)
plot <- rep(c("1", "2"), times = 10)
df <- data.frame(oviposition.index, species, month, plot)
mod <- lmer(oviposition.index ~ species + (1|month/plot), df)
summary(mod)
ggplot(df, aes(x = species, y = oviposition.index, color = species)) + geom_point() + geom_hline(yintercept = 1) + stat_summary(fun.data=mean_cl_boot, geom="errorbar", width=0.2, colour="black") + stat_summary(fun = mean, color = "black", geom ="point", size = 3,show.legend = FALSE)
解决方案
内特的评论
lmer(oviposition.index ~ 0 + species + (1|month/plot), df)
通过指定您想要对每个物种进行单独估计而不是对物种 A 的估计 + 对差异的估计,让您在中途取得成功,但是如果您想针对 index = 1 的零假设进行测试,您只需从响应中减去 1 :
lmer(oviposition.index - 1 ~ 0 + species + (1|month/plot), df)
您也可以添加一个偏移量(即添加+offset(rep(1, nrow(df)))
到您的模型中),但是对于线性模型来说它是多余的(它对于调整零点不那么容易的 GLM 很有用)。
我要补充一点警告,在这里很容易走上一条坏路:您可能有充分的理由分别测试每个物种的重要性,但继续(可能很自然)得出结论:“物种 B 的 OI与 1 显着不同,而 A 种没有,因此它们不同”是一个错误。正如 Andrew Gelman 所说,“显着和非显着之间的差异在统计上并不显着”。
推荐阅读
- c++ - 如何使用 Qt 发出简单的 Http 请求?http 请求在 URL 中包含百分比编码
- pentaho - 如何并行运行 Pentaho 转换并限制执行器数量
- css - 无法使用 LESS 更改主按钮颜色(ant.design)
- r - RMarkdown:使用循环在同一块中的多个ggplots
- python - 从具有重复列值的数据框中创建字典
- r - 为什么我不能计算平均值?
- github - 如果问题被陈旧的机器人关闭,我如何在 Github 中重新打开问题?
- mysql - MySQL 事务锁结构解释
- apache - 如何从归档 zip 安装和配置 IBM HTTP Server v9
- html - 使用内部选择器(子类)扩展 SASS 类的最佳方法