#r #probability
#r #вероятность
Вопрос:
У меня вопрос — как сгенерировать 100 раз вектор из 3 случайных чисел (x1, x2, x3) от 1 до 10, чтобы я мог найти эмпирическую вероятность x1 x2gt;2*x3? Я знаю, как сгенерировать 3 случайных числа от 1 до 10 с выборкой(1:10, 3), но как это сделать n раз?
Заранее спасибо
Комментарии:
1. Видеть
replicate
.
Ответ №1:
Повторять случайные розыгрыши с replicate
помощью (здесь показано 10 повторов)очень просто.:
reps lt;- replicate(10, sample(1:10, 3)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 9 1 6 8 3 1 10 7 1 2 [2,] 8 9 10 2 4 7 5 3 5 5 [3,] 1 8 4 6 7 2 7 5 3 9
Эмпирическую вероятность вашего неравенства можно рассчитать:
set.seed(1222) reps lt;- replicate(100, sample(1:10, 3)) prob lt;- mean(reps[1, ] reps[2, ] gt; reps[3, ] * 2) [1] 0.39
Просто для полноты, поскольку существует только 1000 возможных комбинаций x1, x2 и x3, мы можем сгенерировать все из них и вычислить точную вероятность:
all.probs lt;- expand.grid(1:10, 1:10, (1:10) * 2) prob lt;- mean(all.probs[,1] all.probs[,2] gt; all.probs[,3]) [1] 0.475
Комментарии:
1. Большое спасибо!