创作不易,麻烦各位:点赞、收藏、关注!!!
作者: 天人实验室
前言
在上一篇文章(回归模型)中,我们以一元线性回归为例,对回归模型的基本理论进行了讲解。回归模型的建模过程,就是通过对问题的数据或原理的分析,选择合适的函数对题目的变量之间的关系进行描述,这个过程就是建模,这里我们需要给出合理的理由来解释最终选择函数的理由和依据。当然,建立的模型还需要包括模型参数的计算方法,结果评价(这个在下面将会讲解)
多元线性回归
根据自变量的数量,回归模型分为一元回归和多元回归模型,根据回归函数的形式,则又可以分为线性回归模型和非线性回归模型。下面,我们将对多元线性回归和非线性回归模型进行讲解。
多元线性回归模型是一种用于建立多个自变量和一个因变量之间关系的统计模型。它假设因变量与多个自变量之间存在线性关系,并通过拟合这个线性模型来进行预测和推断。多元线性回归模型与线性回归模型的原理是基本一致的。不同于一元线性回归模型,多元线性回归中的自变量数量在两个及以上。
以上文(回归模型)中体脂率和年龄的关系的研究为例。一元线性回归模型以年龄为自变量,而多元线性回归模型则具有更多变量,比如平均每天的碳水化合物摄入量。定义
x
1
x_1
x1表示年龄,
x
2
x_2
x2表示碳水化合物摄入量。
y
y
y表示体脂率,则建立多元回归模型如下:
y
=
a
0
+
a
1
∗
x
1
+
a
2
∗
x
2
+
ε
y=a_0+a_1*x_1+a_2*x_2+\varepsilon
y=a0+a1∗x1+a2∗x2+ε
其中
a
0
,
a
1
,
a
2
a_0, a_1, a_2
a0,a1,a2表示自变量的回归系数;
ε
\varepsilon
ε 表示随机误差项,也就是数据中无法解释的部分。之所以在回归模型中加入随机误差项,是因为通过线性方程
y
=
a
0
+
a
1
∗
x
1
+
a
2
∗
x
2
y=a_0+a_1*x_1+a_2*x_2
y=a0+a1∗x1+a2∗x2 是无法完全解释样本数据的。样本数据不会正好全部在某一直线中,而随机误差项就是这部分的无规律的数据的波动。
与一元线性回归模型相同,对于其中系数 a 0 , a 1 , a 2 a_0, a_1, a_2 a0,a1,a2的求解,也是使用相同的方法。也就是,将样本数据 ( x 11 , x 12 ) , ( x 21 , x 22 ) , ⋯ , ( x i 1 , x i 2 ) , ⋯ , ( x n 1 , x n 2 ) (x_{11},x_{12}), (x_{21},x_{22}), \cdots,(x_{i1},x_{i2}),\cdots ,(x_{n1},x_{n2}) (x11,x12),(x21,x22),⋯,(xi1,xi2),⋯,(xn1,xn2)代入到多元回归模型的函数中,找到使得估计值与真实值误差最小的一组系数。根据这个思想,建立多元回归模型系数求解的最小二乘目标函数:
m i n Q ( a 0 , a 1 , a 2 ) = ∑ i = 1 N ( y i − y ^ i ) 2 = ∑ i = 1 N ( y i − ( a 0 + a 1 x i 1 + a 2 x i 2 ) ) 2 ( 1 ) min \quad Q(a_0, a_1, a_2) = \sum_{i=1}^{N} (y_i - \hat{y}_i)^2=\sum_{i=1}^{N} (y_i - (a_0+a_1x_{i1}+a_2x_{i2}))^2 \quad \quad \quad (1) minQ(a0,a1,a2)=i=1∑N(yi−y^i)2=i=1∑N(yi−(a0+a1xi1+a2xi2))2(1)
公式(1)中的优化目标函数,我们可以写成向量表达形式,如公式(2)所示:
m
i
n
Q
(
a
)
=
∑
i
=
1
N
(
y
i
−
a
x
i
)
)
2
=
∣
∣
y
−
a
X
∣
∣
2
2
(
2
)
min \quad Q(\bold{a}) = \sum_{i=1}^{N} (y_i - \bold{ax}_i))^2 = || \bold{y} - \bold{aX} ||_2^2 \quad \quad \quad (2)
minQ(a)=i=1∑N(yi−axi))2=∣∣y−aX∣∣22(2)
其中
a
=
(
a
0
,
a
1
,
a
2
)
,
x
i
=
(
1
,
x
i
1
,
x
i
2
)
T
,
X
=
(
x
1
,
x
2
,
⋯
,
x
N
)
\bold{a} = (a_0,a_1,a_2),\bold{x}_i = (1,x_{i1},x_{i2})^T, \bold{X} = (\bold{x}_1, \bold{x}_2,\cdots,\bold{x}_N)
a=(a0,a1,a2),xi=(1,xi1,xi2)T,X=(x1,x2,⋯,xN)。对公式(2)中的目标函数进行求导,也就是求解系数向量
a
\bold{a}
a,使得总体的预测误差取得最小值:
∂
Q
(
a
)
∂
a
=
∂
∂
a
∣
∣
y
−
a
X
∣
∣
2
2
=
−
2
(
y
−
a
X
)
X
T
(
3
)
\frac{\partial Q(\bold{a})}{\partial \bold{a}} = \frac{\partial}{\partial \bold{a}} || \bold{y} - \bold{aX} ||_2^2 = -2(\bold{y} - \bold{aX})\bold{X}^T \quad \quad \quad (3)
∂a∂Q(a)=∂a∂∣∣y−aX∣∣22=−2(y−aX)XT(3)
令公式(3)中的导数
∂
Q
(
a
)
∂
a
=
0
\frac{\partial Q(\bold{a})}{\partial \bold{a}}=0
∂a∂Q(a)=0,则可以求解得到:
a = ( y X T ) ( X X T ) − 1 ( 4 ) \bold{a}= (\bold{yX}^T) (\bold{X}\bold{X}^T)^{-1} \quad \quad \quad (4) a=(yXT)(XXT)−1(4)
通过公式(4)则可以计算得到多元线性回归模型的系数。
曲线回归
\quad \quad 上述讲解了多个自变量条件下的多元线性回归模型及求解方法。这里我们继续讲解回归模型中的非线性回归模型。非线性回归模型就是通过非线性的函数来表达自变量 x x x 和因变量 y y y 之间的数量关系。
\quad \quad 值得注意的是,对于非线性回归模型,我们一般只考虑一元,也就是一个自变量的情况。
\quad \quad 常见的非线性回归函数包括:多项式函数(二次、三次曲线)、复合函数、对数函数、指数函数、幂函数等。常见曲线回归函数的数学模型表达式如下表所示:
对于曲线回归模型的求解,其原理与线性回归相同,都是要找到一组系数,使得估计结果
y
^
\hat{y}
y^ 与真实值
y
y
y 之间的误差最小。在求解过程中,通常将曲线函数转化为线性函数进行求解。这里,我们以指数函数为例,进行说明,比如我们建立的回归模型为:
y = a e b x ( 5 ) y = ae^{bx} \quad \quad \quad (5) y=aebx(5)
对公式(5)中的回归函数,我们左右分别取对数,则有
l n y = l n a + b x ( 6 ) lny = lna + bx \quad \quad \quad (6) lny=lna+bx(6)
令
y
′
=
l
n
y
y' = lny
y′=lny 和
a
′
=
l
n
a
a' = lna
a′=lna,则指数回归函数转化为:
y
′
=
a
′
+
b
x
(
7
)
y' = a' + bx \quad \quad \quad (7)
y′=a′+bx(7)
可以看出,转化后的回归函数又变成线性函数。对于公式(7)中的函数求解,我们使用线性回归的系数计算公式,对
a
′
a'
a′ 和
b
b
b 进行求解。这里要注意的是,在计算时,我们代入的数据是
(
x
1
,
y
1
′
)
,
(
x
2
,
y
2
′
)
,
⋯
,
(
x
n
,
y
n
′
)
(x_1,y'_1),(x_2,y'_2),\cdots,(x_n,y'_n)
(x1,y1′),(x2,y2′),⋯,(xn,yn′),也就是
(
x
1
,
l
n
y
1
)
,
(
x
2
,
l
n
y
2
)
,
⋯
,
(
x
n
,
l
n
y
n
)
(x_1,lny_1),(x_2,lny_2),\cdots,(x_n,lny_n)
(x1,lny1),(x2,lny2),⋯,(xn,lnyn)。
值得注意的是,我们对于回归模型的介绍是为了帮助大家理解回归模型的原理和计算方法。但是,在实际问题的求解中,计算量大,模型也更加复杂,我们不需要按照公式去手动计算,有各种软件和编程的方法可以对模型进行求解。
回归模型评价
这里,我们考虑这样一个例题。
对于这个问题的求解,分别采用线性函数、指数、二次、三次、五次多项式函数,分别对模型进行求解,结果如下所示:
图
1
5
种回归模型的拟合结果
图1 \quad 5种回归模型的拟合结果
图15种回归模型的拟合结果
那么上述的5个模型,那个模型最好呢?我们应该选择哪个模型呢?这就涉及到模型的评价和分析。
\quad \quad 对于回归模型的评价,是对回归模型的拟合效果的评估,也就是说用科学的方法来分析回归模型的预测结果是否可靠。我们通常使用以下几种方法来衡量其性能和准确性:
\quad \quad 均方误差(Mean Squared Error, MSE):MSE是最常用的回归模型评价指标之一。它计算预测值与实际值之间差异的平方的平均值。MSE越小,说明模型的预测结果越接近实际值。计算方法如下:
M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 ( 8 ) MSE = \frac{1}{n}\sum_{i=1}^{n} (y_i - \hat{y}_i)^2 \quad \quad \quad (8) MSE=n1i=1∑n(yi−y^i)2(8)
\quad \quad 均方根误差(Root Mean Squared Error, RMSE):RMSE是MSE的平方根,它与原始数据的单位相同。RMSE也是衡量回归模型性能的重要指标,与MSE类似,值越小表示模型的拟合效果越好。计算方法如下:
R M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 ( 9 ) RMSE = \sqrt{\frac{1}{n}\sum_{i=1}^{n} (y_i - \hat{y}_i)^2} \quad \quad \quad (9) RMSE=n1i=1∑n(yi−y^i)2(9)
\quad \quad 平均绝对误差(Mean Absolute Error, MAE):MAE计算预测值与实际值之间差异的绝对值的平均值。与MSE和RMSE不同,MAE对异常值不敏感,更加稳健。计算方法如下:
M A E = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ ( 10 ) MAE = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| \quad \quad \quad (10) MAE=n1i=1∑n∣yi−y^i∣(10)
\quad \quad 决定系数(Coefficient of Determination, R-squared):R-squared衡量模型对总变异性的解释程度,它是预测值方差与实际值方差之比。R-squared的取值范围在0到1之间,值越接近1表示模型解释的方差越多,拟合效果越好。但需要注意,R-squared值较高并不意味着模型是最好的,因为过度拟合可能导致对训练数据过度适应。计算方法如下:
R 2 = 1 − ∑ i = 1 n ( y i − y ^ i ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 ( 11 ) R^2 = 1- \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2} \quad \quad \quad (11) R2=1−∑i=1n(yi−yˉ)2∑i=1n(yi−y^i)2(11)
\quad \quad 残差图(Residual Plots):绘制模型的残差图可以帮助我们观察模型是否满足线性性、同方差性、独立性和正态性等假设。若残差图呈现随机分布且无明显的模式,则表示模型拟合良好。
\quad \quad 预测精度:可以将模型用于新的数据集,然后比较预测结果与实际值的接近程度,以此来评估模型在未知数据上的表现。
综合使用这些评价方法,可以帮助我们判断回归模型的拟合效果、预测准确性和稳健性,从而选择最合适的模型或优化现有模型的结果。
**值得注意的是,上述的MSE、RMSE、MAE和 R 2 R^2 R2**等指标数据,仅仅是回归模型评价和选择的参考指标,并不是说指标数据的数值越好,模型就一定好。如图1中的例题,5种回归模型,如果按照决定系数、残差等指标来看,那么就是五次多项式函数的回归效果更好。但是二次、三次、五次多项式函数的变化规律并不符合实际情况,我们是对热茶的销量进行预测。热茶随着温度的升高,销量呈下降的趋势。但是按照二次、三次和五次多项式的趋势,气温在30度以后,随着气温的升高,销量反而会增长。这与实际情况是不符合的。因此,我们可以选择线性回归模型和指数回归模型。线性回归和指数回归模型并没有绝对的哪个更好,都是可以的,只要通过讨论对自己的选择进行解释,说明理由就好。当然,从趋势和拟合效果来看,指数模型要好一些。