题目要求
作业内容:在30000个人中抽取100000次,抽样数量依次为20,40,…500,并最后以抽取数量为自变量,概率为因变量作图。
文件下载地址点击这里
考察知识点
- 规则向量的生成
- 如何在向量中添加数据
- mean、sample的使用
- 绘图函数plot的使用
思路
首先读取数据,因为得到的数据是data.frame格式,我们先将其转化为矩阵形式,然后转化为一维向量格式,便于抽取样本。
做一个双重循环,针对每个样本容量,都进行100000次实验,变量sum用来统计符合条件的次数。使用sample函数,指定replace=FALSE表示取出不放回,对取出的数据计算平均值,判断平均值是否在169~170之间,如果满足这个条件sum就加1,最后通过sum与实验次数(100000)的比值计算概率。使用append函数,将计算得到的概率添加在列表good_sample_p中。
使用plot绘图函数,指定xlab和ylab标签,再指定图像类型为点划线,最后使用title函数添加标题
代码
a <- read.csv('heigh_30000.csv')
a <- as.matrix(a)
data <- as.vector(a)
good_sample_p <- c()
for (i in seq(20,500,by=20)){
sum <- 0 # 记录满足条件的个数
for (j in 1:100000){
x <- sample(data,i,replace=FALSE) # 抽取不放回
y <- mean(x,trim=0,na.rm=TRUE) # trim=0不修剪掉排在首尾的部分 ,na.rm=TRUE移除缺省值
if( 169<y && y<170){
sum <- sum+1
}
}
p <- sum/100000 # 计算概率
good_sample_p <- append(good_sample_p,p)
}
# 添加x,y数据,设置x轴,y轴标签,也可以在title函数中放置
plot(seq(20,500,by=20), good_sample_p,type = 'b',xlab = 'Sample size',ylab = 'Good sample probability')
# 添加标题
title('Relationship between Sample size and Good sample probability', col.lab = 2, cex.lab = 2)