如何解决我有一个随机变量的概率分布,我如何根据这个分布生成一组随机的 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 举报,一经查实,本站将立刻删除。