R中的Sample()函数 [英] sample() function in R

查看:0
本文介绍了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()函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆