线性回归原理推导与应用(一):一元线性回归原理
1 数学定义
线性回归是一种使用特征属性的线性组合来预测响应的方法,通俗一点说线性是指每个自变量(或者说特征)
x
x
x与因变量(或者说结果)
y
y
y的结果是线性的关系,回归就是从离散的点中拟合出这个函数的过程。它的目标是找到一个线性函数,是这个函数尽可能的去拟合样本点,以尽可能准确地描述自变量(或者说特征)
x
x
x与因变量(或者说结果)
y
y
y之间的关系,使得预测值与真实值之间的误差最小化。
在数学上,线性回归要找的这个线性函数叫回归方程,我们初高中就学过这种类型的函数
y
=
b
+
k
x
y=b+kx
y=b+kx。这种只有一个自变量
x
x
x,也就是一元线性回归。
需要注意的一点是,一般在说一元线性回归模型的时候通用形式为
y
=
b
+
k
x
+
ε
y=b+kx+\varepsilon
y=b+kx+ε,其中
ε
\varepsilon
ε表示残差,表示线性模型中无法解释的部分。而求出来的回归方程就不包含这个残差
2 一元线性回归模型的参数估计理论推导
一元线性回归模型的表达式中有两个待确定的参数:斜率 k k k和截距 b b b,如何确定这两个参数,从而使得到的一元线性回归方程能更好的拟合已有的数据呢?一般的方法有最小二乘法、矩方法和极大似然方法。
最小二乘法
什么样的模型是好的呢?预测值与真实值之间的差距越小越好,距离越小,代表我们的模型效果越好,所以最小二乘法就是计算每一个样本点的实际值与预测值之间的差距并加总并求最小时的斜率
k
k
k和截距
b
b
b
首先为了衡量模型的性好坏,我们引入均方误差(MSE),也就是各数据偏离真实值的距离平方和的平均数:
E
(
k
,
b
)
=
1
n
∑
i
=
1
n
(
y
i
−
f
(
x
i
)
)
2
E(k,b)=\frac{1}{n}\sum_{i=1}^n(y_i-f(x_i))^2
E(k,b)=n1i=1∑n(yi−f(xi))2
其中n为样本数,
f
(
x
i
)
f(x_i)
f(xi)为预测值,
y
i
y_i
yi为实际值。采用平方计算距离是为了消除正负相抵的影响,同时保证导数连续。
要得到均方误差最小的
k
,
b
k,b
k,b,要用到高等数学中求二元函数最值的方法:
1.判断函数是否为凹凸函数:设函数
f
(
x
,
y
)
f(x,y)
f(x,y)在区域
D
D
D上具有二阶连续偏导数,假定
(
x
0
,
y
0
)
(x_0,y_0)
(x0,y0)为一个驻点,且分别记为:
A
=
f
x
x
′
′
(
x
0
,
y
0
)
,
B
=
f
x
y
′
′
(
x
0
,
y
0
)
,
C
=
f
y
y
′
′
(
x
0
,
y
0
)
A=f_{xx}^{''}(x_0,y_0),B=f_{xy}^{''}(x_0,y_0),C=f_{yy}^{''}(x_0,y_0)
A=fxx′′(x0,y0),B=fxy′′(x0,y0),C=fyy′′(x0,y0)
(1)在区域
D
D
D上 恒 有
A
>
0
A > 0
A>0 , 且
A
C
−
B
2
≥
0
AC − B^2 \geq 0
AC−B2≥0 为凸函 数
(2)在区域
D
D
D上 恒 有
A
<
0
A < 0
A<0 , 且
A
C
−
B
2
≥
0
A C − B 2 \geq 0
AC−B2≥0 为凹函 数
2. 求函数最值:设
f
(
x
,
y
)
f(x,y)
f(x,y)是在开区域
D
D
D内具有连续偏导数的凸(或者凹)函数,其中
(
x
0
,
y
0
)
∈
D
(x_0,y_0)\in{D}
(x0,y0)∈D且
f
x
′
(
x
0
,
y
0
)
=
0
,
f
y
′
(
x
0
,
y
0
)
=
0
f_{x}^{'}(x_0,y_0)=0,f_{y}^{'}(x_0,y_0)=0
fx′(x0,y0)=0,fy′(x0,y0)=0为
f
(
x
,
y
)
f(x,y)
f(x,y)在区域
D
D
D内的最小值(或者最大值)
把
f
(
x
i
)
f(x_i)
f(xi)写成一元回归方程的形式,有:
E
(
k
,
b
)
=
1
n
∑
i
=
1
n
(
y
i
−
k
x
i
−
b
)
2
E(k,b)=\frac{1}{n}\sum_{i=1}^n(y_i-kx_i-b)^2
E(k,b)=n1i=1∑n(yi−kxi−b)2
首先证明
J
(
k
,
b
)
J(k,b)
J(k,b)为凸函数,对其求
k
,
b
k,b
k,b的一阶偏导和二阶偏导有:
∂
∂
k
E
(
k
,
b
)
=
2
n
∑
i
=
1
n
(
y
i
−
k
x
i
−
b
)
(
−
x
i
)
=
2
n
[
k
∑
i
=
1
n
x
i
2
−
∑
i
=
1
n
(
y
i
−
b
)
x
i
]
\frac{\partial }{\partial k}E(k, b)=\frac{2}{n}\sum_{i=1}^n(y_i-kx_i-b)({-x_i})=\frac{2}{n} \Big [k \sum_{i=1}^n{x_i}^2 -\sum_{i=1}^n(y_i-b)x_i \Big ]
∂k∂E(k,b)=n2i=1∑n(yi−kxi−b)(−xi)=n2[ki=1∑nxi2−i=1∑n(yi−b)xi]
A
=
∂
2
∂
k
2
E
(
k
,
b
)
=
2
n
∑
i
=
1
n
x
i
2
A=\frac{\partial^2 }{\partial k^2}E(k, b)=\frac{2}{n} \sum_{i=1}^n{x_i}^2
A=∂k2∂2E(k,b)=n2i=1∑nxi2
B
=
∂
2
∂
k
∂
b
E
(
k
,
b
)
=
2
n
∑
i
=
1
n
x
i
B=\frac{\partial^2 }{\partial k\partial b}E(k, b)=\frac{2}{n} \sum_{i=1}^n{x_i}
B=∂k∂b∂2E(k,b)=n2i=1∑nxi
∂
∂
b
E
(
k
,
b
)
=
2
n
∑
i
=
1
n
(
y
i
−
k
x
i
−
b
)
(
−
1
)
=
2
n
∑
i
=
1
n
(
k
x
i
+
b
−
y
i
)
\frac{\partial }{\partial b}E(k, b)=\frac{2}{n}\sum_{i=1}^n(y_i-kx_i-b)(-1)=\frac{2}{n}\sum_{i=1}^n(kx_i+b-y_i)
∂b∂E(k,b)=n2i=1∑n(yi−kxi−b)(−1)=n2i=1∑n(kxi+b−yi)
C
=
∂
2
∂
b
2
E
(
k
,
b
)
=
2
n
∑
i
=
1
n
1
=
2
C=\frac{\partial^2 }{\partial b^2}E(k, b)=\frac{2}{n}\sum_{i=1}^n 1=2
C=∂b2∂2E(k,b)=n2i=1∑n1=2
接着计算
A
C
−
B
2
AC − B^2
AC−B2,对于
1
n
∑
i
=
1
n
x
i
\frac{1}{n} \sum_{i=1}^n{x_i}
n1∑i=1nxi即为所有因变量
x
x
x样本的均值,记为
x
‾
\overline x
x有:
A
C
−
B
2
=
4
[
1
n
∑
i
=
1
n
x
i
2
−
(
1
n
∑
i
=
1
n
x
i
)
2
]
=
4
[
1
n
∑
i
=
1
n
x
i
2
−
x
‾
2
]
=
4
n
[
∑
i
=
1
n
x
i
2
−
n
x
‾
2
]
=
4
n
[
∑
i
=
1
n
x
i
2
−
∑
i
=
1
n
x
‾
2
]
=
4
n
[
∑
i
=
1
n
(
x
i
2
−
x
‾
2
)
]
AC − B^2=4\Big[\frac{1}{n} \sum_{i=1}^n{x_i}^2-\Big(\frac{1}{n}\sum_{i=1}^n{x_i}\Big)^2\Big] \\ =4\Big[\frac{1}{n} \sum_{i=1}^n{x_i}^2-\overline x^2\Big] \\ = \frac{4}{n}\Big[ \sum_{i=1}^n{x_i}^2- n\overline x^2 \Big] \\ = \frac{4}{n}\Big[ \sum_{i=1}^n{x_i}^2- {\sum_{i=1}^n} \overline x^2 \Big] \\ = \frac{4}{n}\Big[ \sum_{i=1}^n({x_i}^2- \overline x^2) \Big]
AC−B2=4[n1i=1∑nxi2−(n1i=1∑nxi)2]=4[n1i=1∑nxi2−x2]=n4[i=1∑nxi2−nx2]=n4[i=1∑nxi2−i=1∑nx2]=n4[i=1∑n(xi2−x2)]
同时有:
∑
i
=
1
n
x
‾
2
=
n
x
‾
2
=
n
⋅
x
‾
⋅
1
n
∑
i
=
1
n
x
i
=
x
‾
∑
i
=
1
n
x
i
=
∑
i
=
1
n
x
‾
x
i
\sum_{i=1}^n\overline x^2=n\overline x^2= n \cdot \overline x \cdot \frac{1}{n}\sum_{i=1}^n x_i=\overline x \sum_{i=1}^n x_i=\sum_{i=1}^n \overline x x_i
i=1∑nx2=nx2=n⋅x⋅n1i=1∑nxi=xi=1∑nxi=i=1∑nxxi
可将上述
A
C
−
B
2
AC − B^2
AC−B2的公式继续推导有:
A
C
−
B
2
=
4
n
[
∑
i
=
1
n
(
x
i
2
−
x
‾
2
)
]
=
4
n
[
∑
i
=
1
n
(
x
i
2
−
x
‾
2
+
x
‾
x
i
−
x
‾
x
i
)
]
=
4
n
[
∑
i
=
1
n
(
x
i
2
−
x
‾
x
i
+
x
‾
2
−
x
‾
x
i
)
]
=
4
n
[
∑
i
=
1
n
(
x
i
−
x
‾
)
2
]
≥
0
AC − B^2= \frac{4}{n}\Big[ \sum_{i=1}^n({x_i}^2- \overline x^2) \Big] \\ = \frac{4}{n}\Big[ \sum_{i=1}^n({x_i}^2 - \overline x^2 + \overline x x_i - \overline x x_i) \Big] \\= \frac{4}{n}\Big[ \sum_{i=1}^n({x_i}^2 - \overline x x_i + \overline x^2 - \overline x x_i) \Big] \\= \frac{4}{n}\Big[ \sum_{i=1}^n({x_i} - \overline x)^2 \Big] \geq 0
AC−B2=n4[i=1∑n(xi2−x2)]=n4[i=1∑n(xi2−x2+xxi−xxi)]=n4[i=1∑n(xi2−xxi+x2−xxi)]=n4[i=1∑n(xi−x)2]≥0
即函数
E
(
k
,
b
)
E(k,b)
E(k,b) 是关于
k
和
b
k和b
k和b的凸函数得证
令对
b
b
b的一阶偏导等于0有:
∂
∂
b
E
(
k
,
b
)
=
2
n
∑
i
=
1
n
(
k
x
i
+
b
−
y
i
)
=
0
\frac{\partial }{\partial b}E(k, b)=\frac{2}{n}\sum_{i=1}^n(kx_i+b-y_i)=0
∂b∂E(k,b)=n2i=1∑n(kxi+b−yi)=0
即:
∑
i
=
1
n
(
k
x
i
+
b
−
y
i
)
=
0
\sum_{i=1}^n(kx_i+b-y_i)=0
i=1∑n(kxi+b−yi)=0
∑
i
=
1
n
b
=
n
b
=
∑
i
=
1
n
(
y
i
−
k
x
i
)
\sum_{i=1}^n b=nb=\sum_{i=1}^n(y_i-kx_i)
i=1∑nb=nb=i=1∑n(yi−kxi)
b
=
1
n
∑
i
=
1
n
(
y
i
−
k
x
i
)
=
1
n
∑
i
=
1
n
y
i
−
k
⋅
1
n
∑
i
=
1
n
x
i
b=\frac{1}{n} \sum_{i=1}^n(y_i-kx_i)=\frac{1}{n} \sum_{i=1}^ny_i- k \cdot \frac{1}{n} \sum_{i=1}^n x_i
b=n1i=1∑n(yi−kxi)=n1i=1∑nyi−k⋅n1i=1∑nxi
将其中
1
n
∑
i
=
1
n
x
i
\frac{1}{n}\sum_{i=1}^nx_i
n1∑i=1nxi和
1
n
∑
i
=
1
n
y
i
\frac{1}{n}\sum_{i=1}^ny_i
n1∑i=1nyi分别为写为均值的形式,可得:
b
=
y
‾
−
k
x
‾
b=\overline y- k \overline x
b=y−kx
令对
k
k
k的一阶偏导等于0有:
∂
∂
k
E
(
k
,
b
)
=
2
n
[
k
∑
i
=
1
n
x
i
2
−
∑
i
=
1
n
(
y
i
−
b
)
x
i
]
]
=
0
\frac{\partial }{\partial k}E(k, b)=\frac{2}{n} \Big [k \sum_{i=1}^n{x_i}^2 -\sum_{i=1}^n(y_i-b)x_i \Big ]]=0
∂k∂E(k,b)=n2[ki=1∑nxi2−i=1∑n(yi−b)xi]]=0
k
∑
i
=
1
n
x
i
2
=
∑
i
=
1
n
y
i
x
i
−
∑
i
=
1
n
b
x
i
k \sum_{i=1}^n{x_i}^2 = \sum_{i=1}^ny_ix_i -\sum_{i=1}^n bx_i
ki=1∑nxi2=i=1∑nyixi−i=1∑nbxi
将上面算出得b的值代入公式有:
k
∑
i
=
1
n
x
i
2
=
∑
i
=
1
n
y
i
x
i
−
∑
i
=
1
n
[
1
n
∑
i
=
1
n
(
y
i
−
k
x
i
)
]
x
i
=
∑
i
=
1
n
y
i
x
i
−
1
n
∑
i
=
1
n
x
i
∑
i
=
1
n
(
y
i
−
k
x
i
)
=
∑
i
=
1
n
y
i
x
i
−
x
‾
∑
i
=
1
n
(
y
i
−
k
x
i
)
=
∑
i
=
1
n
y
i
x
i
−
x
‾
∑
i
=
1
n
y
i
+
x
‾
∑
i
=
1
n
k
x
i
k \sum_{i=1}^n{x_i}^2 = \sum_{i=1}^ny_ix_i -\sum_{i=1}^n \Big [\frac{1}{n} \sum_{i=1}^n(y_i- kx_i)\Big ] x_i \\ =\sum_{i=1}^ny_ix_i -\frac{1}{n}\sum_{i=1}^n x_i \sum_{i=1}^n(y_i- kx_i) \\ =\sum_{i=1}^ny_ix_i - \overline x \sum_{i=1}^n(y_i- kx_i) \\ =\sum_{i=1}^ny_ix_i - \overline x \sum_{i=1}^ny_i + \overline x \sum_{i=1}^n kx_i
ki=1∑nxi2=i=1∑nyixi−i=1∑n[n1i=1∑n(yi−kxi)]xi=i=1∑nyixi−n1i=1∑nxii=1∑n(yi−kxi)=i=1∑nyixi−xi=1∑n(yi−kxi)=i=1∑nyixi−xi=1∑nyi+xi=1∑nkxi
即有:
k
∑
i
=
1
n
x
i
2
−
k
x
‾
∑
i
=
1
n
x
i
=
∑
i
=
1
n
y
i
x
i
−
∑
i
=
1
n
y
i
x
‾
=
∑
i
=
1
n
y
i
(
x
i
−
x
‾
)
k \sum_{i=1}^n{x_i}^2- k \overline x \sum_{i=1}^n x_i =\sum_{i=1}^ny_ix_i - \sum_{i=1}^n y_i \overline x =\sum_{i=1}^ny_i(x_i - \overline x)
ki=1∑nxi2−kxi=1∑nxi=i=1∑nyixi−i=1∑nyix=i=1∑nyi(xi−x)
k
(
∑
i
=
1
n
x
i
2
−
1
n
∑
i
=
1
n
x
i
∑
i
=
1
n
x
i
)
=
∑
i
=
1
n
y
i
(
x
i
−
x
‾
)
k (\sum_{i=1}^n{x_i}^2- \frac{1}{n} \sum_{i=1}^n x_i \sum_{i=1}^n x_i) =\sum_{i=1}^ny_i(x_i - \overline x)
k(i=1∑nxi2−n1i=1∑nxii=1∑nxi)=i=1∑nyi(xi−x)
即可推出
k
=
∑
i
=
1
n
y
i
(
x
i
−
x
‾
)
∑
i
=
1
n
x
i
2
−
1
n
(
∑
i
=
1
n
x
i
)
2
k =\frac{\sum\limits_{i=1}^ny_i(x_i - \overline x)}{\sum\limits_{i=1}^n{x_i}^2- \frac{1}{n} (\sum\limits_{i=1}^n x_i)^2}
k=i=1∑nxi2−n1(i=1∑nxi)2i=1∑nyi(xi−x)
矩方法
另一种求解斜率
k
k
k和截距
b
b
b的方法是通过协方差和方差的关系。
因为
Y
=
k
X
+
b
Y=kX+b
Y=kX+b,所以
E
Y
=
k
E
X
+
b
EY=kEX+b
EY=kEX+b
可解得:
b
=
E
Y
−
k
E
X
b=EY−kEX
b=EY−kEX
又因为
X
Y
=
k
X
2
+
b
X
XY=kX^2+bX
XY=kX2+bX,所以
E
X
Y
=
k
E
X
2
+
b
E
X
EXY=kEX^2+bEX
EXY=kEX2+bEX
联立两个式子可得:
k
=
E
X
Y
−
E
X
E
Y
E
X
2
−
(
E
X
)
2
=
C
O
V
(
X
,
Y
)
D
X
k=\frac{EXY-EXEY}{EX^2-(EX)^2}=\frac{COV(X,Y)}{DX}
k=EX2−(EX)2EXY−EXEY=DXCOV(X,Y)
最大似然法
最大似然估计的思想是将抽出的样本视为从总体中被抽中的概率最大的情况,所以这些样本的联合分布密度或联合概率分布为最大值时,模型的估计值最准确。具体原理可参考https://blog.csdn.net/qq_42692386/article/details/139919043
对于线性回归模型
y
=
b
+
k
x
+
ε
y=b+kx+\varepsilon
y=b+kx+ε,假设残差
ε
\varepsilon
ε服从均值为0、方差为
σ
2
\sigma ^{2}
σ2正态分布,
x
i
x_{i}
xi是与
y
i
y_{i}
yi相关的非随机样本,则
y
i
∼
N
(
b
+
k
x
i
,
σ
2
)
y_{i}\sim N(b+kx_{i},\sigma ^{2})
yi∼N(b+kxi,σ2),
y
i
y_{i}
yi的分布密度函数为:
f
i
(
y
i
)
=
1
2
π
σ
e
x
p
[
−
1
2
σ
2
[
y
i
−
(
b
+
k
x
i
)
]
2
]
f_{i}\left ( y_{i} \right )=\frac{1}{\sqrt{2\pi}\sigma }exp\left [ -\frac{1}{2\sigma ^{2}}\left [ y_{i}-(b +kx_{i}) \right ]^{2} \right ]
fi(yi)=2πσ1exp[−2σ21[yi−(b+kxi)]2]
样本
y
1
,
y
2
,
.
.
.
,
y
n
y_{1},y_{2},...,y_{n}
y1,y2,...,yn的联合密度分布函数为:
L
(
y
1
,
y
2
,
.
.
.
,
y
n
;
k
,
b
)
=
∏
i
=
1
n
f
i
(
y
i
)
=
(
2
π
σ
2
)
−
n
2
e
x
p
[
−
1
2
σ
2
∑
i
=
1
n
[
y
i
−
(
b
+
k
x
i
)
]
2
]
L(y_{1},y_{2},...,y_{n};k,b)=\prod_{i=1}^{n}f_{i}\left ( y_{i} \right )=(2 \pi \sigma^2)^{-\frac{n}{2}}exp\left [ -\frac{1}{2\sigma ^{2}}\sum_{i=1}^{n} \left [ y_{i}-(b+kx_{i}) \right ]^{2} \right ]
L(y1,y2,...,yn;k,b)=i=1∏nfi(yi)=(2πσ2)−2nexp[−2σ21i=1∑n[yi−(b+kxi)]2]
取对数后:
l
n
(
L
)
=
−
n
2
l
n
(
2
π
σ
2
)
−
1
2
σ
2
∑
i
=
1
n
[
y
i
−
b
−
k
x
i
]
2
ln(L)=-\frac{n}{2}ln(2\pi\sigma^2)-\frac{1}{2\sigma^2}\sum_{i=1}^{n}[y_{i}-b-kx_{i}]^2
ln(L)=−2nln(2πσ2)−2σ21i=1∑n[yi−b−kxi]2
等价于求 ∑ i = 1 n [ y i − b + k x i ] 2 \sum_{i=1}^{n}[y_{i}-b+kx_{i}]^2 i=1∑n[yi−b+kxi]2 的极小值,回到上面讲到的最小二乘法的原理。整理后即可得到结果
本文来自博客园,作者:Smilecoc,转载请注明原文链接:https://www.cnblogs.com/smilecoc/p/18724308
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码