stat_cor函数错误地计算了相关p值

时间:2018-08-02 16:50:21

标签: r ggplot2 correlation p-value pearson

我正在将stat_cor与ggplot一起使用,将r和p值添加到散点图中。它基于长格式数据帧中的观察次数错误地计算了p值。它对长格式组织感到困惑,并且p值对应于是否有与观察结果一样多的主题。当我检查数据框的结构时,主题id变量被正确识别并理解为因素。有人知道如何解决这个问题吗?

长df示例

  subject sex condition    x y
1       1   M   control  7.9 1
2       1   M     cond1 12.3 2
3       1   M     cond2 10.7 3
4       2   F   control  6.3 4
5       2   F     cond1 10.6 5
6       2   F     cond2 11.1 6

这是代码

library(ggplot2)
library(ggpubr)
scatter <- ggplot(df, aes(x = x, y =   y)) + 
  geom_point(aes(colour = condition)) +
  geom_smooth(method = "lm") + 
  ggtitle("title") + 
  theme(axis.text=element_text(size=14),
        axis.title=element_text(size=14,face="bold"),
        plot.title = element_text(size = 20, face = "bold"))

scatter + stat_cor(method = "pearson", label.x = -2, label.y = 3)

具有图+ scat_cor(method =“ pearson” ...)应该计算x和y的皮尔森值(此页面的公式正确:http://www.stat.wmich.edu/s216/book/node122.html) 它正在计算p值,就好像样本大小n是长帧df中的观察次数一样。

1 个答案:

答案 0 :(得分:0)

我通过将数据框调整为更宽的范围来“解决”此问题。我希望并且可以想象,还有一个修复程序可以在仍采用长格式的情况下为您提供正确的值,因为大多数R都喜欢长格式。