回归问题属于监督学习的一个重要问题。回归主要用于预测输入变量和输出变量之间的关系,特别是当输入变量的值发生变化时,输出变量也随之发生的变化。回归模型正是表示从输入变量到输出变量之间的映射函数。

按照输入变量的个数来分,回归可以分为一元回归和多元回归;而按照输入变量和输出变量之间关系的类型,可以分为线性回归和非线性回归。回归问题虽然简单,但是在需多领域都有应用,学好线性回归对以后其它算法的学习可以打下坚实的基础。

1. 线性回归(Linear Regression)

所谓“线性”是指自变量和因变量基于自变量的条件期望之间呈线性规律,且结构项对未知参数而言是线性的。线性回归按照变量数目可以分为:一元线性回归(简单线性回归)和多元线性回归。

1.1 一元线性回归

一元(简单)线性回归的模型可以表示为:
$$
y = {\beta_0} + {\beta_1}x + \varepsilon
$$
其中 $x$ 为自变量,$y$ 为因变量。$\beta_0$ 和 $\beta_1$ 是模型参数,通常需要根据样本的情况进行评估。${\beta_0} + {\beta_1}x$ 表示前面所说的结构项,用来代表由于 $x$ 而引起的 $y$ 的结构性变化。$\varepsilon$ 代表随机误差项,它是一个随机变量,代表了不能由结构项解释的其它随机因素。

上面的公式在坐标系里可以绘制为一条直线,其中各个参数的含义如下图所示:

坐标系中的直线

不管是回归模型还是回归方程,都是针对总体而言,是对总体特征的总结和描述。所以,参数 $\beta_0$ 和 $\beta_1$ 也是总体的特征。但是在实际研究中,我们无法得到总体的回归方程,只能通过样本数据对总体参数 $\beta_0$ 和 $\beta_1$ 进行估计。

1.2 多元线性回归

多元线性回归的模型可以表示为:
$$
y = {\beta_0} + {\beta_1}x_1 + {\beta_2}x_2 + {\beta_3}x_3 + {\beta_k}x_k + {\varepsilon}
$$
当 k=1 的时候,多元线性回归表达式可以简化为一元线性回归表达式,所以换句话说,多元线性回归是一元线性回归的推广。多元线性回归模型适用于分析一个因变量和多个自变量之间的关系。

1.3 多元回归模型的基本假定

为了能够唯一地识别模型参数及进行相关的统计检验,任何统计模型都需要假设条件。回归分析也不例外:

  1. 线性假定。假设规定因变量 $Y_i$ 与自变量 $X_i$ 之间呈现出线性趋势,对于非线性函数的情况,可以借助于数学上的恒等变换进行变量替代。常用的变换方法有对数变换、倒数变换、平方根变换、反正选变化等。
  2. 正交假定。误差项 $\varepsilon$ 和 $x$ 不相关,即 $Cov(X,\space\varepsilon) = 0$ ;误差项 $\varepsilon$ 的期望值为0,即:$E(\varepsilon) = 0$。
  3. 独立同分布假定。误差项 $\varepsilon$ 相互独立。并且遵循同一分布。这意味着误差项具有两个重要的特性:一、任何两个误差项 $\varepsilon_i$ 和 $\varepsilon_j(i \neq j)$ 之间的协方差等于0。即 $Cov(\varepsilon_i, \space \varepsilon_j) = 0 $ 且 $ i \neq j $ 。二、所有误差项 $\varepsilon_i$ 的方差都相同,且为 $\sigma$ ,即 $\sigma_{\varepsilon_i}^{2} = \sigma_{\varepsilon_j}^{2}$,这也被称为等方差假设。
  4. 正态分布假定。误差项 $\varepsilon$ 服从正态分布,即:$\varepsilon \sim N(0,\sigma^2) $,其中 $\sigma$ 越小,回归模型预测的 $y$ 值越精准。

在多元回归中,我们用多个预测变量来解释因变量的变异。一个解释变量若能解释因变量的变异,就必定和因变量相关。另外,若要各个预测变量都能解释一部分独特的或独立的因变量变异,那么两个预测变量之间的相关性就不能太强。如果连个预测变量之间彼此强烈相关,那么预测变量就不会遗留下过多的为解释变异用来解释因变量的变异情况。

解释变异

图中两个自变量的阴影面积重合很大,非重合区代表着各自解释变量的独特变异的解释力。预测变量之间的强相关称为多重共线性。它的存在会使预测变量和因变量之间的独特关系变的难以辨别,从而给多元回归分析带来问题。

1.4 回归系数的估计

我们都知道,如果把一元回归方程绘制到坐标系中,呈现出来的是一条直线,而数据则变为一个个的点分布在直线的四周,这种由数据点构成的图像被称为散点图,而那条由回归方程得到的直线就是回归线

一般情况下,散点图中的数据点并不会全部刚好落在回归线上,有一些点在直线的上方,有一些刚好落到直线上,而有一些则落在直线下方。任意一个散点图中只存在一条直线能够得到这些数据点到直线的距离平方和最小。因为最小平方和会随着直线的位置不同而的到不同的结果,当计算的离差平方和最小的那条直线就是最佳回归线,而这种计算方法被称为常规最小二乘法(ordinary least squares regression,OLS)。

当确定回归线以后,就可以根据给定的 $X$ ,预测 $Y$ 的值,当然预测的 $Y$ 可能不够准确,为了得到更加准确的 $Y$,我们希望回归线能够更加符合散点图上数据点的分布规律,也就是说更好的“拟合”数据,数学上就是求得的离差平方和最小,这种情况下的回归线是当前数据集的最佳结果。

正常情况下,如果想要预测一个值,首先需要一批数据,也就是散点图上的点,你首先需要这些数据来确定回归方程的参数(即斜率和截距),然后在散点图上绘制出回归线,这样就可以分析当前直线对数据 “拟合” 的好坏,当找到最佳的回归直线的时候,就可以通过回归线来预测想要的结果了。

设 $\hat{Y}$ 表示 $Y$ 的预测值,$b$ 表示斜率,也就是为标准化的回归系数,$a$ 表示截距,也就是回归线和 $y$ 轴的交点,$X$ 表示自变量的值。则回归线的公式如下:
$$
\hat{Y} = bX + a
$$
有任一点 $(x_i, y_i)$ ,其误差(离差、残差)为 $d_i = y_i - (bx_i + a)$ ,根据常规最小二乘法,可以求出误差的平方和,即为 $D$。
$$
D = \sum_{i=1}^n d_i^2 = \sum_{i=1}^n (y_i - bx_i - a)^2
$$
要想使 $D$ 最小,则需要满足两个条件:
$$
\begin{cases} \frac{\partial D}{\partial a} = -2 \sum_{i=1}^n(y_i - bx_i - a) = 0 \\ \frac{\partial D}{\partial b} = -2 \sum_{i=1}^n(y_i - bx_i - a)x_i = 0 \end{cases}
$$

上面的式子用了倒数的两个基本公式:

  1. 常数的导数为零,$(C)' = 0$。
  2. $x$ 的 $\mu$ 次方的导数等于 $\mu$ 乘以 $x$ 的 $\mu-1$ 次方,$(x^\mu)' = \mu x^{\mu-1}$。

上面的式子可以简化为:
$$
\begin{cases} na + (\sum_{i=1}^n x_i)b = \sum_{i=1}^n y_i \\ (\sum_{i=1}^n x_i)a + (\sum_{i=1}^n x_i^2)b = \sum_{i=1}^n x_iy_i \end{cases}
$$
设:
$$
\begin{cases} \bar{x} = \frac{\sum_{i=1}^n x_i}{n} \\ \bar{y} = \frac{\sum_{i=1}^n y_i}{n} \end{cases}
$$

带入得:

$$
\begin{cases}
a = \bar{y} - b\bar{x} \\ \sum_{i=1}^n x_iy_i - (\sum_{i=1}^n x_i)(\bar{y} - b\bar{x}) - (\sum_{i=1}^n x_i^2)b = 0
\end{cases}
$$

化简得:

$$
\begin{cases}
a = \bar{y} - b\bar{x} \\ b = \frac{\sum_{i=1}^n x_i y_i - \bar{y} \sum_{i=1}^n x_i } { \sum_{i=1}^n x_i^2 - \bar{x} \sum_{i=1}^n x_i }
\end{cases}
$$

根据求和性质可以推到:

$$
\begin{cases} a = \bar{y} - b\bar{x} \\ b = \frac{\sum_{i=1}^n (x_i - \bar{x})(y_i - \bar{y})} {\sum_{i=1}^n (x_i - \bar{x})^2} \end{cases}
$$

仔细查看斜率系数 $b$ 的结果,可以发现当 $b$ 的分子分母同时除以 $n$ 的时候,可以将式子看作是自变量和因变量之间的协方差与自变量的样本方差之比,即:

$$
b = \frac{Cov(x,y)}{Var(x)}
$$

最小平方和的方法并不是“最佳估值”的唯一标准,还可以使用更加直观的“最小绝对偏差估值法,或者传说中的最大似然估计法等等。

2. 非线性变换

如果两个变量之间存在一次方函数关系,就将它们称为线性关系。但是在现实中,经常会需要一些非线性关系拟合数据,为了可以使用线性关系的方法,这里可以通过某些恰当的转换,将非线性关系表示为线性关系。这里介绍一种二次项变换的方法,其他的方法类似。

一元线性方程如下:
$$
y = {\beta_0} + {\beta_1}x + \varepsilon
$$

假若理论模型需要二次方的形式,只需要将原本的数据 $X$ 变为 $\sqrt{X}$ 即可。更一般地,考虑单调可谓函数 $g(.)$,令:
$$
y = g^{-1}(w^tx + b)
$$
这样得到的模型被称为“广义线性模型”,其中函数 $g(.)$ 被称为“联系函数”。