关于抽样的基本概念
从总体中抽取样本的方法有很多种,比较常用的就是简单随机抽样。从容量为N的总体中随机抽取出容量为n的样本,每个样本被抽取到的可能性相等,则抽到的样本是一个容量为n的简单样本。
如果每次抽取的样本不放回到总体中,一直抽取到n为止,则这种抽样称为无放回抽样。
如果每次抽取到一个样本,做记录后,再将样本放回到总体,重复这个过程,直至抽满n个样本为止,则称这种抽样为有放回的抽样。
在R语言中可以使用sample()函数模拟抽样,其语法格式如下:
sample(x, size, replace = FALSE, prob = NULL)
参数的含义如下:
x:为向量,表示抽样的总体,或者是一个正整数,表示样本总体为1~n;
size:为样本容量,即要抽取的样本个数,是一个非负整数;
replace:表示是否为有放回的抽样,是一个逻辑值,默认为FALSE,即默认为无放回抽样;
prob:为权重向量,即x中元素被抽取到的概率,是一个取值0~1的向量,其长度应该与x的长度相同。
例1:从1~20中随机抽取5个数。
sample(1:20, 5)
运行的某一结果如下:
[1] 13 6 5 9 4
上面这个例子,也可以使用下面的形式:
sample(20, 5)
例2:模拟抛硬币游戏,抛10次,看看出现正面H(Heads)和反面T(Tails)的情况。
sample(c("H", "T"), 10, replace=TRUE)
运行的某一结果如下:
[1] "H" "T" "T" "T" "H" "H" "H" "T" "T" "T"
在上面这个例子中,将抛硬币视为有放回的实验,即将参数replace设置为TRUE。
例3:某篮球运动员投篮命中率为70%,模拟10次投篮的命中(S)和未命中(F)情况。
编写R代码如下:
sample(c("S", "F"), 10, replace=TRUE, prob=c(0.7, 0.3))
运行的某一结果如下:
[1] "S" "S" "F" "F" "S" "S" "S" "S" "S" "F"
本部分涉及到的代码及运行结果如下图所示:
新闻热点
疑难解答