在统计假设检验的结果解释中,通常(如果不是标准的话)使用 p 值。
并非所有统计检验的实现都会返回 p 值。在某些情况下,您必须使用替代方法,例如临界值。此外,当估计来自总体的观测值的预期区间(如公差区间)时,也会使用临界值。
在本教程中,您将了解临界值、它们的重要性、它们的用法以及如何使用 SciPy 在 Python 中计算它们。
完成本教程后,您将了解:
- 统计假设检验的示例及其可以计算和使用的临界值的分布。
- 在单尾和双尾统计假设检验中,临界值究竟是如何使用的。
- 如何计算高斯分布、学生 t 分布和卡方分布的临界值。
立即开始您的项目,阅读我的新书《机器学习统计学》,其中包含分步教程和所有示例的Python 源代码文件。
让我们开始吧。

统计假设检验临界值入门指南
图片来源:Steve Bittinger,保留部分权利。
教程概述
本教程分为4个部分,它们是:
- 我们为什么需要临界值?
- 什么是临界值?
- 如何使用临界值
- 如何计算临界值
需要机器学习统计学方面的帮助吗?
立即参加我为期7天的免费电子邮件速成课程(附示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
我们为什么需要临界值?
许多统计假设检验会返回一个 p 值,用于解释检验结果。
有些检验不返回 p 值,需要一种替代方法来直接解释计算出的检验统计量。
可以通过临界值来解释统计假设检验计算出的统计量。临界值来自检验统计量的分布。
一些统计假设检验及其可以从中计算临界值的分布的示例如下:
- Z 检验:高斯分布。
- 学生 t 检验:学生 t 分布。
- 卡方检验:卡方分布。
- 方差分析:F 分布。
在定义来自分布的预期(或非预期)观测值的区间时,也会使用临界值。当量化估计统计量或诸如置信区间和公差区间之类的区间的置信度时,计算和使用临界值可能是合适的。
什么是临界值?
根据定义,临界值是总体分布和概率的背景下的一个值。
来自总体的观测值,其值等于或小于给定概率的临界值。
我们可以用数学方式表示如下:
1 |
Pr[X <= 临界值] = 概率 |
其中 *Pr* 是概率的计算,*X* 是总体的观测值,*critical_value* 是计算出的临界值,*probability* 是选择的概率。
临界值是使用一个数学函数计算的,该函数将概率作为参数。对于大多数常见分布,该值无法通过解析计算得出;而是必须使用数值方法进行估计。历史上,为了参考方便,在统计教科书的附录中通常会提供预先计算好的临界值表。
临界值用于统计显著性检验。概率通常表示为显著性水平,用小写希腊字母 alpha (α) 表示,它是反向概率。
1 |
概率 = 1 - alpha |
在计算临界值时,通常会使用标准的 alpha 值,这些值是出于历史原因而选择的,并会持续使用以保持一致性。这些 alpha 值包括:
- 1% (alpha=0.01)
- 5% (alpha=0.05)
- 10% (alpha=0.10)
临界值提供了另一种解释统计假设检验的等效方法,与 p 值相对应。
如何使用临界值
计算出的临界值用作解释统计检验结果的阈值。
总体中超出临界值的观测值通常被称为“临界区域”或“拒绝区域”。
临界值:为指定的统计检验在表格中出现的数值,指示在哪个计算出的值可以拒绝原假设(计算出的统计量落入拒绝区域)。
— 第 265 页,《研究方法手册:社会科学实践者和学生指南》,2003 年。
统计检验可能是 单尾或双尾的。
单尾检验
单尾检验只有一个临界值,例如位于分布的左侧或右侧。
对于非对称分布(如卡方分布),单尾检验的临界值通常位于分布的右侧。
将统计量与计算出的临界值进行比较。如果统计量小于或等于临界值,则我们未能拒绝原假设(例如,无效应)。否则,则拒绝。
我们可以将这种解释总结如下:
- 检验统计量 <= 临界值:未能拒绝统计检验的原假设。
- 检验统计量 > 临界值:拒绝统计检验的原假设。
双尾检验
双尾检验有两个临界值,一个位于分布的每一侧,这通常被假定为对称的(例如,高斯分布和学生 t 分布)。
使用双尾检验时,用于计算临界值的显著性水平(或 alpha)必须除以 2。然后,临界值将使用分布两侧的 alpha 部分。
为了具体说明,考虑一个 5% 的 alpha 值。这将被分成两部分,在分布的每一侧给出 2.5% 的 alpha 值,分布中间的接受区域为 95%。
我们可以将每个临界值称为左侧和右侧分布的下临界值和上临界值。检验统计量值大于或等于下临界值且小于或等于上临界值,表示未能拒绝统计检验的原假设。而小于下临界值且大于上临界值的检验统计量值表示拒绝该检验的原假设。
我们可以将这种解释总结如下:
- 下临界值 <= 检验统计量 <= 上临界值:未能拒绝统计检验的原假设。
- 检验统计量 < 下临界值 或 检验统计量 > 上临界值:拒绝统计检验的原假设。
如果检验统计量的分布围绕零均值对称,那么我们可以通过将检验统计量的绝对值(正值)与上临界值进行比较来简化检查。
- |检验统计量| <= 上临界值:未能拒绝统计检验的原假设。
其中 *|Test Statistic|* 是计算出的检验统计量的绝对值。
如何计算临界值
密度函数返回分布中观测值的概率。回想一下 PDF 和 CDF 的定义如下:
- 概率密度函数 (PDF):返回分布中某个特定值的观测值的概率。
- 累积分布函数 (CDF):返回等于或小于分布中某个特定值的观测值的概率。
为了计算临界值,我们需要一个函数,该函数在给定概率(或显著性)的情况下,将返回分布中的观测值。
具体来说,我们需要累积分布函数的逆函数,即给定概率,我们得到小于或等于该概率的观测值。这被称为百分点函数 (PPF),或更一般地称为 分位数函数。
- 百分点函数 (PPF):返回分布中小于或等于给定概率的观测值。
具体来说,来自分布的某个值将等于或小于 PPF 返回的值,其概率是指定的。
让我们通过三个通常需要计算临界值的分布来具体说明。即高斯分布、学生 t 分布和卡方分布。
我们可以使用 SciPy 中给定分布的 *ppf()* 函数来计算百分点函数。还应注意,您也可以使用称为 *isf()* 的逆生存函数在 SciPy 中计算 *ppf()*。提及这一点是因为您可能会在第三方代码中看到这种替代方法的用法。
高斯临界值
下面的示例计算了标准高斯分布在 95% 的百分点函数。
1 2 3 4 5 6 7 8 9 10 |
# 高斯百分点函数 from scipy.stats import norm # 定义概率 p = 0.95 # 获取小于等于概率的值 value = norm.ppf(p) print(value) # 通过 CDF 确认 p = norm.cdf(value) print(p) |
运行示例后,首先打印出分布中约 1.65 的值,该值标志着 95% 或更少的观测值。然后通过从 CDF 获取该观测值的概率来确认该值,结果为 95%,正如预期的那样。
我们可以看到,1.65 这个值与我们对 68-95-99.7 规则中覆盖分布 95% 的均值标准差数量的预期相符。
1 2 |
1.6448536269514722 0.95 |
学生 t 临界值
下面的示例计算了具有 10 个自由度的标准学生 t 分布在 95% 的百分点函数。
1 2 3 4 5 6 7 8 9 10 11 |
# 学生 t 分布百分点函数 from scipy.stats import t # 定义概率 p = 0.95 df = 10 # 获取小于等于概率的值 value = t.ppf(p, df) print(value) # 通过 CDF 确认 p = t.cdf(value, df) print(p) |
运行示例会返回约 1.812 或更小的值,该值覆盖了所选分布 95% 的观测值。通过将此值用作 CDF 的输入,可以确认该值的概率(存在少量舍入误差)。
1 2 |
1.8124611228107335 0.949999999999923 |
卡方临界值
下面的示例计算了具有 10 个自由度的标准卡方分布在 95% 的百分点函数。
1 2 3 4 5 6 7 8 9 10 11 |
# 卡方百分点函数 from scipy.stats import chi2 # 定义概率 p = 0.95 df = 10 # 获取小于等于概率的值 value = chi2.ppf(p, df) print(value) # 通过 CDF 确认 p = chi2.cdf(value, df) print(p) |
运行示例后,首先计算出 18.3 或更小的值,该值覆盖了分布 95% 的观测值。通过将其用作 CDF 的输入,可以确认此观测值的概率。
1 2 |
18.307038053275143 0.95 |
进一步阅读
如果您想深入了解,本节提供了更多关于该主题的资源。
书籍
- 研究方法手册:社会科学实践者和学生指南, 2003.
API
文章
总结
在本教程中,您了解了临界值、它们的重要性、它们的用法以及如何使用 SciPy 在 Python 中计算它们。
具体来说,你学到了:
- 统计假设检验的示例及其可以计算和使用的临界值的分布。
- 在单尾和双尾统计假设检验中,临界值究竟是如何使用的。
- 如何计算高斯分布、学生 t 分布和卡方分布的临界值。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
您好!我有一个问题。你看,你说了
p = 0.95
df = 10
value = t.ppf(p, df)
返回学生 t 临界值
但是如果我们查看对应的表格 http://referati-besplatno.ru/wp-content/uploads/2011/10/kzs.png,我们可以看到差异(请记住 alpha=1-p,所以 p=0.95 等于 alpha=0.05)
真相在哪里?
您好 Alex,我不知道您书中的示例是如何计算的。
你好 Alex 和 Jason,
Alex 图片中的数字是双尾检验的。
当我们计算双尾的 alpha 时,我们将其除以 2,所以 alpha = 0.05 意味着 p=0.025 和 0.975,
所以您的概率介于分布的两个端点之间
如果运行这段代码,您可以看到这两个值是对称的。
@Jason
感谢您的文章!
太棒了!
Jason,我认为,如果您能明确指出所有 ppf 函数都返回单尾临界值,那将使您的示例更加清晰。这就是为什么您可以将其直接放回 CDF 函数中并返回与您开始时相同的百分比。我相信您知道这一点,但这有助于澄清您的示例,即这是标准正态分布、学生 t 分布和卡方分布的*单侧* 95% 置信区间。
谢谢,这是一个很棒的建议。我希望有时间进行更新。
谢谢谢谢谢谢。
@Jason – 已经 7 个月了。请“抽出时间”进行这次更新。这对于理解至关重要。
感谢 Vicki 的建议。
你好,
您的教程帮助我很多地理解了机器学习的奥秘。
您能否创建一个关于 2 比例 z 检验的教程?这将有所帮助。
尊敬的 Jason Brownlee 先生,
我想计算方差分析(单向)的临界值。
非常感谢。
不错。
抱歉打扰您,但我觉得在单尾分布部分有一个错误。您在文本中说:
“将统计量与计算出的临界值进行比较。如果统计量小于或等于临界值,则未能拒绝统计检验的原假设。否则,则拒绝。”
但在同一部分的摘要中,您说:
检验统计量 临界值:拒绝统计检验的原假设。
哪一个是正确的?为了拒绝原假设,检验统计量应该是大于还是大于等于临界值?
在右尾检验中,检验统计量必须超过临界值。等于的值也是未能拒绝。
谢谢,我已更新帖子以保持一致。