用样本均值估计总体均值

机器算法验证 估计 意思是 样本量 样本 人口
2022-03-26 12:10:44

我试图更好地理解如何使用样本均值来估计总体均值。使用 R 语言,假设我有以下人群:

library(dplyr)
set.seed(123)
pop = rnorm(100000,5,5)
i = 1
population = data.frame(i,pop)

这个人口的平均值是:

 mean(population$pop)
[1] 4.985157

我从这个人群中随机抽取(小)样本

sample_1 <- population %>% sample_frac(0.01)
mean(sample_1$pop)

4.875

sample_2 <- population %>% sample_frac(0.01)
mean(sample_2$pop)

4.569

sample_3 <- population %>% sample_frac(0.01)
mean(sample_3$pop)

5.13

我的问题:所有这些样本均值估计值,即使它们非常小 - 都非常接近总体均值!这是采样的工作原理吗?来自 100000 个观测群体的 100 个观测值是否足以对均值进行良好估计?

谢谢!

2个回答

从总体均值和有限方差随机样本,如果 是样本均值,那么X1,X2,,Xnnμσ2X¯n

  • 我们知道样本均值(统计量)是总体均值(参数)的无偏估计量,即E[Xn¯]=μ
  • 通过 SLLN 我们有和 WLLN 我们有,当Xn¯a.s.μXn¯Pμn
  • 通过 CLT,,其中经验法则是样本大小Xn¯μσ/nDN(0,1)n30
  • 我们可以置信区间(1α)%Xn¯±zα/2σn

例如,使用以下R代码片段,我们可以为总体均值构建一个的置信区间:95%

sigma <- 5
n <- length(sample_1$pop)
x_bar <- mean(sample_1$pop)
# 95% CI
c(x_bar - qnorm(0.975)*sigma/sqrt(n), x_bar + qnorm(0.975)*sigma/sqrt(n))
# [1] 4.804931 5.424726

以下动画显示了当样本量变大时采样分布如何变化:

在此处输入图像描述

下一个动画显示了不同样本的置信区间如何变化,如果您长时间重复绘制随机样本(带替换),则总体平均值有的机会落在置信区间。(1α)%(1α)%

在此处输入图像描述

  • 从上面可以看出,由于总体呈正态分布,因此观测值远离总体均值的概率很低(例如,与均值相差超过标准差的 ),这就是为什么即使样本量很小,在样本中选择远离总体均值的总体观测值的概率也非常低,这使样本均值与总体均值足够接近,并且置信区间围绕点估计(样本均值)几乎总是包含总体均值。情况并非如此(通常),特别是对于具有肥尾分布的人群。5%2

下一个动画展示了置信区间的长度如何减小:95%

在此处输入图像描述

如果你有一个样本来自向量中的正常总体, R中的过程将为你提供总体均值的样本如下所示。(无需手动计算。)X1,X2,,Xnxt.test(49.19,50.33)μ,n=20Norm(μ=50,σ=7),

set.seed(2021)
x = rnorm(20, 50, 7)
t.test(x)$conf.int
[1] 49.19194 56.32578
attr(,"conf.level")
[1] 0.95

此过程也适用于测试,但您可以使用$符号来仅显示置信区间。

该置信区间的形式为其中是样本均值,是样本标准差, 从上尾切开概率具有个自由度的学生 t 分布。X¯±ts/n,X¯st0.025n1=19

a = mean(x)           # sample mean
s = sd(x)             # sample standard deviation
t.q = qt(.975, 19)    # quantiles .025 and .975 of T(19)

a; s; qt(.975,19)
[1] 52.75886
[1] 7.621391
[1] 2.093024
a + qt(c(.025,.975), 19)*s/sqrt(20)
[1] 49.19194 56.32578

请注意,(对称)t 分布的适当分位数是而标准正态分布的相同分位数是的 95% 置信区间的分位数不远;两个分位数都舍入到[但是对于 95% 以外的置信水平,这条“30 条规则”并不适用。对于 90% CI,正常分位数为对于,t 分位数为±2.09,±1.96.n30,T(n1)±1.96;2.0.±1.645±1.6;n=30±1.699±1.7.]

qnorm(c(.025,.975))
[1] -1.959964  1.959964

如果出于某种原因,您希望在上面的示例中为提供 90% 或 99% 的置信区间,您也可以使用. 请注意,99% 置信区间是此处给出的三个 CI 中最长的一个(90%、95%、99%)。μt.test

t.test(x, conf.level = .90)$conf.int
[1] 49.81208 55.70564
attr(,"conf.level")
[1] 0.9
t.test(x, conf.level = .99)$conf.int
[1] 47.88327 57.63445
attr(,"conf.level")
[1] 0.99

最后,假设我们不知道数据x的正态分布中采样的,我们想要测试 以下是来自.μ=50,H0:μ=50Ha:μ50.t.test

t.test(x, mu = 50)

         One Sample t-test

data:  x
t = 1.6189, df = 19, p-value = 0.122
alternative hypothesis: 
 true mean is not equal to 50
95 percent confidence interval:
 49.19194 56.32578
sample estimates:
 mean of x 
  52.75886

,所以在 5% 的显着性水平上不会拒绝原假设。 因此,包含在 95% CI 中。0.122>0.05=5%.μ0=50