跳转至

5.7   样本量与有效样本量

小率想做一份城市月薪调查。他说:我希望误差不超过 500 元。均哥没有立刻给数字,而是先问:你愿意为这个精度付多少钱?因为样本量公式背后,其实是一条预算曲线。

图 5.7.0 调查预算和样本量

想更准,要多抽多少人

样本量不是越大越好,而是在精度、成本、时间和抽样设计之间做权衡。

5.7.1   从允许误差反推 n

如果要估计总体均值,希望 95% 置信水平下误差不超过 \(E\),常用近似公式是:

\[ n \ge \left(\frac{z_{\alpha/2}\sigma}{E}\right)^2 \]

95% 置信水平常用 \(z_{\alpha/2}=1.96\)

公式里最刺眼的是 $E^2$。它是不是说明误差减半,样本量变四倍?
对,这就是样本量最贵的地方。

图 5.7.1 样本量与允许误差

图 5.7.1   允许误差越小,所需样本量按平方速度上升。

5.7.2   估计比例时的样本量

估计满意比例、支持率、转化率时,常用:

\[ n \ge \frac{z_{\alpha/2}^2 p(1-p)}{E^2} \]

如果事先不知道 \(p\),最保守取 \(p=0.5\),因为此时 \(p(1-p)\) 最大。

比例样本量的保守算法

95% 置信水平、误差不超过 ±3%,且不知道真实比例时:
\(n \ge 1.96^2 \times 0.5 \times 0.5 / 0.03^2 \approx 1068\)

5.7.3   有效样本量:名义 n 不等于信息量

如果使用整群抽样,同一群内个体很相似,名义样本量可能高估真实信息量。常用设计效应(Design Effect)调整:

\[ n_{\text{eff}}=\frac{n}{\mathrm{deff}} \]

其中 \(n_{\text{eff}}\) 是有效样本量。

我明明调查了 1000 人,为什么有效样本量可能只有 600?
因为这 1000 人如果来自少数几个相似群体,提供的新信息没有 1000 个独立人那么多。

5.7.4   有限总体修正:总体很小时可以少抽

当总体 \(N\) 不大,且抽样不放回时,可以用有限总体修正(Finite Population Correction, FPC):

\[ n=\frac{n_0}{1+n_0/N} \]

这里 \(n_0\) 是按无限总体算出的样本量。

什么时候 FPC 有用

如果总体有 80 万人,FPC 几乎没影响;如果总体只有 800 人,FPC 可能让所需样本量明显下降。

5.7.5   一段代码算三个常用 n

import math

def n_for_mean(sigma, error, z=1.96):
    return math.ceil((z * sigma / error) ** 2)

def n_for_proportion(error, p=0.5, z=1.96):
    return math.ceil((z ** 2) * p * (1 - p) / error ** 2)

def fpc_adjust(n0, N):
    return math.ceil(n0 / (1 + n0 / N))

print("估计月薪,σ=6000,误差±500:", n_for_mean(6000, 500))
print("估计满意比例,误差±3%:", n_for_proportion(0.03))
print("总体 N=800 时的 FPC 修正:", fpc_adjust(683, 800))

5.7.6   样本量不是万能药

样本量的边界

样本量公式默认抽样设计合理、测量误差可控、回应机制不严重偏。若问卷问题诱导、样本框漏人或无回应严重,增加样本量只会更精确地重复错误。

小率的笔记本

  • 均值样本量:\(n \ge (z\sigma/E)^2\)
  • 比例样本量:\(n \ge z^2p(1-p)/E^2\)
  • 误差减半,样本量约变四倍。
  • 整群抽样要看有效样本量,有限总体可用 FPC 修正。