将因子方差分析事后比较的 p 值添加到 ggplot

问题描述

我正在尝试在 R 中进行 3x12 方差分析后从 Tukey HSD 成对比较中可视化主要影响和相互作用。我已经能够使用类似于下面的代码添加第二个(12 级)因素的成对比较. (下面是一个小得多的数据子集,让你们的生活更轻松一些。)

#Data
df <- data.frame(
  ftwo = c("b","a","b","a"),fone=c(1,1,2,2),score=c(1.44337567,0.19409079,0.00000000,0.58227236,-0.97045393,1.19593984,-0.77695466,0.25898489,3.17542648,-0.55277080,-1.57348553,1.20738671,-0.31773335,-0.65756364,-2.32163735,0.33166248,-0.42817442,-0.28867514,-0.13151273,-1.36618661,0.51176632,-1.62706279,0.06043226,1.51080658,-0.28867513,1.18450885,-1.65831240,1.65831239,-0.89293744,-1.17260394,0.09255797,-2.12883336,-1.59709882,0.19963735,-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.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)

Example with main effects of the second factor

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

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

df %>% ggplot() +
  geom_Boxplot(aes(x=ftwo,fill=fone)) +
  stat_pvalue_manual(tukeyfull,y.position = c(4:11),size=2)

Interactions do not map onto plot as desired

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)