用中心极限定理求样本均值分布

时间:2013-11-30 22:15:11

标签: r

让X1,...,X25为正态分布的随机样本,均值= 37,sd = 45。 设xbar为样本均值。 xbar是如何分发的?我必须通过中心极限定理验证它。

同时计算P(xbar> 43.1)

我的尝试

 for(i in 1:1000){
    x=rnorm(25,mean=37,sd=45)
    xbar=mean(x)
    z=(xbar-37)/(45/sqrt(25))   
 }

 z

但我无法找到xbar的分布。

3 个答案:

答案 0 :(得分:1)

更改for循环,然后使用replicate代替

set.seed(1)
X <- replicate(1000, rnorm(25,mean=37,sd=45)) 
X_bar <- colMeans(X)
hist(X_bar) # this is how the distribution of X_bar looks like

enter image description here

答案 1 :(得分:1)

            xbar=c()
            for(i in 1:1000){
              x=rnorm(25,mean=37,sd=45)
              xbar=c(xbar,mean(x)) #save every time the value of xbar

            }
            hist(xbar) #plot the hist of xbar
            #compute the probability to b    e bigger thant 43.1
            prob=which(xbar>43.1)/length(xbar) 

答案 2 :(得分:1)

只是稍微扩展一下。

中心极限定理表明均值的分布是渐近N[mu, sd/sqrt(n)]。其中musd是基础分布的均值和标准差,n是计算均值时使用的样本大小。因此,在下面的示例中,data是从N[37,45]绘制的大小为2500的数据集,任意分割为100组25个。means是每个组均值的数据集。请注意,数据和均值都是(aprox。)正态分布,但均值分布更紧密(更低的西格玛)。从CLT我们期望sd(mean) ~ sd(data)/sqrt(25),它就是。

data  <- data.frame(sample=rep(1:100,each=25),x = rnorm(2500,mean=37,sd=45))
means <- aggregate(data$x,by=list(data$sample),mean)
#plot histoggrams
par(mfrow=c(1,2))
hist(data$x,main="",sub="Histogram of Underlying Data",xlim=c(-150,200))
hist(means$x,main="",sub="Histogram of Means", xlim=c(-150,200))
mtext("Underlying Data ~ N[37,45]",outer=T,line=-3)
c(sd.data=sd(data$x), sd.means=sd(means$x))
sd.data  sd.means 
43.548570  7.184518 

但CLT的真正力量在于它表明平均值的分布是渐近正常的,无论基础数据的分布如何。此处显示了这一点,其中基础数据是从统一分布中采样的。再次,sd(mean) ~ sd(data)/sqrt(25)

data  <- data.frame(sample=rep(1:100,each=25),x = runif(2500,min=-150, max=200))
means <- aggregate(data$x,by=list(data$sample),mean)
#plot histoggrams
par(mfrow=c(1,2))
hist(data$x,main="",sub="Histogram of Underlying Data",xlim=c(-150,200))
hist(means$x,main="",sub="Histogram of Means", xlim=c(-150,200))
mtext("Underlying Data ~ U[-150,200]",outer=T,line=-3)
c(sd.data=sd(data$x), sd.means=sd(means$x))
sd.data sd.means 
99.7800  18.8176