Math-01.显著性检验-02.t检验

t 检验(t-test)比较连续变量均值,在总体标准差 $\sigma$ 未知时用样本标准差 $S$ 标准化,检验统计量服从 t 分布。是酶学重复实验、A/B 测试(小样本)最常用的参数检验。

段末注释t 检验由 William Gosset(Student)提出;$H_0$ 下 $T \sim t_{n-1}$ 见 31.抽样分布

系列01 总论 | 分布:27.t


1. 检验问题(D1)

图 1 t 检验直观

类型 $H_0$ $H_1$ 示例
单样本 $\mu = \mu_0$ $\mu \neq \mu_0$ 或 $\mu > \mu_0$
独立双样本 $\mu_1 = \mu_2$ $\mu_1 \neq \mu_2$
配对 $\mu_d = 0$(差值均值) $\mu_d \neq 0$

2. 数据条件(D2)

条件 说明
连续 因变量为连续或近似连续
独立 观测独立(配对除外,配对看差值)
正态性 总体或差值近似正态;$n$ 小更敏感
方差齐性 双样本等方差 t;不齐用 Welch t

3. 检验统计量(D3–D4)

图 2 t 统计量与 t 分布

3.1 单样本

$$
T = \frac{\bar{X} - \mu_0}{S / \sqrt{n}} \sim t_{n-1} \quad (H_0 \text{ 下})
$$

3.2 独立双样本(合并方差)

$$
T = \frac{\bar{X}_1 - \bar{X}_2}{S_p \sqrt{\frac{1}{n_1}+\frac{1}{n_2}}}, \quad
S_p^2 = \frac{(n_1-1)S_1^2+(n_2-1)S_2^2}{n_1+n_2-2}
$$

自由度 $n_1+n_2-2$。Welch t 不假设方差相等,自由度近似。

3.3 配对

对差值 $d_i = x_i - y_i$:

$$
T = \frac{\bar{d}}{S_d / \sqrt{n}} \sim t_{n-1}
$$


4. 适用场景(D5–D7)

图 3 适用场景

场景 类型
酶活 vs WT($n<30$) 单样本 / 双样本
处理 vs 对照(独立) 独立双样本
同一克隆处理前后 配对 t
药物 vs 安慰剂(小 $n$) 独立双样本

5. 局限与误用(D8)

图 4 局限

问题 应对
严重偏态 + 小 $n$ Mann-Whitney 或变换
方差不齐仍用合并 t equal_var=False(Welch)
配对数据用独立 t 用配对 t
多重比较未校正 Bonferroni / FDR
仅看 p 不看 Cohen’s $d$ 报告效应量

6. 解读(D9–D10)

  • p < 0.05:在 $\alpha=0.05$ 下拒绝 $H_0$,称「差异显著」
  • 95% CI:若不包含 0(双样本差)或 $\mu_0$(单样本),与双侧检验一致
  • Cohen’s $d$:$d = (\bar{X}_1-\bar{X}_2)/S_p$,小 0.2 / 中 0.5 / 大 0.8

7. 示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import numpy as np
from scipy import stats

rng = np.random.default_rng(42)
wt = rng.normal(1.0, 0.15, 8)
mut = rng.normal(1.25, 0.18, 8)

# 独立双样本 Welch t
t, p = stats.ttest_ind(mut, wt, equal_var=False)
print(f"Welch t={t:.3f}, p={p:.4f}")

# 单样本:mut 是否 > 1.0
t1, p1 = stats.ttest_1samp(mut, popmean=1.0, alternative="greater")
print(f"one-sample greater: t={t1:.3f}, p={p1:.4f}")

# 配对
before = rng.normal(1.0, 0.1, 10)
after = before + rng.normal(0.2, 0.05, 10)
t_p, p_p = stats.ttest_rel(after, before)
print(f"paired: t={t_p:.3f}, p={p_p:.4f}")

# 置信区间(差值)
ci = stats.t.interval(0.95, df=len(mut)+len(wt)-2,
loc=mut.mean()-wt.mean(),
scale=stats.sem(np.concatenate([mut, wt])))
print("approx CI for diff:", ci)

8. 小结

  • t 检验:$\sigma$ 未知时的均值比较;统计量 $\sim t_\nu$。
  • 单样本 / 独立双样本 / 配对三种;注意方差齐性与正态前提。
  • 大 $n$ 或 $\sigma$ 已知时可考虑 Z 检验

系列导航01 总论 | 03 Z


参考文献

  1. scipy.stats.ttest_ind
-------------本文结束感谢您的阅读-------------