【发布时间】:2011-10-27 12:13:38
【问题描述】:
我想从多项分布中抽样。我会通过使用样本并指定一些概率来做到这一点。 E.g: 我有 3 个类别,我想采样 10 次。
> my_prob = c(0.2, 0.3, 0.5)
> x = sample(c(0:2), 100, replace = T, prob = my_prob)
> head(x)
[1] 2 0 2 1 1 2
我的设置现在只在以下方面有所不同:我想采样很多(例如 1e09)数字。实际上我只对每个类别的频率感兴趣。 所以在上面提到的例子中,这意味着:
> table(x)
x
0 1 2
27 29 44
有人知道如何尽可能高效地计算这个吗?
谢谢, 斯特菲
【问题讨论】:
-
如果可以使用解析公式得到极限内的频率分布,请问为什么要从分布中采样?
-
我担心你正在做一些艰难的事情。您不太可能需要如此大的样本来实现您想要的任何统计意义。即使您想对一个非常长的尾分布进行采样,使用变换函数也会更好地为您服务。谷歌“数字食谱”和类似主题。
标签: r random-sample