我正在运行一个具有类似结构的模型:
model <- glmer(protest ~ factora*factorb*numeric+factora+factorb+numeric+1 + (1 + factor1|level1) + (1|level2), data=data, family=binomial(link='logit'))其中factora和factorb是因子变量,numeric是数值变量。
当在数值范围内将factora factorb (1-5)的两个值保持为3时,factorb (1-5)的两个值之间的交互作用中的对比度有何统计意义,我很好奇。
我尝试了以下选项,但没有成功:
library(psycho)
get_contrasts(model, formula="factora:factorb:numeric", adjust="tukey")
View(contrasts$contrasts) 这是可行的,但不幸的是,结果保持numeric不变,并且只改变factora和factorb。因此,它没有回答我的问题。
我也尝试过:
library(multcomp)
test = glht(model,linfct=mcp("factora:factorb:numeric"="Tukey"))这会产生以下错误:
Error in mcp2matrix(model, linfct = linfct) :
Variable(s) ‘factora:factorb:numeric’ have been specified in ‘linfct’ but cannot be found in ‘model’! 不考虑我指定交互的方式,尽管有其他函数,如get_contrasts,查找指定的交互也是一样的。
我也尝试过:
library(emmeans)
contrast(m.3[[2]], interaction = c("factora", "factorb", "numeric"))然而,这并不支持glmer。
有什么想法吗?
发布于 2018-08-15 03:41:31
这里有几个问题正在让你绊倒。
其一,我们并不真正将对比应用于数值预测。数值预测器具有斜率,而不是对比度;如果您有一个模型,其中数值预测器与因子交互,这意味着对于因子的每个级别,数值预测器的斜率是不同的。emmeans包中的函数emtrends()可以帮助您估计这些不同的斜率。
第二个问题是,emmeans::contrast()中的interaction参数需要指定要使用的对比度类型,例如"pairwise"。要应用它们的因子是第一个参数中的emmGrid对象中的因子。
所以..。我想也许你想试试这样的东西:
emt <- emtrends(model, ~ factora*factorb, var = "numeric")
emt # list the estimated slopes
contrast(emt, interaction = "consec")
# obtain interaction contrasts comparing consecutive levels of the two factorshttps://stackoverflow.com/questions/51818187
复制相似问题