截距项(One Sample t-test)

Jul 20, 2023

我们从最简情形开始。

单样本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检验的经典假设是数据独立且服从正态分布。在回归框架下,这些假设对应:

完全一致。

如果数据偏离正态怎么办?回归有大量的扩展工具:稳健标准误、Bootstrap、非参数方法。而传统t检验只能告诉你"当样本量足够大时,根据中心极限定理,t检验对非正态有一定的稳健性"。

回归让你看到的不仅是"能用还是不能用",而是"为什么能用以及在什么条件下能用"。

一个小感慨

统计教科书通常把t检验放在前面讲,回归放在后面。从教学顺序上合理——先易后难。

但从理解结构上,这个顺序是倒过来的。

更自然的认知路径是:先明白"模型"这个概念——我们假设数据由一个系统($Y = \beta_0 + \varepsilon$)生成——然后"检验"只是对模型参数的推断。这样学,你不会觉得t检验和回归是两个独立的东西,而是同一个框架下对不同问题的自然回答。

我自己是学反了的。学了四五年统计,才在某天突然意识到这个对应关系。写这篇文章,某种意义上是在给自己补课。