只是稍微扩展一下。
中心极限定理表明均值的分布是渐近的N[mu, sd/sqrt(n)]。其中mu 和sd 是基础分布的均值和标准差,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