0

我有一个包含三个因子变量的数据:

1.) Item_Type:因子 w/ 4 个级别“控制”、“Ar”、“Eng”、“Fr”

2.) 测试时间:因子 w/ 3 个级别“Pretest”、“Posttest”、“Delayedtest”

3.) 准确度:因子 w/ 2 级“0”、“1”

Item_Type 和 Time_of Testing 都在主题变量中。

主要假设是在 Pretest 中,不会有 Item_Type 效果。但是,在 Posttest 中,在阅读处理之后,除了对照项之外,从 Pretest 到 Posttest(处理后)的所有 Item_Type 均值应该有增长。也就是说,这种手段的增长不应该出现在控制项目中,因为这些项目是唯一没有接受任何形式治疗的项目。这些控制项仅出现在测试阶段,作为可以比较实验 Item_Types 的基线。

我安装了我的游戏玩家模型。

然后我进行事后比较。

FINAL_ACC <- glmer(Accuracy ~ Time_of_Testing*Item_Type + (1|subject) + (1|Item), family = "binomial", data=Task_df,  na.action= na.exclude)

emmeans(FINAL_ACC, pairwise ~ Time_of_Testing*Item_Type, adjust= "bonferroni", type= "responce")

但是,事后结果表明,控制项(其准确度实际上是所有其他 Item_Types 中最低的)确实具有最高的最小二乘均值。此外,在控制项目中发现 Pretest 和 Posttest 之间的 Item_Types 的唯一显着差异(尽管所有其他项目中 Pretest 和 Posttest 之间的实际平均均值差异为 +0.37,而控制项目仅为 +.1) .

我认为问题在于模型假设前测和后测中的所有项目之间没有差异,这就是为什么控制项目的拟合值具有误导性。你认为我应该如何解决这个问题。你会建议我做一些正交对比吗,因为我在运行 emmeans 测试时没有这样做。是否建议添加另一个名为(治疗,控制项目编码为 0,所有其他项目编码为 1?)

我非常感谢您的帮助和建议。

4

1 回答 1

0

正如评论中所建议的,您需要一个模型来为所有基线案例预测相同的事情。我建议这样做:首先创建一个新因素:

Task_df$Phase <- with(Taskdf, 
    factor((Time_Of_Testing == "pretest") + 2*(Time_Of_Testing != "pretest"), 
           labels = c("baseline","experimental")))
Task_df$Item_Type[Task_df$Phase == "baseline"] <- "pretest"

第二个确保所有基线案例具有相同的因子水平Item_Type

现在,拟合一个嵌套模型:

ULTIMATE_ACC <- glmer(Accuracy ~ Phase + Phase:(Time_of_Testing * Item_Type) 
    + (1|subject) + (1|Item), 
    family = "binomial", data=Task_df,  na.action= na.exclude)

然后做你的EMM:

emm <- emmeans(ULTIMATE_ACC, ~ Time_Of_Testing * Item_Type, type = "response")
emm           ### display estimates
pairs(emm, adjust = "bonferroni")   ### pairwise comparisons

请注意,它"response"不是"responce"

如果您不指定adjust,您将获得不太保守的 Tukey 调整。例如,您还可以考虑pairs(emm, by = "Time_Of_Testing")对一个因子的每个水平进行单独的成对比较。

于 2019-05-04T14:58:22.703 回答