微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我有一个随机变量的概率分布,我如何根据这个分布生成一组随机的 10 个数字?

如何解决我有一个随机变量的概率分布,我如何根据这个分布生成一组随机的 10 个数字?

python中有一个答案: Generate random variables from a probability distribution

似乎他们正在使用一些内置的分布函数(即 exp)。我已经查看了 R 中的随机生成函数,如 runif,但似乎我需要自己创建具有这种概率分布的函数,因为我拥有的概率分布不是标准的。

例如分布:

distribution = data.table(x = c(1,2,3,4,5,6,7,8,9,10),p = c(0.1,0.1,0.2,0.05,0.05))
> distribution
     x    p
 1:  1 0.10
 2:  2 0.10
 3:  3 0.20
 4:  4 0.05
 5:  5 0.05
 6:  6 0.10
 7:  7 0.10
 8:  8 0.20
 9:  9 0.05
10: 10 0.05

解决方法

我会这样做:

sample(distribution$x,size = n,replace = TRUE,prob = distribution$p)

其中 size = n 定义要采样的元素数量。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。