文章目录
【练习一】对example1_1.Rdata中数据,利用R软件,完成分别有放回和无放回抽取10名学生的姓名组成一个随机样本,输出学生姓名分别有放回和无放回抽取10名学生的姓名和分数组成一个随机样本,同时输出学生姓名和分数。
data<-read.csv("E:\\Rcode\\example.csv")
print(data)
sample(data$Name.Grade,10,replace=T)
sample(data$Name.Grade,10,replace=F)
# replace是T代表返回抽样
# replace是F代表不返回抽样
Name.Grade
1 张松,77
2 王翔,86
3 田雨,60
4 徐丽娜,69
5 张志杰,74
6 赵颖,44
7 王智强,66
8 宋媛,73
9 袁方,76
10 张建国,85
11 李佳,59
12 马凤良,67
13 陈风,74
14 杨波,77
15 孙学伟,86
16 林丽,57
17 谭英健,66
18 欧阳飞,74
19 吴迪,77
20 周祥,85
21 刘晓军,79
22 李国胜,92
23 蒋亚迪,65
24 崔勇,73
25 黄向春,76
26 姜洋,75
27 隗佳,82
28 王浩波,96
29 于静,80
30 李华,70
31 高云,75
32 金梦迪,78
33 徐海涛,90
34 张洋,63
35 李东茗,72
36 王倩,75
37 李宗洋,80
38 刘皓天,92
39 刘文涛,62
40 卢阳,61
41 马强,70
42 孟子铎,75
43 潘凯,78
44 邱爽,92
45 邵海阳,61
46 孙梦婷,71
47 唐健,75
48 尹韩,63
49 王迪,73
50 王思思,93
> sample(data$Name.Grade,10,replace=T)
[1] 张志杰,74 卢阳,61 孙学伟,86 刘皓天,92
[5] 张松,77 金梦迪,78 张建国,85 马凤良,67
[9] 蒋亚迪,65 张洋,63
50 Levels: 陈风,74 崔勇,73 ... 周祥,85
> sample(data$Name.Grade,10,replace=F)
[1] 李东茗,72 于静,80 尹韩,63 王翔,86
[5] 马凤良,67 邵海阳,61 张志杰,74 隗佳,82
[9] 蒋亚迪,65 徐丽娜,69
50 Levels: 陈风,74 崔勇,73 ... 周祥,85
>
练习二:利用R软件验证总体分别为正态分布、均匀分布、指数分布时样本均值的抽样分布
正态分布
# case1:X~N(U,Q)
normfun<-function(n=100,K=1000,mu0=0,sigma0=1){
sampmeans<-NULL
for(k in 1:K){
samples<-rnorm(n,mean=mu0,sd=sigma0)
sampmeans<-c(sampmeans,mean(samples))
}
list(n=n,mu=mu0,sigma=sigma0,sampmeans=sampmeans)
}
norm100<-normfun(n=100)
norm200<-normfun(n=200)
norm400<-normfun(n=400)
norm800<-normfun(n=800)
par(mfrow=c(2,2))
hist(norm100$sampmeans,probability=T,xlab='',main='n=100')
curve(dnorm(x,mean=0,sd=sqrt(1/100)),col=2,lwd=2,add=T)
hist(norm200$sampmeans,probability=T,xlab='',main='n=200')
curve(dnorm(x,mean=0,sd=sqrt(1/200)),col=2,lwd=2,add=T)
hist(norm400$sampmeans,probability=T,xlab='',main='n=400')
curve(dnorm(x,mean=0,sd=sqrt(1/400)),col=2,lwd=2,add=T)
hist(norm800$sampmeans,probability=T,xlab='',main='n=800')
curve(dnorm(x,mean=0,sd=sqrt(1/800)),col=2,lwd=2,add=T)
均匀分布
# case2:X~unif(0,2*sqrt(3))
uniffun<-function(n=100,K=1000,a=0,b=1){
sampmeans<-NULL
for(k in 1:K){
samples<-runif(n,a,b)
sampmeans<-c(sampmeans,mean(samples))
}
list(n=n,a=a,b=b,sampmeans=sampmeans)
}
unif100<-uniffun(n=100,b=2*sqrt(3))
unif200<-uniffun(n=200,b=2*sqrt(3))
unif400<-uniffun(n=400,b=2*sqrt(3))
unif800<-uniffun(n=800,b=2*sqrt(3))
par(mfrow=c(2,2))
hist(unif100$sampmeans,probability=T,xlab='',main='n=100')
curve(dnorm(x,mean=sqrt(3),sd=sqrt(1/100)),col=2,lwd=2,add=T)
hist(unif200$sampmeans,probability=T,xlab='',main='n=200')
curve(dnorm(x,mean=sqrt(3),sd=sqrt(1/200)),col=2,lwd=2,add=T)
hist(unif400$sampmeans,probability=T,xlab='',main='n=400')
curve(dnorm(x,mean=sqrt(3),sd=sqrt(1/400)),col=2,lwd=2,add=T)
hist(unif800$sampmeans,probability=T,xlab='',main='n=800')
curve(dnorm(x,mean=sqrt(3),sd=sqrt(1/800)),col=2,lwd=2,add=T)
指数分布
# case3:X~Exp(y)
expfun<-function(n=100,K=1000,lam=1){
sampmeans<-NULL
for(k in 1:K){
samples<-rexp(n,rate=lam)
sampmeans<-c(sampmeans,mean(samples))
}
list(n=n,lam=lam,sampmeans=sampmeans)
}
exp100<-expfun(n=100)
exp200<-expfun(n=200)
exp400<-expfun(n=400)
exp800<-expfun(n=800)
par(mfrow=c(2,2))
hist(exp100$sampmeans,probability=T,xlab='',main='n=100')
curve(dnorm(x,mean=1,sd=sqrt(1/100)),col=2,lwd=2,add=T)
hist(exp200$sampmeans,probability=T,xlab='',main='n=200')
curve(dnorm(x,mean=1,sd=sqrt(1/200)),col=2,lwd=2,add=T)
hist(exp400$sampmeans,probability=T,xlab='',main='n=400')
curve(dnorm(x,mean=1,sd=sqrt(1/400)),col=2,lwd=2,add=T)
hist(exp800$sampmeans,probability=T,xlab='',main='n=800')
curve(dnorm(x,mean=1,sd=sqrt(1/800)),col=2,lwd=2,add=T)