假设我有以下数字:
4,3,5,6,5,3,4,2,5,4,3,6,5
我对其中的一些进行采样,比如说,其中 5 个,然后计算 5 个样本的总和。然后我一遍又一遍地重复以获得许多总和,并在直方图中绘制总和的值,由于中心极限定理,这将是高斯的。
但是当他们关注数字时,我只是用一些大数字替换了 4:
4,3,5,6,5,3,10000000,2,5,4,3,6,5
从这些样本中抽取 5 个样本的总和永远不会在直方图中变成高斯分布,而更像是一个拆分,变成两个高斯分布。这是为什么?
假设我有以下数字:
4,3,5,6,5,3,4,2,5,4,3,6,5
我对其中的一些进行采样,比如说,其中 5 个,然后计算 5 个样本的总和。然后我一遍又一遍地重复以获得许多总和,并在直方图中绘制总和的值,由于中心极限定理,这将是高斯的。
但是当他们关注数字时,我只是用一些大数字替换了 4:
4,3,5,6,5,3,10000000,2,5,4,3,6,5
从这些样本中抽取 5 个样本的总和永远不会在直方图中变成高斯分布,而更像是一个拆分,变成两个高斯分布。这是为什么?
让我们准确地回忆一下中心极限定理所说的内容。
如果是独立且同分布的随机变量,具有(共享)均值和标准差,则在分布中收敛到标准正态分布 (*)。
这通常以“非正式”形式使用:
如果和标准差的独立同分布随机变量,则 “分布”收敛到标准正态分布。
由于“极限”分布发生变化,因此没有好的方法可以使 CLT 的这种形式在数学上精确,但它在实践中很有用。
当我们有一个静态的数字列表时
4,3,5,6,5,3,10000000,2,5,4,3,6,5
我们通过从这个列表中随机抽取一个数字进行抽样,为了应用中心极限定理,我们需要确保我们的抽样方案满足这两个独立且同分布的条件。
因此,如果我们在您的方案中使用替换抽样,那么我们应该能够应用中心极限定理。同时,您是对的,如果我们的样本大小为 5,那么我们将看到非常不同的行为,具体取决于在我们的样本中是否选择了非常大的数字。
那么问题是什么?嗯,收敛到正态分布的速度很大程度上取决于我们从中抽样的人口的形状,特别是,如果我们的人口非常偏斜,我们预计需要很长时间才能收敛到正态分布。在我们的示例中就是这种情况,因此我们不应期望大小为 5 的样本足以显示正常结构。
上面我对大小为 5、100 和 1000 的样本重复了您的实验(使用替换抽样)。您可以看到,对于非常大的样本,正常结构是出现的。
(*) 请注意,这里需要一些技术条件,例如有限均值和方差。在我们从列表示例中进行的抽样中,它们很容易被验证为真实。
通常,每个样本的大小应大于,以使 CLT 近似值良好。经验法则是大小为或更大的样本。但是,对于您的第一个示例的人口,是可以的。
pop <- c(4, 3, 5, 6, 5, 3, 4, 2, 5, 4, 3, 6, 5)
N <- 10^5
n <- 5
x <- matrix(sample(pop, size = N*n, replace = TRUE), nrow = N)
x_bar <- rowMeans(x)
hist(x_bar, freq = FALSE, col = "cyan")
f <- function(t) dnorm(t, mean = mean(pop), sd = sd(pop)/sqrt(n))
curve(f, add = TRUE, lwd = 2, col = "red")
在您的第二个示例中,由于人口分布的形状(一方面,它太偏斜了;请阅读下面Guy和Glen_b的样本也无法为您提供一个很好的近似分布使用 CLT 的样本均值。
pop <- c(4, 3, 5, 6, 5, 3, 10000000, 2, 5, 4, 3, 6, 5)
N <- 10^5
n <- 30
x <- matrix(sample(pop, size = N*n, replace = TRUE), nrow = N)
x_bar <- rowMeans(x)
hist(x_bar, freq = FALSE, col = "cyan")
f <- function(t) dnorm(t, mean = mean(pop), sd = sd(pop)/sqrt(n))
curve(f, add = TRUE, lwd = 2, col = "red")
但是,对于这第二个总体,例如大小为的样本是可以的。
pop <- c(4, 3, 5, 6, 5, 3, 10000000, 2, 5, 4, 3, 6, 5)
N <- 10^5
n <- 100
x <- matrix(sample(pop, size = N*n, replace = TRUE), nrow = N)
x_bar <- rowMeans(x)
hist(x_bar, freq = FALSE, col = "cyan")
f <- function(t) dnorm(t, mean = mean(pop), sd = sd(pop)/sqrt(n))
curve(f, add = TRUE, lwd = 2, col = "red")
我只是想解释一下,使用复杂的累积量生成函数,为什么每个人都把这归咎于偏斜。
让我们把你抽样的随机变量写成,其中是平均值,是标准差,所以有意思和方差. 的累积量生成函数是. 这里表示偏斜; 我们可以用偏斜来写原始变量的,即。.
如果我们将总和除以样品的分布, 结果有 cgf
简短的回答是,您没有足够大的样本来应用中心极限定理。