问题描述
我想进行对比的对比(即通过第一/第二个差异测试交互作用),对比是指结果(预测的概率)**
它涉及3个步骤:
(2)使用“成对”计算预测概率是否存在差异(第一差异)
(3)使用对计算差异(第二差异)是否存在。
我在步骤(2)和(3)中失败。请参阅下面的reprex中包含虚构数据的代码。有更好的方法吗?
**我最近的S / O帖子显示HERE展示了如何处理“回归器对概率的边际影响差异”。但这是一个平行的问题,即“结果的概率差异”。
suppresspackageStartupMessages({
library(emmeans)})
# create ex. data set. 1 row per respondent (dataset shows 2 resp).
cedata.1 <- data.frame( id = c(1,1,2,2),QES = c(1,3,3),# Choice set
Alt = c(1,# Alt 1 or Alt 2 in choice set
Choice = c(0,1),# Dep variable. if Chosen (1) or not (0)
LOC = c(0,# Indep variable per Choice set,binary categorical
SIZE = c(1,binary categorical
gender = c(1,0) # Indep variable per indvidual,binary categorical
)
# estimate model
glm.model <- glm(Choice ~ LOC*SIZE,data=cedata.1,family = binomial(link = "logit"))
# Plot interaction on response scale (i.e.,predict prob)
zzz <- emmip(glm.model,LOC ~ SIZE,type = "response")
# (1) Estimate predicted prob (extract values where yvar=predicted prob)
zzz$data
#> LOC SIZE yvar SE df tvar xvar
#> 1 0 0 0.3333333 0.2721655 Inf 0 0
#> 2 1 0 0.5000000 0.3535534 Inf 1 0
#> 3 0 1 0.6666667 0.2721655 Inf 0 1
#> 4 1 1 0.5000000 0.2500000 Inf 1 1
# (2) calc 1st diff.
### I tried following,but got an error -> pairs(zzz$data,simple = "SIZE",by= NULL?
# (3) calc 2nd diff
### I tried following,but got an error -> pairs(pairs(zzz$data,simple = "SIZE"),by = NULL)
解决方法
emm <- regrid(emmeans(glm.model,~ SIZE | LOC))
pairs(pairs(emm),by = NULL)
emm
包含四个因子组合的预测概率。它们不是边际结果,因为我们没有对任何事情求平均值。 pairs(emm)
获取每个位置的SIZE差,然后下次忽略by变量。
顺便说一句
contrast(emm,interaction = "pairwise")