2016-09-09 6 views
2

Я знаю, что это, вероятно, элементарно, но у меня, похоже, есть ментальный блок. Предположим, вы хотите рассчитать вероятность броска 4, 5 или 6 на рулоне одного штампа. В R это достаточно легко:R, используйте биномиальное распределение с более чем двумя возможностями

sum(1/6, 1/6, 1/6) 

Это дает правильный ответ. Тем не менее, у меня в глубине души (где, возможно, это должно остаться), что я должен использовать биномиальное распределение для этого. Я пробовал различные комбинации аргументов для pbinom и dbinom, но я не могу получить правильный ответ.

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

Вопрос: Как я могу использовать pbinom() или dbinom() для вычисления вероятности бросания 4, 5 или 6 с одним рулоном матрицы? Я знаком с пакетами prob и dices, но я действительно хочу использовать один из встроенных дистрибутивов.

Спасибо.

+1

Это, вероятно, лучший вопрос для сайта статистики [статистики. себе]. Функции '* binom' ничего не знают о правилах броска костей. Вам нужно перевести события реального мира, которые вы пытаетесь предсказать на вероятностях. Нет ничего, что 'pbinom' добавляет в микс. Вы знаете, что есть 6 возможных результатов, три из которых являются «успехом», поэтому ваша вероятность успеха равна 3/6 = 1/2. Единственной функцией, которая помогает, является разделение. – MrFlick

+1

проверить 'rmultinom' и' dmultinom'. Я думаю, этот вопрос подходит для этого сайта. – Alex

ответ

3

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

dmultinom(c(0, 0, 0, 1, 0, 0), size = 1, prob = rep(1/6, 6)) 
# [1] 0.1666667 

и вероятность прокатки 4, 5, или 6 является

X <- cbind(matrix(rep(0, 9), nc = 3), diag(1, 3)) 
X 
#  [,1] [,2] [,3] [,4] [,5] [,6] 
# [1,] 0 0 0 1 0 0 
# [2,] 0 0 0 0 1 0 
# [3,] 0 0 0 0 0 1 
sum(apply(X, MAR = 1, dmultinom, size = 1, prob = rep(1/6, 6))) 
# [1] 0.5