Функция stat_cor неправильно вычисляет значение корреляции p

Я использую stat_cor с ggplot, чтобы добавить значения r и p к точечной диаграмме. Неправильно рассчитывается значение p на основе количества наблюдений в длинном формате данных кадра. Это сбивает с толку насчет организации в длинном формате, и значение p соответствует тому, было ли столько объектов, сколько было наблюдений. Переменная id субъекта правильно распознается и понимается как фактор, когда я проверяю структуру фрейма данных. Кто-нибудь знает, как это исправить?

Длинный пример

  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)

наличие plot + scat_cor(method = "pearson"...) должно вычислить значение Пирсона для x и y (эта страница имеет правильную формулу: http://www.stat.wmich.edu/s216/book/node122.html) он вычисляет значение p, как если бы размер выборки n был числом наблюдений в длинном кадре df.

1 ответ

Я "исправил" эту проблему, изменив структуру данных в ширину. Я надеялся и представляю, что все еще есть исправление, которое может дать вам правильные значения, оставаясь в длинном формате, так как большая часть R предпочитает длинный формат.

Другие вопросы по тегам