简友广场散文

R语言抽样并验证总体分别为正态分布、均匀分布、指数分布时样本均值

2021-03-04  本文已影响0人  Cache_wood

@[toc]

【练习一】对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)
在这里插入图片描述
上一篇下一篇

猜你喜欢

热点阅读