Измерение «разброса» значений между группами наблюдений - PullRequest
0 голосов
/ 19 января 2020

это, вероятно, довольно элементарный статистический вопрос, для чего-то, что я буду реализовывать в R.

Я хочу измерить «разброс» баллов по тестам, как между отдельными лицами, так и между группами (например, чтобы увидеть, какие тестовый вопрос имеет наибольшее несоответствие результатов). Я знаю, что могу использовать стандартные отклонения для сравнения разброса по отдельным лицам, но как насчет групп? Лучше всего сначала взять средний балл для каждой группы, а затем измерить стандартное отклонение этих средних?

Чтобы привести конкретный пример:

Скажем, я собираю результаты тестов для 9 человек. (p1-p9), каждая из которых принадлежит одной из трех групп (g1-g3). Будут собраны три теста (метрика1, метрика2 и метрика3).

Вот некоторые примеры данных:

library(tidyverse)
my_df <- data.frame(stringsAsFactors=FALSE,
      person = c("p1", "p2", "p3", "p4", "p5",
                 "p6", "p7", "p8", "p9"),
       group = c("g1", "g1", "g1", "g2", "g2", "g2",
                 "g3", "g3", "g3"),
      metric1 = c(34, 43, 9, 70, 95, 81, 70, 33, 49),
      metric2 = c(38, 83, 81, 53, 20, 41, 89, 65, 41),
      metric3 = c(39, 87, 76, 88, 35, 85, 63, 29, 54)
)

Для отдельных лиц я знаю, что могу измерить разброс оценок с использованием стандартного отклонения; например:

my_df %>% summarise(
  sd1 = sd(metric1), 
  sd2 = sd(metric2), 
  sd3 = sd(metric3)
  )

Как лучше всего измерить разброс между группами? Будет ли сначала брать среднее значение по каждой группе, а затем измерять стандартное отклонение этих средних? Интуитивно это имеет смысл, но мне интересно, смогу ли я каким-то образом «потерять информацию» на уровне отдельных наблюдений, сначала взяв средние значения по группе.

Благодарен за любые ваши взгляды.

1 Ответ

0 голосов
/ 19 января 2020

Мы можем использовать summarise_at

library(dplyr)
my_df %>% 
    summarise_at(vars(starts_with('metric')), sd)

Если нам нужно сделать это 'group'

my_df %>%
   group_by(group) %>%
   summarise_at(vars(starts_with('metric')), sd)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...