假设检验
使用 scipy.stats 学习零假设、p 值、t 检验和卡方检验
假设检验 是 CoddyKit 上的免费 Learn AI with Python 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn AI with Python 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn AI with Python 课程共包含 4 节课。
什么是假设检验
假设检验利用数据判断观察到的效应是真实的,还是仅仅由随机因素造成的。这是数据科学家为“新设计提高了点击次数”等主张提供依据的方法。
原假设与备择假设
原假设 H0 表示没有效应(默认且持怀疑态度的立场)。备择假设 H1 表示存在效应。我们会尝试收集反对 H0 的证据。
p 值
p 值表示在 H0 为真的情况下,观察到如此极端数据的概率。较小的 p 值意味着这些数据在 H0 下非常出乎意料,因此我们会对 H0 产生怀疑。
显著性水平
我们会将 p 与阈值 alpha 进行比较(通常为 0.05)。如果 p < alpha,我们就拒绝 H0;否则就不能拒绝 H0。alpha 是可接受的假阳性率。
p 值不代表什么
p 值不是 H0 为真的概率,也不是效应大小。样本量很大时,极小的 p 值可能只反映一个小到无实际意义的差异。请始终同时报告效应大小。
单样本 t 检验
ttest_1samp 用于检查样本均值是否不同于某个已知值,例如平均响应时间是否不同于 200 毫秒的目标值。
from scipy import stats
import numpy as np
times = np.array([198, 205, 210, 195, 220, 208])
t, p = stats.ttest_1samp(times, popmean=200)
print(t, p)双样本 t 检验
ttest_ind 比较两个 INDEPENDENT 组的均值,这是标准的 A/B 测试分析方法。
control = np.array([20, 22, 19, 24, 21])
treat = np.array([25, 27, 24, 29, 26])
t, p = stats.ttest_ind(control, treat)
print(t, p) # small p -> groups differ解读结果
将 p 值与 alpha 进行比较,并用通俗的语言陈述结论。显著性是一项决策,而不是确定性的证明。
alpha = 0.05
if p < alpha:
print("Reject H0: the groups differ significantly")
else:
print("Fail to reject H0: no significant difference")卡方独立性检验
chi2_contingency 使用由计数组成的列联表,检验两个 CATEGORICAL 变量是否相关。
table = np.array([[30, 10], [20, 40]]) # rows: group, cols: outcome
chi2, p, dof, expected = stats.chi2_contingency(table)
print(chi2, p)第一类错误与第二类错误
第一类错误(假阳性)会拒绝真实的 H0,其发生率为 alpha。第二类错误(假阴性)无法拒绝错误的 H0,其发生率为 beta。统计功效 = 1 - beta,表示检测到真实效应的概率。
权衡
降低 alpha 会减少假阳性,但会提高假阴性率(降低统计功效)。更大的样本量可以同时减少两类错误,这就是为什么在实验前进行样本量规划很重要。
快速检查
请测试您对假设检验的掌握情况。
回顾
假设检验要点:
- H0(无效应)与 H1(有效应)对比;收集反对 H0 的证据
- p 值 = P(如此极端的数据 | H0);当 p < alpha 时拒绝 H0
- p 不是 H0 为真的概率,也不是效应大小
ttest_1samp、ttest_ind、chi2_contingency- 第一类错误(假阳性,发生率为 alpha)与第二类错误(假阴性,发生率为 beta);统计功效 = 1-beta
常见问题解答
「假设检验」课时是免费的吗?
是的 — 「假设检验」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn AI with Python 课程的其余内容,请升级到 CoddyKit PRO。 Learn AI with Python 课程共包含 4 节课。
「假设检验」这节课中我会学到什么?
使用 scipy.stats 学习零假设、p 值、t 检验和卡方检验 你通过在浏览器中直接运行的动手代码来练习 Learn AI with Python,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Learn AI with Python 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Learn AI with Python 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「假设检验」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Learn AI with Python 课中编写并运行代码吗?
能。每节 Learn AI with Python 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。