回归分析第16讲: Elastic Net---它能解决 LASSO 做不到、Ridge 不擅长的事
在前两讲中,我们已经看到:
- 岭回归(Ridge):能稳定系数,但不会做变量选择(没有变量会被删掉)。
- LASSO 回归:能自动做变量筛选,但在共线性极强时,有时只会从一组相关变量中“选一个活下来”。
那如果我们希望:
- 既希望 Ridge 那样稳定、
- 又希望 LASSO 那样能筛变量、
- 同时避免 LASSO 过度删除变量的风险……
有没有一种“两者合体”的方法?
答案就是——
🌟 Elastic Net(弹性网络回归)
Elastic Net 是 Ridge + LASSO 的组合,同时具备两者的优点:
- 像 Ridge 一样能处理强共线性
- 像 LASSO 一样能把一些系数压到 0
- 在变量多、共线性严重、小样本等情境下,比两者都更稳定
一句话解释:
Elastic Net = LASSO 的简约性 + Ridge 的稳定性。
【一】为什么需要 Elastic Net?
LASSO 虽然强大,但有两个典型的问题:
① 在强共线性下,LASSO 会“只挑一个幸存”
比如:
- x₁、x₂、x₃ 三个变量高度相关
- LASSO 可能只留下一个,其余全部压为 0
但现实中的经济学问题并不希望“硬性删除”相关变量。例如在上一讲案例中:
- 农业机械动力、化肥施用量、农村用电量往往一起增长,共线性强
- 但它们都可能真实影响产出
在这种情况下,LASSO 的“过度稀疏”就可能删掉有意义的变量。
② Ridge 虽然稳定,但一个变量都删不掉
Ridge 提供稳定性,但不具备变量选择功能。
经济学论文写作中,删除不重要变量往往能使模型更简洁、更易解释。
所以我们需要:
- 既能筛变量,又不过度删除;
- 既能稳住系数,又能处理共线性。
👉 Elastic Net 正好解决这两个矛盾。
【二】Elastic Net 的公式为何这么强?
Elastic Net 在损失函数中加入两个惩罚:
其中:
- α = 1 → 完全是 LASSO
- α = 0 → 完全是 Ridge
- 0 < α < 1 → 同时具备两者特性
直观理解:
| 方法 | 会删变量? | 能处理共线性? | 稳定性 |
|---|---|---|---|
| Ridge | ❌ 不删 | ✔ 很强 | ✔ 高 |
| LASSO | ✔ 会删 | ✔ 一般 | ❌ 有时不稳 |
| Elastic Net | ✔ 会删,但不过度删 | ✔ 很强 | ✔ 稳定性最高 |
【三】在 JASP 中如何做 Elastic Net?(非常简单)
路径:
机器学习 → 回归 → 正则化线性回归
“惩罚”(Penalty) 选择:“弹性网络”(Elastic Net):
JASP 会自动完成,并输出结果。
【四】继续用上一讲的农业数据案例:Elastic Net 会给什么结果?
我们此前得到的结果:
- 逐步回归(JASP):只留下 x₃、x₆
- 逐步回归(EViews):留下 x₁、x₃、x₅
- LASSO:x₁、x₃、x₅(其余全部压成 0)
我们看一下 Elastic Net 给出的结果:
① 模型概要:Elastic Net 自动选择了最佳的 α 与 λ
截图内容显示:
-
α = 0.5
→ 表示 L1(LASSO)与 L2(岭)惩罚各占一半
→ 有助于兼顾“变量选择”与“稳定系数” -
λ = 211.9
→ 惩罚强度
→ 越大,越容易把不重要变量压缩为 0 -
数据自动分为:
JASP 使用交叉验证自动寻找最优模型,比逐步回归科学得多。
-
训练集 13
-
验证集 4
-
测试集 4
-
验证 MSE ≈ 9.99×10⁶
-
测试 MSE ≈ 6.86×10⁶
👉 模型没有过拟合,预测性能稳定。
② 模型性能指标
- MSE = 6.86×10⁶(误差可接受)
- RMSE = 2619
- MAE = 2449
- MAPE = 6.13%
→ 预测误差只有 6%,非常优秀 - R² = 0.995
→ 模型解释 y 的能力极强
👉 说明弹性网络模型拟合好、泛化能力强。
③ 特征重要性(Feature Importance)
数值越大,说明该变量越重要。重要程度从高到低分别是:
- x1(乡村就业人员)— 23755
- x3(农药使用量)— 11667
- x5(农业机械总动力)— 8998
- x6(农村用电量)— 6677
- x2(灌溉面积)— 2020
- x4(柴油)— 1667
- x7(化肥用量)— 1667
👉 与回归系数结果一致,说明模型选择合理、稳定。
④回归系数(β)解释
弹性网络最终保留了 5 个变量(x1、x2、x3、x5、x6),并把 x4、x7 压缩为 0:
| 变量 | 系数 β | 解释 |
|---|---|---|
| x1 | -15945.724 | 就业人数越多对产值有负向影响(结构性原因,可能是劳动力效率问题) |
| x2 | -808.712 | 灌溉面积贡献较小(被部分替代/与其他变量相关) |
| x3 | 7950.838 | 农药使用量显著促进产出(反映技术驱动) |
| x5 | 6608.008 | 农机动力越高,产出越大(非常合理) |
| x6 | 4483.662 | 农村用电量越多,产出越高(反映电气化与机械化水平) |
| x4、x7 | 0 | 被模型视为“可删除”,贡献不足 |
👉 弹性网络比 LASSO 更保守,不会过度删变量;但比岭回归更“果断”,依然能压掉不重要变量。
⑤ 回归方程
(x4、x7 被压缩为 0)
👉 这是一个比 OLS 更稳定、比逐步回归更可靠的模型。
我们可以看到结果,Elastic Net:
- 比 LASSO 更“温和”的变量选择
- 保留了更多的变量
- 在 x₁、x₃、x₅ 之外,还保留某些贡献度较低但不能完全删除的变量(本例中是 x₂ 或 x₆)
Elastic Net 的优势就在于:
“既不乱选变量,也不乱删变量。”
【五】Elastic Net 结果写进论文怎么写?
论文写作中几种可供参考的模板:
📌 作为主模型:
“考虑到变量之间存在显著共线性,同时需要进行变量选择,本文采用 Elastic Net 回归。该方法综合了 LASSO 和 Ridge 的优势,能够在保持模型稳定性的同时对变量进行稀疏化处理。”
📌 作为稳健性检验:
“进一步采用 Elastic Net 回归对变量重要性进行验证,其结果与主回归模型高度一致,说明本文的结论具有稳健性。”
📌 作为变量筛选工具:
“基于 Elastic Net 的变量选择结果,本文剔除了系数收缩至零的变量,并以保留的变量构建最终模型。”
【六】总结:弹性网络的三个优势
✔ 解决共线性——同时使用 L1 + L2,更稳健
✔ 自动变量选择——部分变量压缩为 0(x4、x7)
✔ 预测性能好——误差低,R² 高达 0.995
在经济学、管理学、农业经济、医学等实证研究中非常实用。