假设您有一个样本均值,您可能希望知道可以对该均值设置哪些置信区间。通俗地说:“我想要一个区间,我可以 P% 确定它包含真实均值”。(从技术角度来看,请注意,区间要么包含真实均值,要么不包含:置信水平的含义与这种通俗说法略有不同。更多背景信息可以在 NIST 网站上找到)。
区间的公式可以表示为
其中,Ys 是样本均值,s 是样本标准差,N 是样本大小,/α/ 是期望的显著性水平,而 t(α/2,N-1) 是自由度为 N-1 的 Students-t 分布的上临界值。
![]() |
注意 |
---|---|
量 α 是错误拒绝零假设的最大可接受风险。α 值越小,检验的强度越大。 检验的置信水平定义为 1 - α,通常以百分比表示。例如,显著性水平为 0.05,相当于 95% 的置信水平。有关更多信息,请参阅 “什么是置信区间?”,载于 NIST/SEMATECH 统计方法电子手册。 |
![]() |
注意 |
---|---|
通常的 独立同分布 (i.i.d.) 变量和 正态分布 假设当然在此处适用,就像在其他示例中一样。 |
从公式中应该清楚地看到
以下示例代码取自示例程序 students_t_single_sample.cpp。
我们将首先定义一个过程来计算各种置信水平的区间;该过程将以表格形式打印输出这些区间
// Needed includes: #include <boost/math/distributions/students_t.hpp> #include <iostream> #include <iomanip> // Bring everything into global namespace for ease of use: using namespace boost::math; using namespace std; void confidence_limits_on_mean( double Sm, // Sm = Sample Mean. double Sd, // Sd = Sample Standard Deviation. unsigned Sn) // Sn = Sample Size. { using namespace std; using namespace boost::math; // Print out general info: cout << "__________________________________\n" "2-Sided Confidence Limits For Mean\n" "__________________________________\n\n"; cout << setprecision(7); cout << setw(40) << left << "Number of Observations" << "= " << Sn << "\n"; cout << setw(40) << left << "Mean" << "= " << Sm << "\n"; cout << setw(40) << left << "Standard Deviation" << "= " << Sd << "\n";
我们将定义一个显著性/风险水平表,我们将为这些水平计算区间
double alpha[] = { 0.5, 0.25, 0.1, 0.05, 0.01, 0.001, 0.0001, 0.00001 };
请注意,这些是置信度/概率水平的补集:0.5、0.75、0.9 ... 0.99999)。
接下来,我们将声明我们需要的分布对象,请注意 自由度 参数是样本大小减一
students_t dist(Sn - 1);
程序中接下来的大部分内容都是美观打印,因此让我们专注于区间的计算。首先我们需要 t 统计量,使用 分位数 函数和我们的显著性水平计算得出。请注意,由于显著性水平是概率的补集,我们必须将参数包装在对 complement(...) 的调用中
double T = quantile(complement(dist, alpha[i] / 2));
请注意,alpha 除以 2 是因为我们将计算上限和下限:如果我们只对单侧区间感兴趣,那么我们将省略此步骤。
现在为了完成这幅图,我们将通过将 t 统计量乘以标准差并除以样本大小的平方根来获得区间的(单侧)宽度
double w = T * Sd / sqrt(double(Sn));
然后,双侧区间是样本均值加上和减去此宽度。
除了更多美观打印之外,这就完成了该过程。
让我们看一下一些示例输出,首先使用来自 NIST 网站的 热流数据。该数据集由 NIST 的 Bob Zarr 于 1990 年 1 月从热流计校准和稳定性分析中收集。此测试的相应数据图输出可以在 第 3.5.2 节 的 NIST/SEMATECH 统计方法电子手册中找到。
__________________________________ 2-Sided Confidence Limits For Mean __________________________________ Number of Observations = 195 Mean = 9.26146 Standard Deviation = 0.02278881 ___________________________________________________________________ Confidence T Interval Lower Upper Value (%) Value Width Limit Limit ___________________________________________________________________ 50.000 0.676 1.103e-003 9.26036 9.26256 75.000 1.154 1.883e-003 9.25958 9.26334 90.000 1.653 2.697e-003 9.25876 9.26416 95.000 1.972 3.219e-003 9.25824 9.26468 99.000 2.601 4.245e-003 9.25721 9.26571 99.900 3.341 5.453e-003 9.25601 9.26691 99.990 3.973 6.484e-003 9.25498 9.26794 99.999 4.537 7.404e-003 9.25406 9.26886
正如您所看到的,大样本量 (195) 和小标准差 (0.023) 相结合,给出了非常小的区间,实际上我们可以非常确信真实均值为 9.2。
为了比较,下一个示例数据输出取自 P.K.Hou, O. W. Lau & M.C. Wong, Analyst (1983) vol. 108, p 64. 以及 Statistics for Analytical Chemistry, 3rd ed. (1994), pp 54-55 J. C. Miller and J. N. Miller, Ellis Horwood ISBN 0 13 0309907. 这些值来自通过冷原子蒸气吸收法测定汞。
__________________________________ 2-Sided Confidence Limits For Mean __________________________________ Number of Observations = 3 Mean = 37.8000000 Standard Deviation = 0.9643650 ___________________________________________________________________ Confidence T Interval Lower Upper Value (%) Value Width Limit Limit ___________________________________________________________________ 50.000 0.816 0.455 37.34539 38.25461 75.000 1.604 0.893 36.90717 38.69283 90.000 2.920 1.626 36.17422 39.42578 95.000 4.303 2.396 35.40438 40.19562 99.000 9.925 5.526 32.27408 43.32592 99.900 31.599 17.594 20.20639 55.39361 99.990 99.992 55.673 -17.87346 93.47346 99.999 316.225 176.067 -138.26683 213.86683
这一次,只有三个测量值这一事实导致了更宽的区间,实际上区间如此之大,以至于很难对均值的位置非常有信心。