Пока что вы сделали пример бросков костей (обратите внимание, я добавил строку, устанавливающую начальное число для воспроизводимости:
set.seed(123)
x <- sample(1:6, size=100, replace = TRUE)
Простая команда «сложить [] результаты отдельных кубиков»: table()
:
table(x)
# x
# 1 2 3 4 5 6
# 17 16 20 14 18 15
Затем, чтобы «построить распределение вероятностей результатов», мы должны сначала получить это распределение; К счастью, R предоставляет удобную функцию prop.table()
, которая работает для такого рода дискретного распределения:
prop.table(table(x))
# x
# 1 2 3 4 5 6
# 0.17 0.16 0.20 0.14 0.18 0.15
Тогда мы можем легко построить это; для построения PMF мой предпочтительный тип графика - "h"
:
y <- prop.table(table(x))
plot(y, type = "h", xlab = "Dice Result", ylab = "Probability")
Обновление: взвешенный кубик
sample()
можно легко использовать для имитации взвешенного штампа, используя аргумент prob
. От help("sample")
:
Использование
образец (x, размер, заменить = FALSE, prob = NULL)
Аргументы
[некоторый контент пропущен]
prob вектор весов вероятности для получения элементов вектора выборки.
Итак, мы просто добавляем ваши предпочтительные веса к аргументу prob
и действуем как обычно (обратите внимание, я также увеличил размер выборки со 100 до 10000):
set.seed(123)
die_weights <- c(4/37, rep(6/37, 4), 9/37)
x <- sample(1:6, size = 10000, replace = TRUE, prob = die_weights)
(y <- prop.table(table(x)))
# x
# 1 2 3 4 5 6
# 0.1021 0.1641 0.1619 0.1691 0.1616 0.2412
plot(y, type = "h", xlab = "Dice Result", ylab = "Probability")