В R сгенерируйте взвешенную выборку с вероятностью, примененной к нескольким переменным - PullRequest
0 голосов
/ 30 октября 2018

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

V1  V2  V3  prob
30  40  40  0.4
0   5   5   0.2
15  20  30  0.4

Я хочу создать матричную выборку с V1, V2 и V3, которая учитывает одновременное появление определенных значений.

1 Ответ

0 голосов
/ 30 октября 2018

Обычно sample используется для моделирования значений одной случайной величины. При работе, как в вашем случае, со случайным вектором (X, Y, Z) * ​​1002 * зависимых дискретных случайных величин, становится необходимым знать их совместное распределение. Бывает, что в вашем случае это очень просто, так как они «идеально» зависимы. Следуя идее @Rui Barradas, мы можем использовать

df[sample(nrow(df), n, replace = TRUE, prob = df$prob), -ncol(df)]

для генерации n векторов. По закону больших чисел с увеличением n вы будете становиться все ближе и ближе к желаемым 40%, 20% и 40%. Если вам нужны эти точные проценты с небольшим количеством розыгрышей, тогда ваш вопрос не о генерации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...