下面的内容为大家讲解关于非线性回归的内容,下面先带着大家回顾一下回归方程
回归方程
- 利用样本数据建立因变量(预报量)与一个或者多个自变量(预报因子)之间的统计关系经验方程式(回归方程),用以描述预报量随自变量的平均变化情况,并据此对于预报量未来状态进行估计。
其中,根据预报因子的数量可以划分为一元回归和多元回归;进一步又可以划分为线性回归与非线性回归
线性回归
一元线性回归的关键:
- 确定回归方程 / 确定回归系数
一元线性回归方程通常表现形式
- 预报量的估计量 = 回归系数a + 回归系数b*预报因子
如何确定回归系数
主要取决于以下两点:
-
回归系数应该对于y的估计值与y观测值的总的偏差尽可能小
-
使用偏差平方来反映绝对偏差的情况,消除偏差符号的影响
即
∑ i = 1 n ( y i − y ^ i ) 2 达到最小值 \sum_{i=1}^n{\left( y_i-\hat{y}_i \right)}^2\ \text{达到最小值} i=1∑n(yi−y^i)2 达到最小值
如何理解呢? y ^ \hat{y} y^是什么呢,请看下面这张图:
所以实际上就是计算观测值 y y y与估计值 y ^ \hat{y} y^之间偏差平方和的最小值,即残差平方和,表现为:
Q ≡ ∑ i = 1 n ( y i − y ^ i ) 2 = ∑ i = 1 n ( y i − b 0 − b x i ) 2 → m i n Q\equiv \sum_{i=1}^n{\left( y_i-\hat{y}_i \right)}^2=\sum_{i=1}^n{\left( y_i-b_0-bx_i \right)}^2\rightarrow min Q≡i=1∑n(yi−y^i)2=i=1∑n(yi−b0−bxi)2→min
要使得Q最小,根据高数极值原理,其必要条件为:
{ ∂ Q ∂ b 0 = 0 ∂ Q ∂ b = 0 ⟶ { − 2 ∑ i = 1 n ( y i − b 0 − b x i ) = 0 − 2 ∑ i = 1 n ( y i − b 0 − b x i ) x i = 0 \left\{ \begin{array}{l} \frac{\partial Q}{\partial b_0}=0\\ \frac{\partial Q}{\partial b}=0\\ \end{array} \right. \longrightarrow \left\{ \begin{array}{l} -2\sum_{i=1}^n{\left( y_i-b_0-bx_i \right)}=0\\ -2\sum_{i=1}^n{\left( y_i-b_0-bx_i \right)}x_i=0\\ \end{array} \right. {∂b0∂Q=0∂b∂Q=0⟶{−2∑i=1n(yi−b0−bxi)=0−2∑i=1n(yi−b0−bxi)xi=0
也就是说对于他的回归系数分别求偏导,具体的求解过程我会写在黑板上。下面直接给出结果:
b
=
s
x
y
s
x
2
b=\frac{s_{xy}}{s_{x}^{2}}
b=sx2sxy
b
0
=
y
ˉ
−
b
x
ˉ
b_0=\bar{y}-b\bar{x}
b0=yˉ−bxˉ
其中,
x ˉ = 1 n ∑ i = 1 n x i ; y ˉ = 1 n ∑ i = 1 n y i \bar{x}=\frac{1}{n}\sum_{i=1}^n{x}_i\quad ;\quad \bar{y}=\frac{1}{n}\sum_{i=1}^n{y}_i xˉ=n1i=1∑nxi;yˉ=n1i=1∑nyi
s x 2 = 1 n ∑ i = 1 n ( x i − x ˉ ) 2 ; s x y = 1 n ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) s_{x}^{2}=\frac{1}{n}\sum_{i=1}^n{\left( x_i-\bar{x} \right)}^2;s_{xy}=\frac{1}{n}\sum_{i=1}^n{\left( x_i-\bar{x} \right)}\left( y_i-\bar{y} \right) sx2=n1i=1∑n(xi−xˉ)2;sxy=n1i=1∑n(xi−xˉ)(yi−yˉ)
这样就得到了回归系数的表达结果,那么,以上以预报因子x
预报得到的
y
^
\hat {y}
y^,仅仅是一个估计值,如何评估其与真值之间的差别呢?
可以根据方差来评估,即:
预报量的方差 = 回归估计值的方差 + 误差方差
三个方差的关系以及含义,如下所示,每一项的具体推导这里我也会在黑板上演示
对于回归方差来说, S y ^ 2 S^2_{\hat{y}} Sy^2 越大,残差 S e 2 S^2_{e} Se2越小,回归效果越好;为了便于不同变量回归效果的比较,可以定义无量纲回归效果指数,即解释方差,又称为判决系数
R 2 = s y ^ 2 s y 2 R^2=\frac{s_{\hat{y}}^2}{s_y^2} R2=sy2sy^2
R 2 R^2 R2越大,回归效果越好,表示两者之间的关系越密切。
R 2 = s y ^ 2 s y 2 = b 2 s x 2 s y 2 = s x y s x 2 s x y s x 2 s x 2 s y 2 = r 2 R^2=\frac{s_{\hat{y}}^2}{s_y^2}=\frac{b^2s_x^2}{s_y^2}=\frac{s_{xy}}{s_x^2}\frac{s_{xy}}{s_x^2}\frac{s_x^2}{s_y^2}=r^2 R2=sy2sy^2=sy2b2sx2=sx2sxysx2sxysy2sx2=r2
此外,解释方差相当于相关系数的平方,回归效果取决于相关系数平方的大小。
示例演示
下面找两个图来演示回归的作用
其实现回归的方法如下:
- 将未滤波的变量通过线性回归的方法投影到EOF第一模态的PC时间序列上,重建三维波列结构
上图显示了回归得到500 h Pa 相对涡度、总雨强、深对流雨强、浅对流雨强、层云雨强的时间序列,结果表明:深对流和层云降水事件与500 h Pa相对涡度几乎同步发生,浅对流降水发生在最深对流之后
- 回归高度-时间图:( a )经向风,( b )温度,( c )散度,( d )比湿。
回归得到的TD波结构显示如下特征:
- 包括扰动中心前部中层辐散、中心附近低层辐合叠加高层辐散、温度异常中存在垂直偶极子结构、波中心附近对流层中低层水汽增强。
多元线性回归
多元线性回归是指,对于一个预报量
y
y
y,研究多个预报因子(假如有
p
p
p个因子),𝑥_1,𝑥_2…,𝑥_𝑝
与它的线性统计关系,第𝑖次观测的因子值(𝑛个随机变量)为𝑥_{𝑖1},𝑥_{𝑖2},⋯,𝑥_{𝑖𝑝},
参考一元线性回归的表示式,可以得到以下形式:
y 1 = β 0 + β 1 x 11 + β 2 x 12 + ⋯ + β p x 1 p + e 1 y 2 = β 0 + β 1 x 21 + β 2 x 22 + ⋯ + β p x 2 p + e 2 . . . y p = β 0 + β 1 x n 1 + β 2 x n 2 + ⋯ + β p x n p + e n \begin{aligned} y_1&=\beta _0+\beta _1x_{11}+\beta _2x_{12}+\cdots +\beta _px_{1p}+e_1\\ y_2&=\beta _0+\beta _1x_{21}+\beta _2x_{22}+\cdots +\beta _px_{2p}+e_2\\ ...\\ y_p&=\beta _0+\beta _1x_{n1}+\beta _2x_{n2}+\cdots +\beta _px_{np}+e_n\\ \end{aligned} y1y2...yp=β0+β1x11+β2x12+⋯+βpx1p+e1=β0+β1x21+β2x22+⋯+βpx2p+e2=β0+β1xn1+β2xn2+⋯+βpxnp+en
其中, β \beta β为估计参数, e e e为残差,残差互相独立,可以将其写为矩阵形式
y = X β + e y=X\beta +e y=Xβ+e
y = [ y 1 y 2 ⋮ y n ] , β = [ β 0 β 1 ⋮ β p ] , e = [ e 1 e 2 ⋮ e n ] y=\left[ \begin{array}{c} y_1\\ y_2\\ \vdots\\ y_n\\ \end{array} \right] ,\quad \boldsymbol{\beta }=\left[ \begin{array}{c} \beta _0\\ \beta _1\\ \vdots\\ \beta _p\\ \end{array} \right] ,\quad \boldsymbol{e}=\left[ \begin{array}{c} e_1\\ e_2\\ \vdots\\ e_n\\ \end{array} \right] y= y1y2⋮yn ,β= β0β1⋮βp ,e= e1e2⋮en
X
X
X 为因子矩阵,阵中多引入一个常数变量𝑥_0
,其数值为1,即
X = [ 1 x 11 x 12 ⋯ x p 1 x 21 x 22 ⋯ x 2 p ⋮ ⋮ ⋮ ⋮ 1 x n 1 x n 2 ⋯ x n p ] \boldsymbol{X}=\left[ \begin{matrix} 1& x_{11}& x_{12}& \cdots& x_p\\ 1& x_{21}& x_{22}& \cdots& x_{2p}\\ \vdots& \vdots& \vdots& & \vdots\\ 1& x_{n1}& x_{n2}& \cdots& x_{np}\\ \end{matrix} \right] X= 11⋮1x11x21⋮xn1x12x22⋮xn2⋯⋯⋯xpx2p⋮xnp
进行估计,得到估计的多元线性回归方程,𝑏_0,𝑏_1,𝑏_2…,𝑏_𝑝
是 𝛽_0,𝛽_1,𝛽_2…,𝛽_𝑝
的估计,
y
^
=
b
0
+
b
1
x
1
+
b
2
x
2
+
⋯
+
b
p
x
p
\hat{y}=b_0+b_1x_1+b_2x_2+\cdots +b_px_p
y^=b0+b1x1+b2x2+⋯+bpxp
也可以表现为矩阵的形式:
y
^
=
X
b
\hat{y}=Xb
y^=Xb
其中,
$$
\hat{y}=\left[ \begin{array}{c}
\hat{y}1\
\hat{y}2\
\vdots\
\hat{y}n\
\end{array} \right]
,
\boldsymbol{X}=\left[ \begin{matrix}
1& x{11}& x{12}& \cdots& x_p\
1& x{21}& x_{22}& \cdots& x_{2p}\
\vdots& \vdots& \vdots& & \vdots\
1& x_{n1}& x_{n2}& \cdots& x_{np}\
\end{matrix} \right]
,
b=\left[ \begin{array}{c}
b_0\
b_1\
\vdots\
b_p\
\end{array} \right]
$$
- 多元线性回归方程的矩阵形式,𝑋 为因子矩阵,𝑏为回归系数向量
如何确定估计参数呢?
- 和之前一元线性回归类似,使得全部的预报量观测值和回归估计值的差值平方和达到最小
Q = ∑ i = 1 n ( y i − y ^ i ) 2 ⟶ 最小 Q=\sum_{i=1}^n{\left( y_i-\hat{y}_i \right)}^2\longrightarrow \text{最小} Q=i=1∑n(yi−y^i)2⟶最小
$$
y=X\beta +e
,
\hat{y}=Xb
,
\text{残差}e\ =\ y-\hat{y}=y-Xb
$$
最小二乘法的目标是最小化残差平方和,即$\lVert e^2 \rVert \ $,最小化,表示为残差的范数的平方和
所以,优化问题为 min b ∥ y − X b ∥ 2 \underset{b}{\min}\lVert y-Xb \rVert ^2 bmin∥y−Xb∥2
可以通过求解正规方程来找到参数 b b b的最佳估计值,
X T X b = X T y X^TXb=X^Ty XTXb=XTy
当然,这么直接得到上面的正规方程有点跨越太大,这里做出展开推导:
- 预报量观测向量与回归估计向量之差的内积即它们的分量的差值平方和
所以,
Q
=
(
y
−
y
^
)
′
(
y
−
y
^
)
=
(
y
−
X
b
)
′
(
y
−
X
b
)
=
y
′
y
−
b
′
X
′
y
−
y
′
X
b
+
b
′
X
′
X
b
Q=(y-\hat{y})^{\prime}(y-\hat{y})=(y-Xb)^{\prime}(y-Xb)=y^{\prime}y-b^{\prime}X^{\prime}y-y^{\prime}Xb+b^{\prime}X^{\prime}Xb
Q=(y−y^)′(y−y^)=(y−Xb)′(y−Xb)=y′y−b′X′y−y′Xb+b′X′Xb
Q为非负二次式,最小值存在,由微分极值原理,有:
∂ Q ∂ b = ∂ ( y ′ y ) ∂ b − ∂ ( b ′ X ′ y ) ∂ b − ∂ ( y ′ X b ) ∂ b + ∂ ( b ′ X ′ X b ) ∂ b = 0 \frac{\partial Q}{\partial b}=\frac{\partial(y^{\prime}y)}{\partial b}-\frac{\partial(b^{\prime}X^{\prime}y)}{\partial b}-\frac{\partial(y^{\prime}Xb)}{\partial b}+\frac{\partial(b^{\prime}X^{\prime}Xb)}{\partial b}=0 ∂b∂Q=∂b∂(y′y)−∂b∂(b′X′y)−∂b∂(y′Xb)+∂b∂(b′X′Xb)=0
其中,等号右边第一项不是b的函数,偏微分为0
第二、第三项有:
∂
(
b
′
X
′
y
)
∂
b
=
X
′
y
\frac{\partial(\boldsymbol{b}^{\prime}\boldsymbol{X}^{\prime}\boldsymbol{y})}{\partial\boldsymbol{b}}=\boldsymbol{X}^{\prime}\boldsymbol{y}
∂b∂(b′X′y)=X′y
第四项为:
∂
(
b
′
X
′
X
b
)
∂
b
=
2
X
′
X
b
,
所以
∂
Q
∂
b
=
2
X
′
X
b
−
2
X
′
y
=
0
,
即得
\frac{\partial\left(b^{\prime}X^{\prime}Xb\right)}{\partial b}=2X^{\prime}Xb,\text{所以}\frac{\partial Q}{\partial b}=2X^{\prime}Xb-2X^{\prime}y=0,\text{即得}
∂b∂(b′X′Xb)=2X′Xb,所以∂b∂Q=2X′Xb−2X′y=0,即得
整理可得:
X T X b = X T y X^TXb=X^Ty XTXb=XTy
其中
X
′
X
X'X
X′X称为标准方程组系数矩阵,展开为:
{
n
b
0
+
b
1
∑
i
=
1
n
x
i
1
+
⋯
+
b
p
∑
i
=
1
n
x
i
p
=
∑
i
=
1
n
y
i
b
0
∑
i
=
1
n
x
i
1
+
b
1
∑
i
=
1
n
x
i
p
2
+
⋯
+
b
p
∑
i
=
1
n
x
i
1
x
i
p
=
∑
i
=
1
n
x
i
1
y
i
.
.
.
.
.
.
.
.
.
.
.
.
b
0
∑
i
=
1
n
x
i
p
+
b
1
∑
i
=
1
n
x
i
p
x
i
1
+
⋯
+
b
p
∑
i
=
1
n
x
i
p
2
=
∑
i
=
1
n
x
i
p
y
i
\left\{ \begin{array}{l} nb_0+b_1\sum_{i=1}^n{x_{i1}}+\cdots +b_p\sum_{i=1}^n{x_{ip}}=\sum_{i=1}^n{y_i}\\ b_0\sum_{i=1}^n{x_{i1}}+b_1\sum_{i=1}^n{x_{ip}^{2}}+\cdots +b_p\sum_{i=1}^n{x_{i1}}x_{ip}=\sum_{i=1}^n{x_{i1}}y_i\\ ............\\ b_0\sum_{i=1}^n{x_{ip}}+b_1\sum_{i=1}^n{x_{ip}}x_{i1}+\cdots +b_p\sum_{i=1}^n{x_{ip}^{2}}=\sum_{i=1}^n{x_{ip}}y_i\\ \end{array} \right.
⎩
⎨
⎧nb0+b1∑i=1nxi1+⋯+bp∑i=1nxip=∑i=1nyib0∑i=1nxi1+b1∑i=1nxip2+⋯+bp∑i=1nxi1xip=∑i=1nxi1yi............b0∑i=1nxip+b1∑i=1nxipxi1+⋯+bp∑i=1nxip2=∑i=1nxipyi
向量b(回归系数解),即为参数β的最小二乘估计:
b = X ′ X − 1 X ′ y b= X'X^{-1}X'y b=X′X−1X′y
同理得到:
三个平方和的关系为:
- 解释方差为:
R 2 = U S y y = 1 − Q S y y R^2=\frac U{S_{yy}}=1-\frac Q{S_{yy}} R2=SyyU=1−SyyQ
R 2 R^2 R2表示全体预报因子所能解释的预报量方程百分比,取值范围为[0,1], R 2 R^2 R2越大越好
非线性回归
定义
- 非线性回归生成一个用于描述连续响应变量与一个或多个预测变量之间的非线性关系的方程,并预测新观测值。
如果两个变量之间的关系不是线性的,则上升速率或下降速率可能会随着一个变量变化而变化,这会导致数据中出现“曲线模式”。
下面是简单的示意图;
非线性回归模型一般形式
y i = f ( x i , γ ) + e i y_i=f\left( \boldsymbol{x}_{\boldsymbol{i}},\boldsymbol{\gamma } \right) +e_i yi=f(xi,γ)+ei
其中,
x i \boldsymbol{x}_{\boldsymbol{i}} xi 为含p个因子变量的第i个样品向量, γ \boldsymbol{\gamma \ } γ 为非线性回归系数向量, e i e_i ei为误差
$
y_i
$
为第i个样品的预报量,$ f(\boldsymbol{x}_{\boldsymbol{i}},\boldsymbol{\gamma })$ 为
x
i
\boldsymbol{x}_{\boldsymbol{i}}
xi的任意非线性函数
使用高斯-牛顿方法来确定非线性回归系数向量,对 x i \boldsymbol{x}_{\boldsymbol{i}} xi及 γ \boldsymbol{\gamma \ } γ 的非线性函数
$f( \boldsymbol{x}_{\boldsymbol{i}},\boldsymbol{\gamma}) $
在回归系数 p + 1 p+1 p+1维空间中任一点 γ ( 0 ) \boldsymbol{\gamma }^{( 0 )} γ(0) 附近邻域做泰勒展开
f ( x i , γ ) ≅ f ( x i , γ ) + ∑ k = 0 p [ ∂ f ( x i , γ ) ∂ γ k ] γ − γ ( 0 ) ⋅ ( γ − γ ( 0 ) ) f\left( x_i,\gamma \right) \cong f\left( x_i,\gamma \right) +\sum_{k=0}^p{\left[ \frac{\partial f\left( x_i,\gamma \right)}{\partial \gamma _k} \right]}_{\gamma -\gamma ^{\left( 0 \right)}}\cdot \left( \gamma -\gamma ^{\left( 0 \right)} \right) f(xi,γ)≅f(xi,γ)+k=0∑p[∂γk∂f(xi,γ)]γ−γ(0)⋅(γ−γ(0))
式中,
γ ( 0 ) = [ γ 0 ( 0 ) γ 1 ( 0 ) ⋮ γ p ( 0 ) ] \gamma ^{\left( 0 \right)}=\left[ \begin{array}{c} \gamma _{0}^{\left( 0 \right)}\\ \gamma _{1}^{\left( 0 \right)}\\ \vdots\\ \gamma _{p}^{\left( 0 \right)}\\ \end{array} \right] γ(0)= γ0(0)γ1(0)⋮γp(0)
为了方便说明,这里令
{ f i ( 0 ) = f ( x i , γ ( 0 ) ) β k ( 0 ) = γ k − γ k ( 0 ) D i k ( 0 ) = [ ∂ f ( x i , γ ) ∂ γ k ] γ − γ ( 0 ) \left\{ \begin{array}{l} f_{i}^{\left( 0 \right)}=f\left( \boldsymbol{x}_i,\boldsymbol{\gamma }^{\left( 0 \right)} \right)\\ \beta _{k}^{\left( 0 \right)}=\boldsymbol{\gamma }_k-\boldsymbol{\gamma }_{k}^{\left( 0 \right)}\\ D_{ik}^{\left( 0 \right)}=\left[ \frac{\partial f\left( \boldsymbol{x}_i,\boldsymbol{\gamma } \right)}{\partial \boldsymbol{\gamma }_k} \right] _{\gamma -\boldsymbol{\gamma }^{\left( 0 \right)}}\\ \end{array} \right. ⎩ ⎨ ⎧fi(0)=f(xi,γ(0))βk(0)=γk−γk(0)Dik(0)=[∂γk∂f(xi,γ)]γ−γ(0)
则非线性函数的泰勒展开表示为:
f ( x i , γ ) ≅ f i ( 0 ) + ∑ k = 0 p D i k ( 0 ) β k ( 0 ) f\left( x_i,\gamma \right) \cong f_{i}^{\left( 0 \right)}+\sum_{k=0}^p{D}_{ik}^{\left( 0 \right)}\beta _{k}^{\left( 0 \right)} f(xi,γ)≅fi(0)+k=0∑pDik(0)βk(0)
将其带入
y i = f ( x i , y ) + e i y_i=f\left( x_i,y \right) +e_i yi=f(xi,y)+ei
得到:
y i = f i ( 0 ) + ∑ k = 0 p D i k ( 0 ) β k ( 0 ) + e i y_i=f_{i}^{\left( 0 \right)}+\sum_{k=0}^p{D}_{ik}^{\left( 0 \right)}\beta _{k}^{\left( 0 \right)}+e_i yi=fi(0)+k=0∑pDik(0)βk(0)+ei
若令
y
i
(
0
)
=
y
i
−
f
i
(
0
)
y_{i}^{\left( 0 \right)}=y_i-f_{i}^{\left( 0 \right)}
yi(0)=yi−fi(0)
上式变为:
y i ( 0 ) = ∑ k = 1 p D i k ( 0 ) β k ( 0 ) + e i y_{i}^{\left( 0 \right)}=\sum_{k=1}^p{D}_{ik}^{\left( 0 \right)}\beta _{k}^{\left( 0 \right)}+e_i yi(0)=k=1∑pDik(0)βk(0)+ei
即一般的非线性回归模型,这是可以把
D k ( 0 ) ( k = 0 , 1 , ⋯ , p ) D_{k}^{\left( 0 \right)}\left( k=0,1,\cdots ,p \right) Dk(0)(k=0,1,⋯,p)
看作是P+1 个变量,于是回归系数向量 β ( 0 ) \beta _{\left( 0 \right)} β(0)的估计值容易用计算多元线性回归的方法求解
简单理解
当然,上面的推导过程看起来有点抽象,我下面换个容易看懂的方式。
如下面的非线性回归模型,表示为
$$
y = f(X,\beta)+\epsilon
$$
其中, β \beta β为回归系数, ϵ \epsilon ϵ为误差,为了求解上述模型,可以通过求解最小二乘估计量(极大似然估计量)的方法,即将期望函数线性化,然后利用Gauss-Newton迭代法进行求解。
Gauss-Newton法的步骤为:
- 1、选定初始值
- 1.1 根据经验给出
- 1.2 用分段法给出初始值
- 1.3 对于可线性化的非线性模型,通过线性化,然后使用最小平方法求解初始值
- 2、 使用泰勒展开式
那么,针对上面的回归模型,如何进行泰勒展开呢?
- 在数学上,对于一个在实数或复数𝑎邻域上,以实数作为变量或以复数作为变量的函数,并且是无穷可微的函数𝑓(𝑥),它的泰勒级数是以下这种形式的幂级数:
∑ n = 0 ∞ f ( n ) ( a ) n ! ( x − a ) n \sum_{n=0}^\infty\frac{f^{(n)}(a)}{n!}(x-a)^n n=0∑∞n!f(n)(a)(x−a)n
对于 y = f ( x , β ) + ϵ y = f(x,\beta)+\epsilon y=f(x,β)+ϵ,在 β = b 0 \beta = b_0 β=b0处进行泰勒展开,忽略二次想:
y = f ( X , β ) + ϵ = f ( X , b 0 ) + ∂ f ( X , β ) ∂ β T ( β − b 0 ) + ϵ y=f\left(X,\beta\right)+\epsilon=f\left(X,b_{0}\right)+\frac{\partial f\left(X,\beta\right)}{\partial\beta^{\mathrm{T}}}(\beta-b_{0})+\epsilon y=f(X,β)+ϵ=f(X,b0)+∂βT∂f(X,β)(β−b0)+ϵ
进行如下假设:
y 0 = y − f ( X , b 0 ) = y − f 0 , θ 0 = β − b 0 , D 0 = [ ∂ f ( X , β ) ∂ β T ] β = b 0 y_0=y-f\left(X,b_0\right)=y-f_0\text{,}\theta_0=\beta-b_0\text{,}D_0=\left[\frac{\partial f(X,\beta)}{\partial\beta^\mathrm{T}}\right]_{\beta=b_0} y0=y−f(X,b0)=y−f0,θ0=β−b0,D0=[∂βT∂f(X,β)]β=b0
那么,得到:
y 0 = D 0 θ 0 + ϵ y_0=D_0\theta_0+\epsilon y0=D0θ0+ϵ
如果将其看作是矩阵的话,就和上面的推导结果一致了。
求解回归系数
所以 θ 0 \theta_0 θ0的最小二乘估计量为,
θ ^ 0 = ( D 0 T D 0 ) − 1 D 0 T y 0 = ( D 0 T D 0 ) − 1 D 0 T ( y − f 0 ) \begin{aligned} \hat{\theta}_{0}& =\left(D_0^\mathrm{T}D_0\right)^{-1}D_0^\mathrm{T}y_0 \\ &=\left(D_0^\mathrm{T}D_0\right)^{-1}D_0^\mathrm{T}\left(y-f_0\right) \end{aligned} θ^0=(D0TD0)−1D0Ty0=(D0TD0)−1D0T(y−f0)
- 这和之前多元线性回归方程中通过求解正规方程来找到参数 b b b的最佳估计值的方法类似,
因为 θ 0 = β − b 0 \theta_0 = \beta - b_0 θ0=β−b0,那么用$b_1 = b_0 +\hat{\theta}_{0} $ 作为未知参数 β \beta β的一个修正估计,按照此逻辑不断迭代修正 β \beta β
即:
b k + 1 = b k + θ ^ k = b k + ( D k T D k ) − 1 D k T ( y − f k ) \begin{aligned} b_{k+1}& =b_k+\hat{\theta}_k \\ &=b_k+\left(D_k^\mathrm{T}D_k\right)^{-1}D_k^\mathrm{T}\left(y-f_k\right) \end{aligned} bk+1=bk+θ^k=bk+(DkTDk)−1DkT(y−fk)
当这种修正满足收敛条件时,或者是前后两个估计的改变很小时,即
∥
b
k
+
1
−
b
k
∥
∥
b
k
∥
<
δ
\frac{\|b_{k+1}-b_k\|}{\|b_k\|}<\delta
∥bk∥∥bk+1−bk∥<δ
迭代结束,其中, δ \delta δ是一个迭代终止的条件,一个很小的数。这也是梯度下降的原理,在深度学习中得到广泛应用,稍后在深度学习中的讲解中会更好的理解。
非线性回归系数计算
一般求非线性回归系数可以用迭代法求出,步骤如下:
-
给定回归系数向量, γ ^ ( 0 ) \hat{\gamma}^{\left( 0 \right)} γ^(0)一个初值
-
根据非线性函数求出: f i ( 0 ) ( i = 1 , 2 , ⋯ , n ) f_{i}^{\left( 0 \right)}\left( i=1,2,\cdots ,n \right) fi(0)(i=1,2,⋯,n)
-
根据 D i k ( 0 ) = [ ∂ f ( x i , γ ) ∂ γ k ] γ − γ ( 0 ) : D i k ( 0 ) ( k = 0 , 1 , 2 , ⋯ , p ) D_ik^{\left( 0 \right)}=\left[ \frac{\partial f\left( x_i,\gamma \right)}{\partial \gamma _k} \right] _{\gamma -\gamma ^{\left( 0 \right)}}:D_ik^{\left( 0 \right)}\left( k=0,1,2,\cdots ,p \right) Dik(0)=[∂γk∂f(xi,γ)]γ−γ(0):Dik(0)(k=0,1,2,⋯,p)
-
根据 y i ( 0 ) = y i − f i ( 0 ) y_{i}^{\left( 0 \right)}=y_i-f_{i}^{\left( 0 \right)} yi(0)=yi−fi(0) 求出: y i ( 0 ) y_{i}^{\left( 0 \right)} yi(0)
-
根据回归方程 y i ( 0 ) = ∑ k = 1 p D ik ( 0 ) β k ( 0 ) + e i y_{i}^{\left( 0 \right)}=\sum_{k=1}^p{D_{\text{ik}}^{\left( 0 \right)}}\beta _{k}^{\left( 0 \right)}+e_i yi(0)=∑k=1pDik(0)βk(0)+ei 计算得到线性回归系数估计。 β ^ k ( 0 ) , ( k = 0 , 1 , 2 , ⋯ , p ) \hat{\beta}_{k}^{\left( 0 \right)},\left( k=0,1,2,\cdots ,p \right) β^k(0),(k=0,1,2,⋯,p)
-
通过 β k ( 0 ) \beta _{k}^{\left( 0 \right)} βk(0) 求出下一次回归系数的估计: γ ^ k ( 1 ) = γ ^ k ( 0 ) = β ^ k ( 0 ) , ( k = 0 , 1 , ⋯ , p ) \hat{\gamma}_{k}^{\left( 1 \right)}=\hat{\gamma}_{k}^{\left( 0 \right)}=\hat{\beta}_{k}^{\left( 0 \right)},\left( k=0,1,\cdots ,p \right) γ^k(1)=γ^k(0)=β^k(0),(k=0,1,⋯,p)
-
计算残差平方和
对于非线性回归残差平方和仍表示为:
Q = ∑ i = 1 n ( y i − f ( x i , γ ^ ) ) 2 Q=\sum_{i=1}^n{\left( y_i-f\left( x_i,\hat{\gamma} \right) \right)}^2 Q=i=1∑n(yi−f(xi,γ^))2
一开始的残差平方和可表示为:
Q ( 0 ) = ∑ k = 1 p ( y i − f i ( 0 ) ) 2 Q^{\left( 0 \right)}=\sum_{k=1}^p{\left( y_i-f_{i}^{\left( 0 \right)} \right)}^2 Q(0)=∑k=1p(yi−fi(0))2
类似的,下一步的残差平方和表示为:
Q
(
1
)
=
∑
i
=
1
n
(
y
i
−
f
i
(
x
i
,
γ
^
(
1
)
)
)
2
=
∑
i
=
1
n
(
y
i
−
f
i
(
1
)
)
2
Q^{\left( 1 \right)}=\sum_{i=1}^n{\left( y_i-f_i\left( x_i,\boldsymbol{\hat{\gamma}}^{\left( 1 \right)} \right) \right)}^2=\sum_{i=1}^n{\left( y_i-f_{i}^{\left( 1 \right)} \right)}^2
Q(1)=i=1∑n(yi−fi(xi,γ^(1)))2=i=1∑n(yi−fi(1))2
此时,对于
Q
(
1
)
Q^{\left( 1 \right)}
Q(1)进行判断,
如果
Q
(
1
)
−
Q
(
0
)
Q^{\left( 1 \right)}-Q^{\left( 0 \right)}
Q(1)−Q(0)不够小,回到2继续过程,求出.
Q
(
2
)
,
.
.
.
,
Q
(
3
)
Q^{\left( 2 \right)},...,Q^{\left( 3 \right)}
Q(2),...,Q(3)进行判断
直到绝对值达到拟合精度,迭代结果后的
γ
^
k
(
3
)
\hat{\gamma}_{k}^{\left( 3 \right)}
γ^k(3)为最后的非线性回归系数,复相关系数表示为:
R 2 = S y y − Q ( s ) S y y R^2=\frac{S_{yy}-Q^{\left( s \right)}}{S_{yy}} R2=SyySyy−Q(s)
- 一些非线性函数,可以变化转化为线性函数,因此,曲线回归问题可以用线性回归进行处理
总结
- 掌握一元线性回归的推导
- 熟悉多元线性回归求解的方法
- 理解非线性回归的意义与一般表现形式
- 通过非线性回归方程的推导建立于深度学习方法的联系
泰勒级数:https://zh.wikipedia.org/wiki/%E6%B3%B0%E5%8B%92%E7%BA%A7%E6%95%B0
最小二乘法:https://zh.wikipedia.org/wiki/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95
高斯-牛顿迭代:https://baike.baidu.com/item/%E9%AB%98%E6%96%AF%E2%80%94%E7%89%9B%E9%A1%BF%E8%BF%AD%E4%BB%A3%E6%B3%95/15667583
回归示例图片来源:Feng, T., J. Yu, X. Yang, and R. Huang, 2020: Convective Coupling in Tropical-Depression-Type Waves. Part II: Moisture and Moist Static Energy Budgets. J. Atmos. Sci., 77, 3423–3440, https://doi.org/10.1175/JAS-D-19-0173.1.