我正在关注使用 emmeans 检查交互的小插图 https://cran.r-project.org/web/packages/emmeans/vignettes/interactions.html
但我使用的是我自己的数据集(all.det)——它确实有重要的交互作用。all.det 包含 12 个变量的 1621 个观测值,其中 3 个是因子。我确实尝试创建一个可重现的示例,但还没有弄清楚如何创建一个所有交互都很重要的示例。所以我希望这个描述足以让有人指出我哪里出错了。
我在用
library(data.table)
library(car)
library(emmeans)
我使用此代码运行方差分析
DistanceKm 是一个数值,Method、IDGroup 和 Sightability 是因子。
model = lm(DistanceKm ~ Method * IDGroup * Sightability,
data=all.det[(IDGroup == "Whale" | IDGroup == "Dolphin")
& DistanceKm <=5])
Anova(model, type="II")
所有的交互都很重要,所以我按照小插图中的建议使用交互图来跟进
emmip(model, Method ~ Sightability | IDGroup)
但我得到这些错误
Error in if (!all(chk == tbl)) stop("Data appear to be randomized -- ", :
missing value where TRUE/FALSE needed
Error in ref_grid(object, ...) :
Perhaps a 'data' or 'params' argument is needed
我确实尝试创建我的数据的一个子集
sub=all.det[(IDGroup == "Whale" | IDGroup == "Dolphin") & DistanceKm <=5]
然后重新运行模型,然后是 Anova
model=lm(DistanceKm ~ Method * IDGroup * Sightability, data=sub)
Anova(model, type="II")
我得到了相同的 Anova 结果(如预期的那样),但现在我也能够无错误地生成交互图。
emmip(model, Method ~ Sightability | IDGroup)
我只收到一个关于缺失值的警告
打电话给emmip时我错过了什么吗?