样本量与置信区间

在现实生活中,如何从一份海量的数据中选择合适的样本数量进行调研反馈,从而反映总体的情况是一个常见的问题。例如,在千万人口的城市进行某项调研如何选择样本;在某些国家的大选活动中,该发放多少问卷才能够反映整体情况;在机器学习模型的精确率抽检过程中,究竟应该选择多少样本数进行抽检,才能够反馈其模型的精确率;这些都是生活和工作中常遇到的问题。

通常来说,在这里会有两种比较常见的情况:
1. 通过置信度(confidence level),置信区间(confidence interval),总体数量(population),来计算样本数(sample size);
2. 通过置信度(confidence level),总体数量(population),样本数量(sample size),比例(percentage),来计算置信区间(confidence interval);

样本数的计算

当一个调研是随机抽样的时候,可以通过统计的方法来确定最小的样本数。一般情况下,样本数可以按照以下简单规则来进行选取:

  • 最小样本数是 100:对于一份抽样数据而言,至少要抽取 100 个样本来进行评估;而当全体总数小于 100 的时候,只需要全部抽取出来进行调研和分析即可;
  • 一个合适的最大样本数(maximum sample size)可以用以下公式简单计算:\min(1000, 0.1 * N), 其中 N 表示总量;例如,当 N = 5000 时,最大样本数可以选择 500;而当 N = 200000 时,最大样本数只需要选择 1000 即可;
  • 在调研和抽样的时候,可以在最小样本数和最大样本数之间选择一个合适的值;
    (1)选择一个靠近最小样本数的值是因为:有限的资金和时间;只需要一个粗糙的估计;不需要对总体做类别分析且只需要一个整体的结论即可;大家对这个结论并不会有过多的质疑;这个分析结果并不会过多影响下游的分析决策。
    (2)选择一个靠近最大样本数的值是因为:充足的资金和时间;想要得到发一个精确的估计;有可能会对总体进行分组分析;大家会对这个结论有质疑;这个分析结果会导致下游的很多重要决策。
  • 对于样本数的选择,可以简单的参考下表:
总量总量总量总量总量总量
误差范围(Margin of Error)> 5000500025001000500200
\pm 10\%969493888165
\pm 7.5\%17116516014612792
\pm 5\%384357333278217132
\pm 3\%1067880748516341169
置信度 95% 的前提下
  • 从表格中可以看出,如果只需要保证置信度在 95%,当总量很大的时候,其实只需要抽取 1067 个样本进行分析即可。
  • 在线计算样本量的网站有两个,分别是:
    (1)https://www.surveysystem.com/sscalc.htm
    (2)https://www.calculator.net/sample-size-calculator.html?
置信度 95%
置信度 99%

通过以上的案例可以看出,在设置了置信度(Confidence Level),置信区间(Confidence Interval),总量(Population)之后,就可以得到一个样本数量(Sample Size Needed)。其中,置信区间也就是误差范围(Margin of Error)。

例如,如果置信度是 95%,置信区间(confidence interval)= 4,在样本中有 47% 的比例选择了某个选项,那么就表示 95% 的置信度,在所有数据中有(47%-4%, 47%+4%)=(43%,51%) 的比例选择了某个选项。95% 置信度表示这句话正确的概率是 95%,99% 置信度表示这句话正确的概率是 99%。

置信区间的计算

置信区间的计算是由三个因素决定的,分别是:置信度(Confidence Level),样本数量(Sample Size),总量(Population)。一般来说,

  • 置信度:置信度越大,表示置信区间将会越大。相对 99% 的置信度而言,95% 的置信度所产生的置信区间会小;
  • 样本大小:样本越多,越能够反映总体情况,置信区间将会越小;
  • 占比(Percentage):样本中选择某个结果的比例;由于选择 Percentage(p) 和 1-p 所得到的置信区间(Confidence Interval)是一样的,因此:
    (1)Percentage(p) 越接近 0 或者 1,则置信区间越小;
    (2)Percentage(p) 越接近 50%,则置信区间越大,因为此时的不确定性最高;
置信区间的计算 1
置信区间的计算 2
置信区间的计算 3
置信区间的计算 4

统计理论分析

假设 N 表示总体的数量,X 表示总体中满足某个选项的数量,n 表示抽样的数量,x 表示样本中满足某个选项的数量。令 P=X/N, \hat{p}=x/n.

定理. 一个总体满足某个选项的比例可以通过样本中满足某个选项的比例来进行估计。如果置信度是 C,且正态分布的概率用 Prob 表示,那么

Prob\bigg(-z^{*}<\frac{\hat{p}-P}{\sqrt{\frac{\hat{p}(1-\hat{p})}{n}}}<z^{*}\bigg)=C,

换言之,\hat{p}-z^{*}\sqrt{\frac{\hat{p}(1-\hat{p})}{n}}<P<\hat{p}+\sqrt{\frac{\hat{p}(1-\hat{p})}{n}}. 其中 z^{*}C 的关系如下图所示。其置信区间是 w = z^{*}\sqrt{\frac{\hat{p}(1-\hat{p})}{n}}.

正态分布

由于置信区间是 z^{*}\cdot\sqrt{\frac{\hat{p}(1-\hat{p})}{n}}, 所以,n=(z^{*}/w)^{2}\cdot\hat{p}(1-\hat{p})\leq (z^{*}/w)^{2}/4. 最大样本数可以选择为 (z^{*}/w)^{2}/4.

同时,根据正态分布的定义可以得到:

\frac{1}{\sqrt{2\pi}}\int_{-z^{*}}^{z^{*}}e^{-t^{2}/2}dt=C,

从而,

C=\frac{2}{\sqrt{\pi}}\int_{0}^{z^{*}/\sqrt{2}}e^{-t^{2}}dt=erf(z^{*}/\sqrt{2}),

其中,erf(z)=\frac{2}{\sqrt{\pi}}\int_{0}^{z}e^{-t^{2}}dt.

因此,最大样本数是 (z^{*}/w)^{2}/4=\bigg(\frac{erf^{-1}(C)}{\sqrt{2}w}\bigg)^{2}, w 表示置信区间,C 表示置信度。

置信区间的公式是:z^{*}\cdot\sqrt{\frac{\hat{p}(1-\hat{p})}{n}}=\sqrt{2}\cdot erf^{-1}(C)\cdot\sqrt{\frac{\hat{p}(1-\hat{p})}{n}}.

从 WolframAlpha 可以得到:erf^{-1}(0.95)=1.38590, erf^{-1}(0.99)=1.82139.

  • 如果置信区间是 3\%, 置信度 C=95\% 的时候,最大样本数是:(1.38590 / (\sqrt{2} * 0.03))^2=1067;
  • 如果置信区间是 3\%, 置信度 C=99\% 的时候,最大样本数是:(1.82139 / (\sqrt{2} * 0.03))^2=1843;
  • 如果置信度是 C=95\%, \hat{p}=50\%, n=1000, 置信区间是 \sqrt{2} * 1.38590 * \sqrt{0.5 * 0.5 /1000}=0.031=3.1\%;
  • 如果置信度是 C=99\%, \hat{p}=50\%, n=1000, 置信区间是 \sqrt{2} * 1.82139* \sqrt{0.5 * 0.5 /1000}=0.0407=4.1\%.

参考资料

  1. 在线计算工具(1):https://www.surveysystem.com/sscalc.htm
  2. 在线计算工具(2):https://www.calculator.net/sample-size-calculator.html
  3. http://www.tools4dev.org/resources/how-to-choose-a-sample-size/
  4. https://www.chedong.com/blog/archives/001462.html
  5. https://www.afenxi.com/23249.html
  6. https://www.zhihu.com/question/23017185
  7. https://blog.csdn.net/liangzuojiayi/article/details/78044780
  8. :Sample Size Determination: https://en.wikipedia.org/wiki/Sample_size_determination#Estimation_of_a_proportion
  9. Population proportion: https://en.wikipedia.org/wiki/Population_proportion#cite_note-:0-4
  10. 张伟平:中文讲义:http://staff.ustc.edu.cn/~zwp/teach/Math-Stat/mathstat.htm
  11. http://staff.ustc.edu.cn/~zwp/teach/Prob-Stat/probstat.htm