-1

我创建了一个模拟掷骰子 100 次的程序。我需要帮助来添加单个骰子的结果以及如何绘制结果的概率分布。

这是我的代码:

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

1 回答 1

0

到目前为止,您所做的是对掷骰子进行采样(请注意,我添加了一行设置种子以实现可重复性:

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,大小,replace = 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")

在此处输入图像描述

于 2019-04-18T10:51:06.833 回答