本科生学年论文
题目:从理论到应用——浅谈 lasso 模型
指导教师:
学院:
姓名:
学号:
班级:
从理论到应用——浅谈 lasso 模型
【摘要】
回归模型是我们在处理数据中常用的方法。其中,Lasso 模型是一种适用于多重共线性
问题,能够在参数估计的同时实现变量的选择的回归方法。本文从 lasso 模型的概念谈起,
对其起源、思想、与岭回归的比较、通过 lar 的算法实现等方面进行了探究。另外还使用 R
语言对简单案例进行 lasso 模型的应用。最后简述了 lasso 模型的研究现状。
【abstract】
Regression model is our commonly used method in processing data. Lasso model is
a kind of regression method for multiple linear problems, which can be used to achieve
parameter estimation and variable selection at the same time. This paper starts from the
concept of the lasso model, including its origin, ideas, and the comparison of ridge
regression, through lar algorithm implementation, etc. In addition, using R language to
solve a simple case through lasso. At
last,
the research status of
lasso model
is
introduced.
【关键词】
Lasso 岭回归 最小角回归 R 语言
【key words】
Lasso
ridge regression lar R language
- 1 -
目录
一、 定义及基本信息 .................................. - 3 -
二、 起源与原理 ...................................... - 3 -
三、 模型的思想 ...................................... - 3 -
四、 Lasso 与岭回归 ...................................- 4 -
1、 岭回归的概念 .................................. - 4 -
2、 Lasso 与岭回归的比较 ...........................- 4 -
五、 Lasso 的算法步骤 .................................- 5 -
1、 lasso 算法实现的背景 ...........................- 5 -
2、 最小角回归 .................................... - 6 -
3、 用 lar 实现 lasso ...............................- 6 -
六、 案例分析 ........................................ - 7 -
1、 问题描述 ...................................... - 7 -
2、 简单线性回归求解 .............................. - 8 -
3、 利用 lasso 求解 ............................... - 10 -
七、 应用与研究现状 ................................. - 11 -
八、 参考资料 ....................................... - 12 -
- 2 -
一、定义及基本信息
Lasso 模 型 是 由 Robert Tibshirani 在 1996 年 JRSSB 上 的 一 篇 文 章 Regression
shrinkage and selection via the lasso 所提出的一种能够实现指标集合精简的估计方法。在
参数估计的同时实现变量的选择(可以解决回归分析中的多重共线性问题)。
全称:Least Absolute Shrinkage and Selection Operator
读音:[læ‵su:] 而不是[‵læso]
Robert Tibshirani 简介:生于 1956 年 7 月 10 日,担任斯坦福大学 the Departments of
Statistics and Health Research and Policy 的教授。1985-1998 年担任多伦多大学的教授。
他主要研究方向是致力于开发处理复杂数据的分析统计工具。Lasso 模式是他最著名的贡
献。同时在著名的 "Generalized Additive Models", "An Introduction to the Bootstrap", and
"The Elements of Statistical Learning"三本书中都有他的编著。[1]
二、起源与原理
在常规的回归分析中,假设我们有一组(xi,yi),i=1,2,...,N,其中 xi=(xi1,...,xip)T,yi 是第
i 维观测值的回归量的数据。普通最小二乘(OLS)通过最小化残差平方和来进行估计。它对
数据的分析不那么令人满意通常有两个原因。一是预测精度:OLS 往往偏差较低但方差大;
预测精度有时可以用缩小或设置一些系数为 0 的方法来提高。通过这样做,我们牺牲一点偏
差减少预测的方差值,因此可以提高整体预测准确性。第二个原因是可解释性的问题。在大
量的预测值中,我们通常想确定一个展现出最强影响的更小的子集。
两个公认优秀的改善 OLS 估计的方法是子集选择(subset selection)和岭回归(ridge
regression)它们都有缺点。子集选择提供了可解释的模型但是可变性非常强,因为它是一
个离散的过程——回归量要么保留要么从模型中去掉。小的数据变化就会使得模型的选择改
变,这会降低预测准确度。岭回归是连续缩小参数的过程,因此更稳定:然而它不会使得任
何参数为 0,没办法得出简单的可解释的模型。
lasso 模型就此提出,The least absolute shrinkage and selection operator,同时缩小
(shrinkage)和设置成参数为 0(selection),保持了子集选择和岭回归的良好特征。[2]
三、模型的思想
lasso 是在回归系数的绝对值之和小于一个常数的约束条件下,使残差平方和最小化,
从而能够产生某些严格等于 0 的回归系数,得到解释力较强的模型。
- 3 -
给出一组测量数据 x1, x2 ...xp 以及测量结果 y,lasso 符合线性模型
yhat=b0 + b1×x1+ b2×x2 + ... bp×xp
它所使用的标准是:
当∑| bj |<= s 时,使得∑(y-yhat)2 最小
最初的和是根据观察数据集得来的。边界”s”是一个调谐参数。当 s 很大时,约束起不
到作用,解决方案只是常见的多元线性最小二乘回归的关于 y,x1,x2,xp 的函数。然而当 s 变
小时,解决方案就是缩小的版本最小二乘(least squares)估计。通常一些系数 bj 为零。
选择 s 就像选择一个回归模型的预报器的数值,交叉验证(cross-validation)是估计 s 最
佳值的一个好办法。[3]
四、Lasso 与岭回归
1、岭回归的概念
岭回归(ridge regression)是一种专用于共线性数据分析的有偏估计回归方法,实质上是
一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为
代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘法。
它的数学表达式如下:即在回归系数的平方和小于一个常数的约束条件下,使残差平
方和最小化。
2、Lasso 与岭回归的比较
下面是 lasso 写成相同形式的表达式。
- 4 -
可以看出 Lasso 与岭回归的区别就是约束条件不一样,一个是回归系数绝对值之和小
于一个常数,一个是平方和小于一个常数。Lasso 的约束条件是线性的,而 ridge 是 L2-norm。
通过这幅图可以很明显的看出岭回归和 lasso 之间的差异。图中是两个变量回归的情
况,等高线图表示的是残差平方和的等高线。残差在最小二乘估计处最小。阴影部分分别是
岭回归和 lasso 的限制区域。显然圆形为岭回归,菱形为 lasso 的。这两种带有惩罚项的方
法都是要找到第一个落到限制区域上的等高线的那个位置的坐标(即岭估计和 lasso 估计)。
因为菱形带尖角,所以更有可能使得某个变量的系数为 0(即所找到的第一个点是菱形四个
顶点之一)。当回归变量增多时,lasso 的尖角也会变得更多,从而增大更多系数变 0 的可
能性。而光滑的高维球面的显然不可能有这样的概率。这也就是说 lasso 可以用于变量选择。
这是 lasso 相较于 ridge 有优势的一点。
五、Lasso 的算法步骤
Lasso 的算法实现与 lar(least angle regression)有密不可分的关系。
1、lasso 算法实现的背景
- 5 -
Tibshirani 在《The Science of Bradley Efron》这本书的序言里写道,”He sat down and
pretty much single-handedly solved the problem. Along the way, he developed a new
algorithm,’least angle regression’,which is interesting in its own right, and sheds great
statistical insight on the Lasso.”大意是说:Efron 独自摆平了具有 Shrinkage 的 Gradient
Boosting 应用到线性回归中时与 Lasso 得到的 Solution Path 相似这个问题,与此同时发明
了“Least angle regression (LAR)”。Efron 结论是 Lasso 和 Boosting 的确有很紧密的数
学联系,它们都可以通过修改 LAR 得到。
现在,Lasso 已经家喻户晓了,但是 Lasso 出生后的头两年却很少有人问津。后来
Tibshirani 自己回忆时说,可能是由下面几个原因造成的:1. 速度问题:当时计算机求解
Lasso 的速度太慢;2. 理解问题:大家对 Lasso 模型的性质理解不够(直到 Efron 的 LAR
出来后大家才搞明白);3. 需求问题:当时还没有遇到太多高维数据分析的问题,对 Sparsity
的需求似乎不足。[4]
2、最小角回归
Efron[5]提出最小角回归(LARS)方法,这种方法既可以进行变量选择,可以用来解决
Lasso 问题,并且可以提高计算效率。LARS 算法的基本思想是:首先选择一个与因变量相
关性最大的协变量,然后沿这个方向走一定长度,知道出现第二个协变量,这两个协变量与
残差的相关性相同,就沿着与这两个变量等角度的方向继续走,以此类推,选择出需要的协
变量。LARS 算法既不像向前法那样贪婪,选择一个变量后,走尽量长的长度来计算残差,
也不像分段法(Stagewise),每步只走很短的距离。LARS 方法具有很高的计算效率。[6]
3、用 lar 实现 lasso
X 的每一行代表一个样本,即:
X
1
(
,
xx
2
,...,
值标准化。
px
)
首先对数据进行预处理,使其去均
n
i
1
y
i
0,
n
i
1
x
ij
0
n
i
1
2
x
ij
1,
for
j
1,2,...,
n
ˆ
ˆ
m
,...,
ˆ
2
ˆ
1
(
,
定义
)T
为当前拟合向量 yˆ 的系数,则有
ˆ
y X
ˆ
m
j
1
x
ˆ
j
j
则 ix 跟残差
y
y 的相关系数 ic :
ˆ
- 6 -
ˆ
c
i
T
x
i
(
y
ˆ
y
)
刚开始时,相关系数都为 0,然后找出跟残差(此时即为 y)相关系数最大的变量,假
设是 1jx ,将其加入到活动集,这时我们在 1jx 的方向上找到一个最长的步长,使得出现下一
个变量(假设是 2jx )跟残差的相关系数跟 1jx 到残差的相关系数相等,,此时也把 2jx 活动
集里,LARS 继续在跟前面 2 个变量等角度的方向上,找到第 3 个变量 3jx 使得该变量跟前
面 2 个跟残差的相关系数相等,随后 LARS 继续找寻下一个变量。[7]
具体算法步骤如下:
——当前最小角度方向,即角平分线方向
ˆc ——残差跟变量的相关系数
ˆ
y
0.
For
k
1,2,...,
p
(找 p 个最优回归量)
ˆy ——当前拟合的 y 值
ˆr ——当前的最长步长
ˆ
(
c X y
T
ˆ
y
)
ˆ
ˆ
,
(
c c
1
2
,...,
ˆ
c
m
T
)
A
ˆ
{ :
j c
j
ˆ
max( )
c
C
}
X
A
[...
x
j
...,
j A
]
1)
2)
3)
4) ( )
k
X w
A
A
(
w
A
a G
A
A
1
1
A
a
A
T
(1
A
G
A
1
1 )
A
1
2
G
A
X X
T
A
,1
A
A
T
(1,...,1) )
(
,
a a
1
2
,...,
a
m
)
ˆ
C c
j
a
a
A
j
,
ˆ
C c
j
a
a
A
j
r
min
C
j A
j
w
j
a
A
5)
T
X
ˆ min
r
C
j A
6)
7)if
ˆr
r
ˆ
( )
y k
ˆ
(
y k
1)
r
( )
k
A A
{ }
j
else
ˆ
( )
y k
ˆ
(
y k
1)
ˆ
( )
k
r
A A
ˆ{ }
j
六、案例分析
现在在 R 语言中包含了运用 lasso 的包。
1、问题描述
- 7 -