【问题标题】:Finding distribution of sample mean by central limit theorem用中心极限定理求样本均值分布
【发布时间】:2014-10-20 02:40:20
【问题描述】:

让 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的分布。

【问题讨论】:

    标签: r


    【解决方案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
    

    【讨论】:

      【解决方案2】:
                  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) 
      

      【讨论】:

        【解决方案3】:

        只是稍微扩展一下。

        中心极限定理表明均值的分布是渐近的N[mu, sd/sqrt(n)]。其中musd 是基础分布的均值和标准差,n 是用于计算均值的样本量。因此,在下面的示例中,data 是从N[37,45] 抽取的大小为 2500 的数据集,任意分割为 100 组,每组 25 个。means 是每个组均值的数据集。请注意,数据和均值都是(大约)正态分布的,但均值的分布要紧密得多(下 sigma)。从 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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-10-27
          • 2011-07-07
          • 1970-01-01
          • 2015-05-09
          • 2017-03-11
          • 2012-02-21
          • 2014-02-15
          • 1970-01-01
          相关资源
          最近更新 更多