我们从最简情形开始。
单样本t检验是你在统计课上学到的第一个检验:有一组数据,想知道它的均值是否等于某个特定值 $\mu_0$。比如:这批药片的平均重量是不是 $500\rm{mg}$?这个班级的平均成绩是不是 $70$ 分?
标准做法:算t统计量,查t分布表,看p值,做结论。
而"回归视角"的做法更简单:跑一个只有截距项的回归。
只有截距的回归
考虑模型:
$$ Y_i = \beta_0 + \varepsilon_i, \quad \varepsilon_i \sim \mathcal{N}(0, \sigma^2) $$没有自变量,只有截距 $\beta_0$。对这个模型做最小二乘估计(OLS),$\hat\beta_0$ 恰好是样本均值 $\bar{Y}$。这应该不意外——当你只能用一条水平线去拟合数据时,最好的选择就是取平均值。
检验 $H_0: \beta_0 = \mu_0$ 的 t 统计量为:
$$ t = \frac{\hat\beta_0 - \mu_0}{\rm{SE}(\hat\beta_0)} $$其中 $\rm{SE}(\hat\beta_0) = s / \sqrt{n}$,$s$ 是样本标准差。
而单样本t检验的公式是:
$$ t = \frac{\bar{Y} - \mu_0}{s / \sqrt{n}} $$一样。
因为 $\hat\beta_0 = \bar{Y}$,所以两个公式完全等价。t值相同,自由度相同(都是 $n-1$),p值相同,结论相同。
拟合一个"空"模型
在 R 里,你可以这样拟合:
y <- c(5.2, 4.8, 5.1, 5.0, 4.9)
summary(lm(y ~ 1))
Call:
lm(formula = y ~ 1)
Residuals:
1 2 3 4 5
2.000e-01 -2.000e-01 1.000e-01 1.041e-16 -1.000e-01
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.00000 0.07071 70.71 2.4e-07 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.1581 on 4 degrees of freedom
Estimate 那一栏就是样本均值,t值和p值和单样本t检验的输出一模一样。
t.test(y, mu = 0)
One Sample t-test
data: y
t = 70.711, df = 4, p-value = 2.397e-07
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
4.803676 5.196324
sample estimates:
mean of x
5
你也可以再用 t.test(y, mu = 5.0) 验算一下。
One Sample t-test
data: y
t = 0, df = 4, p-value = 1
alternative hypothesis: true mean is not equal to 5
95 percent confidence interval:
4.803676 5.196324
sample estimates:
mean of x
5
注意一点:lm(y ~ 1) 检验的是 $H_0: \beta_0 = 0$,而单样本t检验检验的是 $H_0: \mu = \mu_0$。要检验 $H_0: \mu = 5.0$,等价的做法是 summary(lm(I(y - 5.0) ~ 1))——先减去 $\mu_0$ 再回归,截距项的t检验就是你要的p值。
Call:
lm(formula = I(y - 5) ~ 1)
Residuals:
1 2 3 4 5
2.000e-01 -2.000e-01 1.000e-01 1.388e-17 -1.000e-01
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.483e-17 7.071e-02 0 1
Residual standard error: 0.1581 on 4 degrees of freedom
这个例子太简单了,简单到你可能觉得"这不就是换了个说法吗?"
对,就是换了个说法。但重要的不是这个例子本身,而是它确立了一个思维模式:统计检验 = 对回归系数的显著性检验。
为什么从截距只有的模型开始?
因为这是整个回归大厦的"地基"。
当你理解了"单样本t检验就是截距项的显著性检验"之后,再往前走一步——在 $X$ 的位置放一个 $0/1$ 变量——你就得到了成组t检验。再放多个虚拟变量,就得到了ANOVA。把 $X$ 和 $Y$ 都标准化,就得到了Pearson相关。
每一步都是在上一步的基础上多加一个 $X$。
但地基是一样的:$Y = X\beta + \varepsilon$,检验 $H_0: \beta_j = 0$。
假设条件也是一样的
单样本t检验的经典假设是数据独立且服从正态分布。在回归框架下,这些假设对应:
- 独立性:$\varepsilon_i \perp \varepsilon_j$(误差项独立)
- 正态性:$\varepsilon_i \sim \mathcal{N}(0, \sigma^2)$(误差项正态)
完全一致。
如果数据偏离正态怎么办?回归有大量的扩展工具:稳健标准误、Bootstrap、非参数方法。而传统t检验只能告诉你"当样本量足够大时,根据中心极限定理,t检验对非正态有一定的稳健性"。
回归让你看到的不仅是"能用还是不能用",而是"为什么能用以及在什么条件下能用"。
一个小感慨
统计教科书通常把t检验放在前面讲,回归放在后面。从教学顺序上合理——先易后难。
但从理解结构上,这个顺序是倒过来的。
更自然的认知路径是:先明白"模型"这个概念——我们假设数据由一个系统($Y = \beta_0 + \varepsilon$)生成——然后"检验"只是对模型参数的推断。这样学,你不会觉得t检验和回归是两个独立的东西,而是同一个框架下对不同问题的自然回答。
我自己是学反了的。学了四五年统计,才在某天突然意识到这个对应关系。写这篇文章,某种意义上是在给自己补课。