Определить вероятность всех результатов прокатки нагруженного d ie дважды в R - PullRequest
0 голосов
/ 18 февраля 2020

новичок в R. У меня есть стандартная 6-сторонняя d ie, загруженная так, что "4" в два раза чаще, чем любая другая грань, поэтому моя случайная переменная будет выглядеть примерно так:

X1 = {[1, 1/7], [2, 1/7], [3, 1/7], [4, 2/7], [5, 1/7], [6, 1/7]}

Я хотел бы найти всю функцию плотности вероятности случайной величины (X2), которая суммирует результат двух бросков (X1 + X1), поэтому на выходе получится X2 = {[2, 1/49] , [3, 1/49], ..., [12, 1/49]}. Вывод может быть кадром данных, таблицей или тем, что вы считаете наиболее подходящим.

Я попытался сделать следующее:

dice <- c(1,2,3,4,5,6)
probs <- c(1/7, 1/7, 1/7, 2/7, 1/7, 1/7) 
c <- expand.grid(probs, probs)
d <- c[,1]*c[,2]
table(d)

Однако это, очевидно, не ie результирующие вероятности их соответствующего результата. Как бы я go сделал это?

1 Ответ

1 голос
/ 18 февраля 2020

Основываясь на том, что вы уже сделали, один из способов продолжить это:

dice <- 1:6
probs <- c(1/7, 1/7, 1/7, 2/7, 1/7, 1/7) 

df <- data.frame(
    val = apply(expand.grid(dice, dice), 1, sum),
    prob = apply(expand.grid(probs, probs), 1, prod)
)
# solution 1: using split()/lapply()
tmp <- split(df$prob, df$val) # check this out!
res <- lapply(tmp, sum)
## solution 3: using aggregate()
res <- aggregate(prob~val, df, sum)
...