求回归方程的残差,核心做法就是把每个实际观测到的数据值,减去根据回归方程预测出来的数据值。以一元线性回归 y = a + bx 为例,残差就是 y_i 减去 y_hat_i,也就是 y_i - (a + b x_i)。如果是一元模型,用自变量 x 算出预测值;如果是多元模型,就用多个自变量一起算出预测值,再用实际值减预测值。残差表示“实际值和预测值之间的差值”,它可以是正数,也可以是小于零的数,还可以等于零。
先认识实际值、预测值和残差
| 名称 | 含义 | 常见写法 |
|---|---|---|
| 实际观测值 | 样本里真实记录下来的因变量数据 | y_i |
| 预测值 | 用回归方程算出来的因变量数据 | y_hat_i |
| 残差 | 实际观测值与预测值之间的差值 | e_i = y_i - y_hat_i |
一元线性回归的计算方法
一元线性回归方程通常写成:
y_hat_i = a + b x_i
残差计算式就是:
e_i = y_i - (a + b x_i)
计算方法:
- 1、先写出回归方程,知道截距 a 和斜率 b。
- 2、把每个 x_i 代入方程,算出预测值 y_hat_i。
- 3、找到对应的实际观测值 y_i。
- 4、用实际观测值减去预测值。
- 5、得到的差值就是残差 e_i。
举例:
| x_i | y_i | a | b | 预测值 y_hat_i | 残差 e_i |
|---|---|---|---|---|---|
| 1 | 6 | 2 | 3 | 2 + 3 × 1 = 5 | 6 - 5 = 1 |
| 0 | 1 | 2 | 3 | 2 + 3 × 0 = 2 | 1 - 2 = -1 |
| 2 | 9 | 2 | 3 | 2 + 3 × 2 = 8 | 9 - 8 = 1 |
这里的“-1”表示实际值比预测值小,残差用正数或小于零的数表达差值方向。
多元回归的计算方法
多元线性回归方程可以写成:
y_hat_i = a + b_1 x_{1i} + b_2 x_{2i} + ... + b_k x_{ki}
残差计算式是:
e_i = y_i - (a + b_1 x_{1i} + b_2 x_{2i} + ... + b_k x_{ki})
计算方法:
- 1、写出多元回归方程。
- 2、找到每个样本对应的多个自变量值。
- 3、把多个自变量值代入方程,算出预测值。
- 4、用实际观测值减去预测值。
- 5、得到每个样本的残差。
表格和代码里的做法
| 场景 | 准备数据 | 计算方式 | 常见写法 |
|---|---|---|---|
| 手算一元回归 | 已知 a、b、x_i、y_i | e_i = y_i - (a + b x_i) | y_i - (2 + 3x_i) |
| Excel 已知预测值 | 实际值列、预测值列 | 残差 = 实际值 - 预测值 | =B2-C2 |
| Excel 已知截距和斜率 | x 列、y 列、截距、斜率 | 先算预测值,再算残差 | =B2-($a+$bA2) |
| Python | 已训练好的回归模型 | 先预测,再相减 | resid = y - model.predict(X) |
| 统计软件 | 模型输出残差 | 直接读取残差列 | residual |
核对结果的方法
- 1、预测值加上残差,应该能回到实际观测值。
- 2、每个样本都会得到一个残差。
- 3、如果模型带截距并用最小二乘法拟合,残差合计一般会接近 0。
- 4、残差接近 0,说明预测值和实际值比较贴近。
残差求法可以记成一句话:残差等于实际观测值减去回归方程预测值。
免责声明:本内容仅用于学习交流,适合日常理解使用。


