手段-对照还是针对多个因素的治疗

问题描述 投票:0回答:1

我正在使用与对照组进行自定义比较。如果我只想比较一个因素,trt.vs.ctrl方法对我来说是完美的,但是当我将比较设置为更复杂时,即失败(或者我失败)(即对照组是由以下因素的特定组合来描述的) 2个以上的变量)。

下面的示例代码。假设使用pigs数据,我想将所有饮食与低百分比的鱼类饮食进行比较。请注意,在nd数据帧中,“ fish”仅与9%关联。但是,当我运行emmeans时,该功能不会在嵌套中显示,并且在控件正确的情况下,处理组还包括各种值的鱼和百分数。这表示调整错误。

所以我可以想到两种方法:

  1. 在这种情况下,如何使emmeans进入嵌套,或
  2. 我如何手动进行dunnettx调整(=我可以不使用调整,然后取出我真正想要的测试,然后自己调整p值?)。>
  3.     library(emmeans)
        library(dplyr)
    
        pigs.lm <- lm(log(conc) ~ source + factor(percent), data = pigs)
        nd <- expand.grid(source = levels(pigs$source), percent = unique(pigs$percent)) %>%
            filter(percent == 9 | source != "fish")
    
        emmeans(pigs.lm, trt.vs.ctrl ~ source + percent, 
            data = nd, covnest = TRUE, cov.reduce = FALSE)
    

感谢您的帮助。

使用include的建议效果很好。如果将来其他人遇到相同的问题,请在此处发布我的代码。

library(emmeans)
library(dplyr)
library(tidyr)

pigs.lm <- lm(log(conc) ~ source + factor(percent), data = pigs)
nd <- expand.grid(source = levels(pigs$source), percent =     unique(pigs$percent)) %>%
    filter(percent == 9 | source != "fish")

ems <- emmeans(pigs.lm, trt.vs.ctrl ~ source + percent, 
    data = nd, covnest = TRUE, cov.reduce = FALSE)

# to identify which levels to exclude - in this case, 
# I only want the low-percent fish to remain as the ref level
aux <- as.data.frame(ems[[1]]) %>%
    mutate(ID = 1:n()) %>%
    filter(!grepl("fish", source) | ID == 1)

emmeans(pigs.lm, trt.vs.ctrl ~ source + percent, 
    data = nd, covnest = TRUE, cov.reduce = FALSE, include = aux$ID)

我正在使用Emmeans与对照组进行自定义比较。如果我只想比较一个因素,则trt.vs.ctrl方法对我来说非常理想,但是当我...

r p-value emmeans
1个回答
0
投票

我对您要完成的目标尚不完全清楚,但我不认为过滤数据是解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.