Я не знаю, как построить график распределения вероятностей результатов некоторого кода в R

#r #statistics #probability-distribution

#r #Статистика #вероятность-распределение

Вопрос:

Я создал программу, которая имитирует бросание кости 100 раз. Мне нужна помощь в суммировании результатов отдельных кубиков, а также в том, как построить график распределения вероятностей исходов.

Это код, который у меня есть:

 sample(1:6, size=100, replace = TRUE)
 

Ответ №1:

Пока что вы сделали выборку бросков кубиков (обратите внимание, что я добавил строку, задающую начальное значение для воспроизводимости:

 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 
 

Тогда мы можем легко построить его; для построения PMFS мой предпочтительный тип графика "h" :

 y <- prop.table(table(x))
plot(y, type = "h", xlab = "Dice Result", ylab = "Probability")
 

введите описание изображения здесь

Обновление: взвешенный кубик

sample() может легко использоваться для имитации взвешенной матрицы, используя ее prob аргумент. От help("sample") :

Пример использования (x, size, replace = FALSE, prob = NULL)

Аргументы
[некоторое содержимое опущено]
определяют вектор весов вероятности для получения элементов выбираемого вектора.

Итак, мы просто добавляем ваши предпочтительные веса к 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")
 

введите описание изображения здесь

Комментарии:

1. Знаете ли вы, как имитировать загруженный кубик? Тот, где вероятность броска a: 1 равна 4/37, 2/3/4/5 равно 6/37, 6 равно 9/37?

2. @user11301096 Конечно — смотрите отредактированный ответ! Похоже, вы новичок в R. Хотя это не поможет вам найти нужные вам функции, вам нужно действительно хорошо ознакомиться с help() функцией (или ? что-то подобное), потому что это поможет вам узнать о функциях, о которых вы слышали. Здесь ключевым моментом help("sample") был бы просмотр: он рассказывает вам об prob аргументе, который вы используете для взвешивания вероятности.