R语言学习笔记3-生成二项分布随机数
伯努利试验
首先简单介绍一下伯努利试验(Bernoulli experiment)。
伯努利试验,是指在同样的条件下,重复地,相互独立地,进行的一种随机试验,该随机试验只有两种结果:发生或不发生。
假设:该项试验重复独立地进行了N次,则称为N重伯努利试验,N即为该试验的SIZE。
比如,连续抛N次硬币,每次抛硬币相互独立互不影响,结果只能是“正面”或者“反面”,得到正面的概率为0.5,每次抛硬币的试验即为伯努利试验。
二项分布
多次伯努利试验的分布概率,即为二项分布;换句话说,当二项分布的试验次数为1时,符合伯努利试验。
生成二项分布随机数
在R语言中,生成二项分布随机数的函数是:rbinom()
基本语法:rbinom(n,size,prob),n表示生成的随机数的数量,size表示进行伯努利试验的次数,prob表示一次伯努利试验成功的概率。
仍以抛硬币为例,总共抛硬币100次(size=100),得到正面记为成功,即每次成功概率为0.5(prob=0.5),那么,n的含义是什么呢?现在,我们让计算机模拟30个随机数,看看这30个数字有何特点,据此来解释n的含义。
在本例中,n=30,size=100,prob=0.5,在R中输入:
rbinom(30,100,.5) # 小数点前的0可以省略
[1] 52 39 45 53 51 53 52 43 50 51 52 48 56 47 43 53 47 47 52 53 49 43 51 50 44 57 54 59 43 48
仔细观察就会发现,生成的30个随机数都在50左右徘徊,这是为什么呢?因为每次伯努利试验(抛硬币)的成功概率是0.5,那么在理想状态下,模拟100次伯努利试验(抛100次硬币),成功的次数应为50次,由此可见,在函数rbinom()中,n的含义是伯努利试验成功的次数。
可以想见,如果模拟伯努利试验的次数减少,n值的偏差将会变大,比如:
> rbinom(10,10,.5)
[1] 5 6 6 4 4 4 3 5 6 8
在本例中,单次试验的成功概率依旧为0.5,但是只模拟10次试验,并生成10个随机数,最大的数为8,远远偏离预期的5。
注意:在rbinom()函数中,n可以大于size,比如rbinom(100,10,.5)。