回归分析第15讲:LASSO 回归---自动帮你选变量的现代方法

统计

【一】为什么我们需要 LASSO?

在回归分析中,有两个经典难题:

① 自变量高度相关时 → OLS 系数乱跳、模型不稳

② 逐步回归看似方便,但极不可靠

上一讲的岭回归(Ridge),则告诉我们:

  • 它能“稳住系数”,解决共线性

  • 但它不会删除变量

  • 所有变量都保留 → 模型变得不够简洁

此时就出现一个新的问题:

既想让模型稳一点,又想自动筛选出“最重要的变量”,怎么办?

所以今天我们介绍一个真正能同时解决稳定性 + 变量选择两大问题的方法:

🌟  LASSO 回归(L1 正则化)

👉  它能自动选变量、还能稳定估计

可以这么说:

LASSO = 岭回归的“稳定性” + 逐步回归的“变量选择”,但比它俩都更可靠

【二】LASSO 回归主要解决什么问题?

LASSO 回归是现代统计、机器学习里最常用的变量筛选工具。 全称是: 

Least Absolute Shrinkage and Selection Operator 

LASSO主要解决以下问题:

(1)变量太多,不知道该留谁?(自动变量选择)

LASSO 会:

  • 留下重要变量
  • 把不重要变量的系数压缩到零
  • 只保留“最能解释 Y 的那几个变量”

(2)共线性严重(高度相关的变量)

与岭回归一样,LASSO 也能稳定模型,但比 Ridge 更“果断”:

  • 会从高度相关的变量中“选一个活下来”

(例如:面积 & 房间数 → 只保留一个)

(3)小样本 + 多变量(论文中最常见)

样本只有几十个,但变量十几个时,OLS 会完全失效。

LASSO 在这种情况下最实用:小样本,多变量。

(4)模型可解释性要求高(经济学论文常见的需求)

  • OLS:留下所有变量
  • Ridge:缩小系数但不删除变量
  • LASSO:删除不重要变量 → 模型更简洁、更可读

非常符合经济学、管理学、医学论文的写作习惯。

【三】公式怎么理解?

这里用简单的公式来解释:

✔ OLS:系数 = “协方差 ÷ 方差”

图片

✔ LASSO:系数 = “协方差 ÷ 方差 + 惩罚”,并且可能被压缩到 0

图片

更直观解释:

✔ OLS 的思想是:

“数据给多大系数,我就给多大。”

✔ LASSO 的思想是:

“系数太大不行,我要往 0 拉。”

一旦惩罚项(λ)足够大,某些系数就会被直接压成 0 —— 变量被删除。

【四】案例:EViews 和 JASP 逐步回归的对比

本案例来自:《EViews在数据分析中的应用》(何晓琦,清华大学出版社)

1999-2019年中国农业产出的相关数据,其中:y是农林牧渔业总产值(亿元),x1是乡村就业人员(万人),x2是有效灌溉面积(千公顷),x3是农药使用量(万吨),x4是农用柴油使用量(吨),x5农业机构总动力(万千瓦),x6是农村用电量(亿千瓦小时),x7是农用化肥施用折纯量(万吨)。对变量运用最小二乘法进行拟合,检验自变量是否存在多重共线性,并通过逐步回归法消除多重共线性。

很显然:以上这些变量高度相关 → 天然存在多重共线性。

这是逐步回归最容易“翻车”的情境。

我们分别在EViews 和 JASP 中对案例数据进行逐步回归的操作,得到不同的结果。

下图是EViews中逐步回归的结果:

图片

下面是JASP得到的逐步回归结果:

图片

我们总结上面两个图的结果如下:

软件 最终变量 结果说明
EViews X1、X3、X5 喜欢“纳入更多显著变量”
JASP X3、X6 偏向简约模型

可以发现:

👉 同样的数据:EViews 的逐步回归 vs JASP 的逐步回归 → 结果不同。

说明了什么?说明:

  • **逐步回归是极其不稳定、不一致、不可靠的方法。 **
  • 不同软件、不同算法、不同默认设定,都会导致不同的选变量结果。

核心原因:逐步回归依赖软件设置,根本不是科学方法

所以同一份数据会出现:

  • SPSS 选一套变量
  • EViews 选另一套变量
  • JASP 又选另一套
  • Stata/ SAS/ R 又可能选不一样的

这也是国际统计界为什么强烈反对逐步回归的原因之一:

Stepwise is not reproducible.(不可复现)

真实世界的科研要求结果可复现,但逐步回归无法满足这一点。

  • 逐步回归不是“科学选变量”,而是“基于显著性的随机筛选”。
  • 数据换一点点,选出的变量就会完全不同。
  • 因此它不适合作为论文的核心方法。

【五】 案例:如何用 JASP 做 LASSO?

本文案例中,自变量高度相关,样本量少(21个),是 LASSO 最能展示威力的场景。我们继续用 JASP 做,非常直观,容易演示。

✔ 菜单路径:

机器学习 → 回归 → 正则化线性

图片

在“惩罚类型”里选择:

  • LASSO回归

图片

下面是对输出结果的简略解释:

1. 模型概要:正则化线性回归(L1)

图片

① LASSO 自动找到了一个最合适的 λ(266.4)

λ 越大,惩罚越强,越容易把不重要的变量“压缩为 0”;
λ 太小,又起不到变量选择作用。

JASP 使用“交叉验证”自动找到一个能让验证误差最小的 λ = 266.4。

👉 这表示模型在“拟合能力”和“简洁性”之间取得了 最优平衡。

② 数据自动分成训练集、验证集、测试集(13 / 4 / 4)

  • 训练集(13):用来估计模型
  • 验证集(4):用来挑选 λ
  • 测试集(4):用来检验最终模型的预测效果

这比逐步回归科学得多,因为逐步回归只用了一组数据,可能会造成过拟合。

③ 验证 MSE 与测试 MSE 都在合理范围

  • 验证 MSE:3.919×10⁶
  • 测试 MSE:4.325×10⁶

说明模型没有“在训练集表现很好,但在测试集崩掉” 的情况。

👉 预测表现稳定,没有过拟合的迹象。

2. 回归方程:哪些变量被“保留”,哪些被“删掉”?

图片

从上面的截图看,结果非常直观:

变量 结果含义
x1(乡村就业人员) 系数为 -19877.65,被保留
x3(农药使用量) 系数为 8401.377,被保留
x5(农业机械总动力) 系数为 5941.668,被保留
x2, x4, x6, x7 被压缩为 0,完全删除

👉 这就是 LASSO 的核心价值:

在共线性严重的情况下自动“做变量选择”,保留最重要的变量,把不重要的变量压成 0

3.  回归系数表:哪个变量“真正重要”?

图片

从上图可以看到, LASSO 结果中,只剩 3 个变量有贡献:

变量 系数 β 解读
x1 -19877.650 农业就业人数越多,总产值倾向下降(结构性解释,但结果稳定)
x3 8401.377 农药使用量增加,产值上升(符合农业技术强化逻辑)
x5 5941.668 农机动力越大 → 产出越高(高度合理)
x2, x4, x6, x7 0.000 说明这些变量对产值的独立贡献度“不够大”,或与其他变量高度相关,被 LASSO 删除

【六】本文结论

✔ 逐步回归不稳定、不一致、不适合科研。 ✔ LASSO 稳定、可复现、能解决共线性、还能自动选变量。
✔ 在小样本 + 多自变量 + 强共线性场景下,LASSO 是最佳选择。

【七】 LASSO 的结果该怎么写进论文?

在写论文时,针对LASSO的不同情况,我们可以使用以下几种模板:

✔ 当做主模型

“由于自变量数量较多,且存在一定程度的多重共线性,本文采用 LASSO 回归以执行变量选择并获得稳健的估计结果。”

✔ 当做稳健性检验

“为验证主回归模型的稳健性,本文进一步使用 LASSO 回归进行变量选择。结果显示,LASSO 保留了与理论一致的关键变量,说明主回归结果具有稳健性。”

✔ 当做变量筛选工具

“基于 LASSO 的变量选择结果,本文将系数收缩为零的变量剔除,并依据剩余变量构建最终回归模型。”