美文网首页
广义线性模型(2)线性回归模型的理解

广义线性模型(2)线性回归模型的理解

作者: 蛋仔鱼丸 | 来源:发表于2020-05-31 22:59 被阅读0次

    1 原理

    1.1 概述

    回归问题:回归属于统计学,回归分析(regression analysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。按照机器学习的说法回归要解决的问题就是:我们有m个样本,每个样本对应于n维特征和一个结果输出y(y为连续值),对于新的样本,预测其对应的y。

    “回归”这个词挺抽象的,怎么理解呢?引用教材上的一段话:

    “Regression”这个概念英国统计学家高尔顿提出来的,1889年,高尔顿在研究父母和子代身高关系时发现,在实际中,父母身高较高时,子女身高也比较高,但子女的平均身高没有父母的高,而是父母较矮的,子女身高也比较矮,但子女的平均身高却比父母的平均身高更高。所以他认为自然界有一种约束力,使得身高的分布不会向高矮两个极端发展,而是趋于回到中间值,所以称为回归现象。

    所以“回归”可以理解为计算一定的自变量所确定的响应变量分布的均值。接下来我们理解一下“线性”,“线性”这个词看起来似乎大家都听熟悉的,不过仔细想一想,能说出“线性”的定义吗?其实线性回归中的“线性”指的是​因变量y与未知的回归系数(\theta _0,\theta _1 .... \theta _n) 是线性关系(变量之间存在一次方函数关系),在回归中把参数视为变量,所以线性也是对参数而言的。根据这个概念我们来判断一下:y=ax_1+bx_2+cy=ax_1+bx_2^2+cy=ax_1+(b^3+a^2)x_2+c是线性回归吗?根据上面的定义,答案是:y=ax_1+bx_2+cy=ax_1+bx_2^2+c是线性回归,而y=ax_1+(b^3+a^2)x_2+c不是,不过我觉得y=ax_1+bx_2^2+c线性回归的自变量也就不是x_1,x_2了,而是x_1,x_2^2,相当于我们提前做了特征处理,这么看来的话其实y=ax_1+bx_2^2+cy=ax_1+bx_2+c是一样的。

    所以可以说:一般情况下,线性回归模型是给定X值的y的条件均值是X的仿射函数(也有用y的中位数或分位数之类的,关于线性和仿射函数的解释,见最下方附录)。线性回归模型的一般形式为:

    y=h_θ(x_1,x_2 .... x_n)=θ_0+θ_1x_1 +θ_2x_2.... +θ_nx_n =θ^TX

    像所有形式的回归分析一样,线性回归是求给定X值的y的条件概率分布,而不是X和y的联合概率分布,所以这个角度来说的话,线性回归是判别模型。

    1.2 从GLM的角度看线性回归的基本假设

    线性回归是广义线性模型的一种实现,先来回顾一下GLM的三个假设:

    1. 定义 y 的估值概率分布属于某种指数分布族,y|x,θ∼ExponentialFamily(η),表示为:

    P ( y | x , θ ) = b ( y ) e x p ( η^T T ( y ) − a ( η ) )

    1. 定义y 的估计值 h ( x , θ ) = E ( T ( y ) | x , θ )=E ( y | x , θ ),即y的估计值就是 P(y|x,θ)的期望值;

    2. 定义线性预测算子,即广义线性模型中的线性因素,对y相关的指数分布族的自然参数ηη = θ^T x

    线性回归的假设比GLM的更加具体,按我们上一篇说的,线性回归是继承GLM实现的子类,其假设为:

    1. 定义 y 的估值概率分布属于指数分布族中的高斯分布,y|x,θ∼N(\mu,\sigma),表示为:

    P(y|x,\theta) =\frac{1}{\sqrt{2\pi }\sigma } e^{\frac{(y-\mu)^2}{2\sigma^2} } =\frac{1}{\sqrt{2\pi }\sigma } exp(\frac{y^2}{2\sigma^2})exp(\frac{2\mu y-\mu^2}{2\sigma^2})

    2. 定义y 的估计值 h ( x , θ ) = E ( T ( y ) | x , θ )=E ( y | x , θ ),即y的估计值就是 P(y|x,θ)的期望值;

    3. 定义线性预测算子,即广义线性模型中的线性因素,对y相关的指数分布族的自然参数ηη = θ^T x

    也就是说线性回归模型对响应变量的限制加强了,假设只能是高斯分布。在这个前提下来看一下线性回归模型,我们可以直接套用公式 h ( x , θ ) = E ( y | x , θ ) = a' ( η ),a(\mu)=\frac{\mu^2}{\sigma^2} 构建回归模型:

    h ( x , θ ) = a' ( η )=C*\mu=C* θ^T x=θ'^T x

    显然,对于符合这些假设的数据使用线性回归模型会取得比较好的效果,根据这些假设我们总结一下线性回归对数据的要求:

    • 自变量和因变量存在线性关系;
    • 方差齐性;
    • 自变量之间没有共线性;
    • 无自相关性,比如不能是时间序列那种前后有依赖的数据。

    我们要做的就是根据样本,求出最合适的参数θ

    2 线性回归模型参数的求解

    根据上面的讨论,我们已经熟悉了线性回归模型的形式,接下来讨论怎么求出模型中的参数。

    2.1 极大似然估计

    在上一篇我们做过猜想:

    至于\theta怎么求解——又有分布又有样本,极大似然估计是不是很合适?

    下面来验证一下极大似然估计是不是可行:

    1. 写出似然函数:

    L( θ;X)=\prod_{i=1}^n p(y_i|x_i, θ)=\prod_{i=1}^n C*exp[(y_i-\mu)^2/2\sigma^2]

    1. 对似然函数取对数,并整理,注意在线性回归中y=η=\mu=θ^T X

    LL( θ;X)=log[\prod_{i=1}^n C*exp[(y_i-\mu)^2/2\sigma^2]]=\sum_{i=1}^n\frac{1}{2}(\frac{y_i-\mu}{\sigma} )^2

    1. 求导计算arg\max_{θ} L( θ;X),需要对各个θ_i求导:

    \begin{cases} & \frac{\partial L(\theta_c|D_c)}{\partial \theta_0}=\sum\limits_{i=1}^{m}-(y_{i} - θ^T X) = 0 \\ & \frac{\partial L(\theta_c|D_c)}{\partial \theta_1}=\sum\limits_{i=1}^{m}-(y_{i} - θ^T X)*x_1 = 0 \\ & ... \\ & \frac{\partial L(\theta_c|D_c)}{\partial \theta_i}=\sum\limits_{i=1}^{m}-(y_{i} - θ^T X)*x_i = 0 \end{cases}

    1. 求解,计算方程组求出各个参数θ_i即可。

    显然,极大似然估计来求解线性回归模型是可行的,实际上,极大似然估计不仅是可行的,而且和常用的最小二乘法殊途同归。

    2.2 最小二乘法

    极大似然估计是从概率的角度来求解模型参数,最小二乘法的思路不同,他是试图来最小化模型产生的误差,认为这样相当于找到了最贴近真实值的模型,故其基本形式是:

    目标函数 = \sum\limits(观测值-理论值)^2

    (观测值-理论值)就是最小二乘法定义的损失函数,所以其实最小二乘法是最小化损失方法的一种。在线性回归模型的场景下我们看看最小二乘法怎么用:

    输入:训练集T=\{(X_{1}, y_{1}),(X_{2}, y_{2}),...(X_{m}, y_{m})\}
    ,其中,X_i为样本的特征向量,如X_0=\{x_0^0,x_1^0,...,x_n^0\}
    ,X_1=\{x_0^1,x_1^1,...,x_n^1\}等,y_i为样本对应的因变量值。

    输出:线性回归函数h_\theta(x) =\theta _0+\theta _1x_1+\theta _2x_2+...+\theta _nx_n=X\theta

    损失函数:均方误差(平方损失函数)L(\theta)=\frac{1}{2}\sum_{i=1}^m[(h_\theta (X)-y_i)^2]

    求导计算arg\min_{θ} L( θ),需要对各个θ_i求导:

    \begin{cases} & \frac{\partial L(\theta_c|D_c)}{\partial \theta_0}=\sum\limits_{i=1}^{m}(h_\theta (X)-y_0) = 0 \\ & \frac{\partial L(\theta_c|D_c)}{\partial \theta_1}=\sum\limits_{i=1}^{m}(h_\theta (X)-y_1)*x_1 = 0 \\ & ... \\ & \frac{\partial L(\theta_c|D_c)}{\partial \theta_i}=\sum\limits_{i=1}^{m}(h_\theta (X)-y_i)*x_i = 0 \end{cases}

    计算方程组求出各个参数θ_i即可,这个结果跟极大似然估计的结果显然是一样的。

    用矩阵的计算来看一下这个方程组的求解,首先损失函数为L(\theta )=\frac{1}{2}(Xθ-Y)^T(Xθ-Y),对θ求导得:

    \frac{\partial}{\partial\theta}L(\theta) = X^T(X\theta-Y) = 0

    θ = (X^TX)^{-1}X^TY

    可以直接根据公式计算出θ,还是很方便的。不过极大似然估计和最小二乘法的这种解方程组的方式有一定的局限性:

    • 最严重的就是,如果这个方程组是没有解的,那么这种求解方法就是完全没法用的;
    • 再者,对于X的维度非常高的时候,直接求解是非常困难的,时间复杂度也非常的高。

    因此我们需要更通用、高效的参数求解方法:梯度下降法。

    2.3 梯度下降法

    梯度下降法的具体原理及细节我们会在优化算法的总结中详述,这里就不再赘述了,使用梯度下降来求解参数:

    \mathbf\theta= \mathbf\theta - \alpha\mathbf{X}^T(\mathbf{X\theta} - \mathbf{Y})

    通过不断的迭代,在达到我们设置的中止条件之后,我们就可以认为找到了最优的参数\theta了,这种方法即通用,效率又高,效果非常好,谁用谁知道。

    本篇主要讨论线性回归的一些基本概念、基本的模型参数求解方法,还有其在广义线性模型体系下的理解方式,下一篇具体讨论下线性回归的一些细节及常用的实现。

    附录

    1 线性关系:变量之间存在一次方函数关系,就称它们之间存在线性关系。正比例关系是最简单的线性关系。
    2 线性映射(函数):一般说线性,就是指线性映射,或者说线性函数,线性映射要满足两个条件:

    • 齐次性: f(ax)=af(x)
    • 可加性:f(x+y)=f(x)+f(y)

    在几何上,线性变换要求:

    • 变换前是直线的,变换后依然是直线;
    • 直线比例保持不变;
    • 变换前是原点的,变换后依然是原点。

    显然我们所说的线性回归方程的形式是不满足齐次性的(因为常数项的存在),在几何上不满足变换前是原点的,变换后依然是原点,因为常数项是一种平移变换,原点会发生变化。所以在1.1中的定义中我们说的是“线性回归模型是给定X值的y的条件均值是X的仿射函数”。

    3 仿射映射(函数):线性变换不能表示平移,而仿射变换则可以,因为仿射映射比线性变换少了一个要求,只有要求:

    • 变换前是直线的,变换后依然是直线;
    • 直线比例保持不变。

    因此“线性回归模型是给定X值的y的条件均值是X的仿射函数”。



    主要参考

    如何通俗的解释仿射变换?

    相关文章

      网友评论

          本文标题:广义线性模型(2)线性回归模型的理解

          本文链接:https://www.haomeiwen.com/subject/ehyiahtx.html