Случайная выборка с нормальным распределением по существующим данным в R - PullRequest
0 голосов
/ 11 января 2020

У меня есть большой набор данных людей, которые оценили некоторые элементы (x1: x10). Для каждого человека. рейтинги были объединены в общий балл (в диапазоне 0-5). Теперь я хотел бы нарисовать две подвыборки с одинаковым размером выборки, в которых общая оценка имеет среднее значение c (1,5 и 3) и соответствует нормальному распределению. Частные лица могут быть частью обоих подвыборок.

Предположение, чтобы решить эту проблему, сработает выборка с указанными характеристиками из вектора (общий балл) К сожалению, я обнаружил, что нашел только разные способы рисования случайных выборок из вектора, но не способ отбора образцов вокруг определенного c среднего.

РЕДАКТИРОВАТЬ:

Как указывалось, нормальное распределение было бы невозможным. Вместо того, чтобы искать способ выбора биномиального распределения (непосредственно из данных, без обхода создания аналогичного распределения и сопоставления).

1 Ответ

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

Нельзя нормально распределять данные в дискретном масштабе с жесткими ограничениями. Выборка, полученная из нормального распределения со средним значением от 0 до 5, будет симметричной относительно среднего значения, будет принимать не непрерывные, а дискретные значения и будет иметь ненулевую вероятность содержать значения меньше нуля и больше 5.

Вы хотите, чтобы ваша выборка содержала дискретные значения от нуля до пяти и имела центральную тенденцию к среднему значению. Чтобы эмулировать баллы с определенным средним значением, вам необходимо произвести выборку из биномиального распределения , используя rbinom.

get_n_samples_averaging_m <- function(n, m)
{
  rbinom(n, 5, m/5)
}

Теперь вы можете сделать

samp <- get_n_samples_averaging_m(40, 1.5)
print(samp)
# [1] 1 3 2 1 3 2 2 1 1 1 1 2 0 3 0 0 2 2 2 3 1 1 1 1 1 2 1 2 0 1 4 2 0 2 1 3 2 0 2 1
mean(samp)
# [1] 1.5
...