加权线性回归(Weighted Linear Regression)的公式及其推理

1.加权线性回归与普通线性回归

对于一组有N个观测的数据

$$(x_i,y_i), i = 1,2,3,4,…, N$$

可以使用一元线性回归模型

$$y = a x + b + \epsilon$$

来拟合 \(x\) 与 \(y\) 之间的关系。其中的参数 \(a,b\) 通常使用最小二乘拟合,即寻找使代价函数

$$J(a,b) = \frac{1}{N}\sum^{N}_{i=1}{(y_i-ax_i-b)^2}$$

最小的\(a,b\),使得拟合曲线尽可能地接近所有的观测点。

但在实际应用中,观测点之间可能是有差异的。比如,有的观测点误差大,有的观测点误差小,这就需要让我们的拟合直线\(y=ax+b\),不必考虑误差大的观测点,而要尽可能逼近误差小的观测点。这时就可以使用一个权重系数\(w_i\)来表示第\(i\)个观测点的权重(例如,对于误差小的观测点,\(w_i\)的值更大) 而考虑了这个权重系数\(w_i\)的线性回归,就是加权线性回归。

它的回归方程仍然是

$$y = a x + b + \epsilon$$

唯一区别是代价函数变成了

$$J(a,b) = \frac{1}{N}\sum^{N}_{i=1}{w_i(y_i-ax_i-b)^2}$$

这样,在寻找最优 \(a,b\)时,会更多地考虑高权重的观测值

2.最优a,b及其求解

(a,b最优解见本节最后)

代价函数

$$J(a,b) = \frac{1}{N}\sum^{N}_{i=1}{w_i(y_i-ax_i-b)^2}$$

是一个普通的二元二次函数,分别将 J(a,b)对a,b求偏微分,使这两个偏微分同时为0 的(a,b)即为最优解。即求解方程组

$$\frac{\partial}{\partial a}{J(a,b)} = 0$$

$$\frac{\partial}{\partial b}{J(a,b)} = 0$$

$$\frac{\partial}{\partial a}{J(a,b)} = \frac{1}{N}[2\sum^{N}_{i=1}{w_ix_i(y_i-ax_i-b)}] = 0$$

$$\frac{\partial}{\partial b}{J(a,b)} = \frac{1}{N}[2\sum^{N}_{i=1}{w_i(y_i-ax_i-b)}] = 0$$

即可得

$$\frac{\partial}{\partial a}{J(a,b)} = \frac{2}{N}[\sum^{N}_{i=1}{w_ix_iy_i}-a\sum^{N}_{i=1}{w_ix_ix_i}-b\sum^{N}_{i=1}{w_ix_i}] = 0$$

$$\frac{\partial}{\partial b}{J(a,b)} = \frac{2}{N}[\sum^{N}_{i=1}{w_iy_i}-a\sum^{N}_{i=1}{w_ix_i}-b\sum^{N}_{i=1}{w_i}] = 0$$

为简化描述,定义以下符号

$$(\overline{wxy}) = \sum^{N}_{i=1}{w_ix_iy_i}$$

$$(\overline{wxx}) = \sum^{N}_{i=1}{w_ix_ix_i}$$

$$(\overline{wx}) = \sum^{N}_{i=1}{w_ix_i}$$

$$(\overline{wy}) = \sum^{N}_{i=1}{w_iy_i}$$

$$(\overline{w} )= \sum^{N}_{i=1}{w_i}$$

由于N为观测数,不会为0,则有

$$a(\overline{wxx}) + b(\overline{wx}) = (\overline{wxy})$$

$$a(\overline{wx}) + b(\overline{w}) = (\overline{wy})$$

解这个以a,b为未知数的二元一次方程组,可得

$$a = \frac{(\overline{wxy}) – \frac{(\overline{wy})(\overline{wx})}{\overline{w}}}{ (\overline{wxx}) – \frac{(\overline{wx})(\overline{wx})}{(\overline{w})} }$$

$$b = \frac{(\overline{wy}) – a(\overline{wx})}{(\overline{w})}$$

如果令\(w_i=1\),则以上公式与普通线性回归参数估计公式相同

3.\(R^2\)与F检验

对于普通的线性回归模型,\(R^2\)的计算公式如下:

$$R^2 =1 – \frac{\sum^{N}_{i=1}{(y_i – ax_i – b)^2}} {\sum^{N}_{i=1}{(y_i – \frac{1}{N}\sum^{N}_{j=1}{y_j})}^2}$$

对应的,加入权重后,就可得到加权回归模型的\(R^2\)计算公式

$$R^2 =1 – \frac{\sum^{N}_{i=1}{w_i(y_i – ax_i – b)^2}} {\sum^{N}_{i=1}{w_i(y_i – \frac{1}{N}\sum^{N}_{j=1}{y_j})}^2}$$

相应的F统计量计算公式仍为

$$F = \frac{R^2 / k}{(1-R^2)/(N-k-1)}$$

其中k为回归模型自变量个数,对于一元回归k=1。将计算得到的F值带入 F(k,N-k-1)分布中检验即可得到其显著性p值

1 thought on “加权线性回归(Weighted Linear Regression)的公式及其推理”

  1. 我按照这篇推导实现了一个求解加权线性回归斜率和截距的Python函数,以便使用numba对其加速,但是其计算结果总是和sklearn的LinearRegression有细微的差异,所以在这里想请教一下,在具体实现的时候,是不是还应该加入某种细节?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.