0

我试图在 R 中的 3x12 ANOVA 之后可视化 Tukey HSD 成对比较的主要影响和交互。我已经能够使用类似于下面的代码添加第二个(12 级)因子的成对比较。(下面是一个小得多的数据子集,让你们的生活更轻松。)

#Data
df <- data.frame(
  ftwo = c("b","a","b","a", "b","a", "b", "a","b","b","a", "a","b","a", "b","a","b","a","b", "b","a","b","a","a","b","b","a","b", "a","a","b","a","b","a", "b","a","a","b","a","a","a","b","b", "a","b", "a","b","a", "b", "a","b","a","b", "a", "b","a","b","a","b","a", "b","b", "a"),
  fone=c(1,1,1,1, 1,2, 1,1, 2,1,1,1, 1, 2,1,1, 2,1,2,2,2, 1,1,1,2,2,2,2, 2,1,2,1,1,1, 1,1,2,2, 2,2,1,2, 2,1,2,1, 1,1,2,2,2,2,1,2,1, 2,2,2,2,2,2,1,2),
  score=c(1.44337567,0.19409079,0.00000000,0.00000000,0.58227236, -0.97045393,1.19593984,-0.77695466,0.25898489,3.17542648,-0.55277080,-1.57348553, 1.20738671, -0.31773335,-0.65756364,0.00000000,0.00000000,-2.32163735,0.33166248,-0.42817442,-0.42817442,-0.28867514, -0.28867514, -0.13151273,-1.36618661, 0.51176632,0.51176632,-0.28867514,-1.62706279, 0.06043226,1.51080658,-0.28867513, 1.18450885,-1.65831240, 1.65831239,-0.89293744,-1.17260394,0.09255797,-2.12883336,0.00000000,-1.59709882,0.19963735,0.00000000,0.00000000,0.00000000, -0.66687291, 0.99818676,-0.19963735,-0.62279381, 1.08720630,-1.02734847,-0.30216132,-0.85634884, -0.67700320,1.44337567,-0.86602540, 0.71115900, -0.88894875,0.42817442,0.42817442,0.62323196,0.26596035,-1.10183574))
df <- df %>% mutate(
  fone = as.factor(fone),
  ftwo = as.factor(ftwo)
)
#Pairwise comparisons
df %>% tukey_hsd(score~fone*ftwo)

#Add to plot
tukey <- df %>% tukey_hsd(score~fone*ftwo) %>% filter(term=="ftwo")

df %>% ggplot() +
  geom_boxplot(aes(x=ftwo,y=score,fill=fone)) +
  stat_pvalue_manual(tukey,label="p.adj",y.position = c(4),size=2)

第二个因素的主效应示例

但是,当尝试以类似方式添加交互时,它们不会正确映射到图上。如果有某种方式我应该改变测试和/或情节以使它们彼此“交谈”,或者如果有更好的方法来解决这个问题,我会很高兴听到它。

tukeyfull <- df %>% tukey_hsd(score~fone*ftwo)

df %>% ggplot() +
  geom_boxplot(aes(x=ftwo,y=score,fill=fone)) +
  stat_pvalue_manual(tukeyfull,label="p.adj",y.position = c(4:11),size=2)

交互不会根据需要映射到绘图上

注意:我知道建议tukeyfull %>% add_xy_position(y="ftwo")在添加测试的 p 值之前执行类似的操作,但是当我尝试运行该示例时出现此错误:Error: Must group by variables found in '.data'. * Column 'fone:ftwo' is not found.

4

0 回答 0