本文介绍了R中的Sample()函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的问题很简单,我正在尝试使用sample()模拟来自任何分布的500个抽奖。
以二项分布B(10,0.5)为例。使用R.中的sample()函数
我是这样做的:
draw = 1:500 data = sample(x=draw, size=10, replace=TRUE, prob=rep(0.5, each=500)) 然而,每当我绘制历史图时,它看起来像是随机的,而不是二项分布。我做错了什么? 注意:我知道r中有rbinom()函数可以做到这一点。我正在尝试了解sample()函数是如何工作的。 推荐答案sample(x = c(1,0),size = 10,replace=TRUE,prob = c(0.5,0.5))您可能希望对多次生成的此向量的总和进行直方图,以查看您的二项分布。
draws=c() for(i in 1:500){ draws=c(draws,sum(sample(x = c(1,0),size = 10,replace=TRUE,prob = c(0.5,0.5)))) } hist(draws) 在本例中,sample返回值为1或0(x = c(1,0))的10个(size = 10)样本,每个样本(prob = c(0.5,0.5))的概率相等。replace=TRUE只是表示任一项都可以多次绘制。这些1和0是概率为0.5的10个伯努利试验的结果。二项分布是一系列n个Bernoulli试验中成功次数(1‘s)的概率分布,每个试验的概率为p.So(n=10,p=0.5)。调用Sample一次给出10个平局,求出向量从二项式得出的平局总和。我们从这个二项分布中抽取500个样本,画出一个直方图。更多推荐
R中的Sample()函数
发布评论