还记得我们在系列2开始的时候为大家介绍的几个特别的函数吗,rnorm(),dnorm()…?
在这个部分,我们会给大家介绍一下概率与分布的统计知识以及R中包含的关于随机抽样和处理理论分布的函数,这个部分的内容同时也是下一个系列描述性统计和图表的基础。
1、随机抽样
我们对随机抽样的理解大多是在箱子里摸球,因为我们在数学课本上学习概率的例子就是摸球的例子,还有一个常用的例子就是掷色子(骰子)。在R中你可以用sample()函数模拟这个情况。如果你想从1到6中随机取3个不重复的数字,你可以写:
> sample(1:6,3)
[1] 2 4 6
#Tips:sample()函数第一个参数是被抽取的值向量,第二个参数是抽样次数,就是样本量大小。每次使用相同的参数,结果也是不同的,因为每次抽样都是随机的。这里还需要注意一点的是,sample()函数默认是无放回的抽样方式,也就是说,样本不会包含同一个数字两次,并且样本量不能超过被抽取的值向量长度。如果想有放回的抽样,那么需要加上参数replace=TRUE。
> sample(1:6,7)
Error in http://sample.int(length(x), size, replace, prob) :
‘replace = FALSE’,因此不能取比总体要大的样本
> sample(1:6,7,replace=T)
[1] 5 4 3 5 2 3 4
同时,R可以实现对称抽样和不对称抽样,比如,多次投硬币是有放回的抽样,实际中我们通常认为正反两面的概率是一致的,都是50%。我们可以模拟10次投掷硬币:
> sample(c(“Z”,”F”),10,replace=T)
[1] “Z” “F” “F” “F” “F” “F” “F” “Z” “Z” “F”
公平地掷硬币的话,出现正反面的概率应该是一样的,但是随机事件的思想告诉我们实际结果不一定就像我们预想的对称情形。它同样适用于其他情形,比如说一种外科手术的成功率是90%,我们可以通过sample()函数中prob参数来模拟这种不相等概率的数据:
>sample(c(“success”,”failure”),10,replace=T,prob=c(0.9,0.1))
[1] “success” “failure” “failure” “success” “success” “success” “failure”
[8] “success” “success” ”