回归分析
- 什么是回归分析
- 简单线性回归
- 线性回归(linear regression)
- 线性假设
- 如何拟合数据
- 线性回归的基本假设
- 损失函数(loss function)
- 最小二乘法(Least Square, LS)
- 梯度下降法(Gradient Descent,GD)
- 多元线性回归(multiple Linear Regression)
- 多元线性回归参数估计的推导(法二)
- 实例:家庭花销预测
- 以“误差平方和”为损失函数的优缺点
- 相关系数与决定系数
- 线性回归的相关系数
- 线性回归的决定系数(coefficient of determination)
- 总结
什么是回归分析
- Regression
- 回归分析是描述变量间关系的一种统计分析方法
- 例:在线教育场景
- 因变量Y:在线学习课程满意度
- 自变量X:平台交互性、教学资源、课程设计
- 前面提到过 西洋跳棋系统目标函数的设计也是一个回归问题
- 预测性的建模技术,通常用于预测分析
- 预测的结果多为连续值(但也可以是离散值,甚至是二值)
简单线性回归
线性回归(linear regression)
- 因变量和自变量之间是线性关系,就可以用线性回归来建模
线性回归的目的即找到最能匹配(解释)数据的截距和斜率
线性假设
- 线性: 有些变量间的线性关系是确定性的
- 线性:然而通常情况下,变量间是近似的线性关系
如何拟合数据
- 假设只有一个因变量和自变量,每个训练样例表示 ( x i , y i ) (x_i, y_i) (xi,yi)
- 用
y
^
i
\hat y_i
y^i 表示根据拟合直线和
x
i
x_i
xi 对
y
i
y_i
yi 的预测值
y ^ i = b 1 + b 2 x i \hat y_i= b_1 + b_2 x_i y^i=b1+b2xi - 定义 e i = y i − y ^ i e_i = y_i - \hat y_i ei=yi−y^i 为误差项
- 目标:得到一条直线使得对于所有训练样例的误差项尽可能小
线性回归的基本假设
- 自变量与因变量间存在线性关系;
- 数据点之间独立;
- 自变量之间无共线性,相互独立;
- 残差独立,等方差,且符合正态分布。
损失函数(loss function)
- 多种损失函数都是可行的,凭直觉就可以想到:
- 所有误差项的加和 ∑ i = 1 n e i = ∑ i = 1 n ( y i − y ^ i ) \sum_{i=1}^{n} e_i = \sum_{i=1}^{n}(y_i-\hat y_i) ∑i=1nei=∑i=1n(yi−y^i)
- 所有误差项绝对值的加和 ∑ i = 1 n ∣ e i ∣ = ∑ i = 1 n ∣ ( y i − y ^ i ) ∣ \sum_{i=1}^{n}|e_i| = \sum_{i=1}^{n}|(y_i - \hat y_i)| ∑i=1n∣ei∣=∑i=1n∣(yi−y^i)∣
- 考虑到优化等问题,最常用的是基于误差平方和的损失函数
m i n b 1 , b 2 : ∑ i = 1 n e i 2 = ∑ i = 1 n ( y i − y ^ i ) 2 = ∑ i = 1 n ( y i − b 1 − b 2 x i ) 2 \underset{b_1,b_2}{min}: \sum_{i=1}^{n} e^2_i = \sum_{i=1}^{n}(y_i-\hat y_i)^2 = \sum_{i=1}^{n}(y_i-b_1-b_2x_i)^2 b1,b2min:∑i=1nei2=∑i=1n(yi−y^i)2=∑i=1n(yi−b1−b2xi)2
最小二乘法(Least Square, LS)
-
为了求解最优的截距和斜率,可以转化为一个针对损失函数的
凸优化问题,称为最小二乘法
∂ ∑ i = 1 n e i 2 ∂ b 1 = − 2 ∑ i = 1 n ( y i − b 1 − b 2 x i ) = 0 ( 1 ) \frac{\partial \sum_{i=1}^{n} e^2_i}{\partial b_1} = -2\sum_{i=1}^{n}(y_i-b_1-b_2x_i) = 0\ \ \ \ \ \ \ (1) ∂b1∂∑i=1nei2=−2∑i=1n(yi−b1−b2xi)=0 (1)
∂ ∑ i = 1 n e i 2 ∂ b 2 = − 2 ∑ i = 1 n x i ( y i − b 1 − b 2 x i ) = 0 ( 2 ) \frac{\partial \sum_{i=1}^{n} e^2_i}{\partial b_2} = -2\sum_{i=1}^{n}x_i(y_i-b_1-b_2x_i) = 0\ \ \ (2) ∂b2∂∑i=1nei2=−2∑i=1nxi(yi−b1−b2xi)=0 (2) -
求解得到:
b 2 = ∑ i = 1 n ( x i − x ‾ ) ( y i − y ‾ ) ∑ i = 1 n ( x i − x ‾ ) 2 b_2 = \frac{\sum_{i=1}^{n}(x_i-\overline x)(y_i-\overline y)}{\sum_{i=1}^{n}(x_i-\overline x)^2} b2=∑i=1n(xi−x)2∑i=1n(xi−x)(yi−y)
b 1 = y ‾ − b 2 x ‾ b_1 = \overline y - b_2\overline x b1=y−b2x -
x ‾ 和 y ‾ \overline x和\overline y x和y分别表示自变量和因变量的均值
梯度下降法(Gradient Descent,GD)
- 除了最小二乘法,还可以用基于梯度的方法迭代更新截距和斜率
• 梯度下降法- 初始化 b 1 , b 2 b_1,b_2 b1,b2
- 重复:
- b 1 = b 1 − α b_1 = b_1 − \alpha b1=b1−α
-
b
2
=
b
2
−
α
b_2 = b_2 − \alpha
b2=b2−α
对比LS: - ∂ ∑ i = 1 n e i 2 ∂ b 1 \frac{\partial \sum_{i=1}^{n} e^2_i}{\partial b_1} ∂b1∂∑i=1nei2
- ∂ ∑ i = 1 n e i 2 ∂ b 2 \frac{\partial \sum_{i=1}^{n} e^2_i}{\partial b_2} ∂b2∂∑i=1nei2
回忆西洋跳棋系统设计:
w
i
←
w
i
+
c
∗
f
i
∗
e
r
r
o
r
(
b
)
w_i \leftarrow w_i + c * f_i * error(b)
wi←wi+c∗fi∗error(b)
多元线性回归(multiple Linear Regression)
- • 当因变量有多个时,我们可以用矩阵方式表达
- 此时的误差项 e = [ e 1 e 2 ⋮ e n ] = y − X β e= \begin{bmatrix} e_1\\ e_2 \\ \vdots\\ e_n \end{bmatrix} =y-X\beta e= e1e2⋮en =y−Xβ
- 损失函数 ∑ i = 1 n e i 2 = e ′ e e ′ 表示转置 \sum_{i=1}^{n} e^2_i = e'e\ \ \ \ \ \ e'表示转置 ∑i=1nei2=e′e e′表示转置
- 求解 ∂ e ′ e ∂ β = − 2 X ′ Y + 2 X ′ X β \frac{\partial e'e}{\partial \beta} = -2X'Y + 2X'X\beta ∂β∂e′e=−2X′Y+2X′Xβ
- 得到 β = ( X ′ X ) − 1 X ′ Y \beta = (X'X)^{-1}X'Y β=(X′X)−1X′Y
多元线性回归参数估计的推导(法二)
∑
i
=
1
n
e
i
2
=
∑
i
=
1
n
(
y
i
−
β
0
−
β
1
x
x
1
−
.
.
.
−
β
p
x
i
k
)
2
\sum_{i=1}^{n} e^2_i = \sum_{i=1}^{n}(y_i - \beta_0 - \beta_1x_{x1} - ... - \beta_px_{ik})^2
∑i=1nei2=∑i=1n(yi−β0−β1xx1−...−βpxik)2
对每一个需要估计的参数
β
i
\beta_i
βi求偏导:
∑
(
y
i
−
β
0
−
β
1
x
x
1
−
.
.
.
−
β
k
x
i
k
)
=
0
\sum(y_i - \beta_0 - \beta_1x_{x1} - ... - \beta_kx_{ik}) = 0
∑(yi−β0−β1xx1−...−βkxik)=0
∑
(
y
i
−
β
0
−
β
1
x
x
1
−
.
.
.
−
β
k
x
i
k
)
x
i
1
=
0
\sum(y_i - \beta_0 - \beta_1x_{x1} - ... - \beta_kx_{ik}) x_{i1}= 0
∑(yi−β0−β1xx1−...−βkxik)xi1=0
…
∑
(
y
i
−
β
0
−
β
1
x
x
1
−
.
.
.
−
β
k
x
i
k
)
x
i
k
=
0
\sum(y_i - \beta_0 - \beta_1x_{x1} - ... - \beta_kx_{ik}) x_{ik}= 0
∑(yi−β0−β1xx1−...−βkxik)xik=0
(
y
−
X
β
)
T
X
=
0
(y-X\beta)^TX = 0
(y−Xβ)TX=0
y
T
X
=
β
T
X
T
X
→
X
T
y
=
X
T
X
β
→
b
e
t
a
=
(
X
T
X
)
−
1
X
T
y
y^TX = \beta^TX^TX \ \ \ \ \ \rightarrow \ \ \ \ \ X^Ty = X^TX\beta\ \ \ \ \ \rightarrow \ \ \ \ beta=(X^TX)^{-1}X^Ty
yTX=βTXTX → XTy=XTXβ → beta=(XTX)−1XTy
实例:家庭花销预测
- 记录了 25 个家庭每年在快销品和日常服务上
- 总开销(𝑌)
- 每年固定收入( 𝑋2)、持有的流动资产( 𝑋3)
- 可以构建如下线性回归模型
y i = β 1 + β 2 x i 2 + β 3 x i 3 + ϵ i ; i = 1 , . . . , 25 y_i = \beta_1 + \beta_2x_{i2} + \beta_3x_{i3} + \epsilon_i; \ \ \ \ \ i=1,...,25 yi=β1+β2xi2+β3xi3+ϵi; i=1,...,25
- 最终的预测模型为
y ^ i = 36.79 + 0.3318 x i 2 + 0.1258 x i 3 \hat y_i = 36.79 + 0.3318x{i2} + 0.1258x_{i3} y^i=36.79+0.3318xi2+0.1258xi3 - 如果一个家庭每年固定收入为 50K$、持有流动资产 100K$,则
预计一年将会花费
y ^ i = 36.79 + 0.3318 ( 50 ) + 0.1258 ( 100 ) = 65.96 K \hat y_i = 36.79 + 0.3318(50) + 0.1258(100) = 65.96K y^i=36.79+0.3318(50)+0.1258(100)=65.96K$
以“误差平方和”为损失函数的优缺点
- 用误差平方和作为损失函数有很多优点
- 损失函数是严格的凸函数,有唯一解
- 求解过程简单且容易计算
- 同时也伴随着一些缺点
- 结果对数据中的“离群点”(outlier)非常敏感
- 解决方法:提前检测离群点并去除
- 损失函数对于超过和低于真实值的预测是等价的
- 但有些真实情况下二者带来的影响是不同的
- 结果对数据中的“离群点”(outlier)非常敏感
相关系数与决定系数
线性回归的相关系数
- 定义因变量和自变量之间的相关系数 r
r = 1 n − 1 ∑ i = 1 n ( x i − x ‾ s x ) ( y i − y ‾ s y ) r=\frac{1}{n-1}\sum_{i=1}^{n}(\frac{x_i-\overline x}{s_x})(\frac{y_i-\overline y}{s_y}) r=n−11∑i=1n(sxxi−x)(syyi−y)
协方差,描述两个变量 X 和 Y 的线性相关程度
x ‾ : X 的均值 \overline x: X的均值 x:X的均值
s x : X 的标准差 1 n − 1 ∑ ( x i − x ‾ ) 2 s_x: X的标准差 \sqrt{\frac{1}{n-1}\sum(x_i-\overline x)^2} sx:X的标准差n−11∑(xi−x)2
线性回归的决定系数(coefficient of determination)
- 决定系数
R
2
R^2
R2,也称作判定系数、拟合优度
R 2 = 1 − ∑ i ( y i − y ^ i ) 2 ∑ i ( y i − y ‾ i ) 2 y i : 真实值, y ^ i : 预测值, y ‾ 均值 R^2 = 1 - \frac{\sum_i(y_i-\hat y_i)^2}{\sum_i(y_i-\overline y_i)^2}\ \ \ \ \ y_i:真实值,\hat y_i: 预测值,\overline y均值 R2=1−∑i(yi−yi)2∑i(yi−y^i)2 yi:真实值,y^i:预测值,y均值
R 2 = 1 − ∑ i ( y i − y ^ i ) / n ∑ i ( y i − y ‾ i ) / n = 1 − M S E V A R R^2 = 1-\frac{\sum_i(y_i-\hat y_i)/n}{\sum_i(y_i-\overline y_i)/n}=1-\frac{MSE}{VAR} R2=1−∑i(yi−yi)/n∑i(yi−y^i)/n=1−VARMSE - 注意:有可能<0, R 2 R^2 R2不是 r 2 r^2 r2
- 衡量了模型对数据的解释程度
- y的波动有多少百分比能被x的波动所描述
- R 2 R^2 R2越接近1,表示回归分析中自变量对因变量的解释越好
- 特别注意:变量相关 ≠ 存在因果关系
总结
- 回归分析:描述变量间关系的统计分析方法
- 线性回归:最常用,基本假设
- 基于误差平方和的损失函数
- 最小二乘法
- 梯度下降法
- 扩展到多元线性回归
- 相关系数与决定系数:相关 ≠ 因果