最小绝对偏差 (LAD)求解方法

传统的 最小绝对偏差 (LAD) 回归的求解方法主要基于优化理论,因为 LAD 回归的目标函数涉及绝对值运算,导致不可导,需要特殊的方法来处理。以下是传统 LAD 求解参数的几种方法:


1. 线性规划法

LAD 回归问题可以转化为一个线性规划问题求解。

LAD 的目标函数:

min ⁡ β ∑ i = 1 n ∣ y i − x i ⊤ β ∣ \min_{\beta} \sum_{i=1}^n |y_i - \mathbf{x}_i^\top \beta| βmini=1nyixiβ

转化为线性规划形式:

我们通过引入额外的变量 u i u_i ui v i v_i vi(分别代表正偏差和负偏差)来消除绝对值符号:
min ⁡ β , u , v ∑ i = 1 n ( u i + v i ) \min_{\beta, u, v} \sum_{i=1}^n (u_i + v_i) β,u,vmini=1n(ui+vi)
subject to:  y i − x i ⊤ β = u i − v i , u i ≥ 0 ,   v i ≥ 0 \text{subject to: } y_i - \mathbf{x}_i^\top \beta = u_i - v_i, \quad u_i \geq 0, \, v_i \geq 0 subject to: yixiβ=uivi,ui0,vi0

在此公式中:

  • u i u_i ui v i v_i vi 表示偏差的正负部分。
  • 约束条件确保 u i − v i = y i − x i ⊤ β u_i - v_i = y_i - \mathbf{x}_i^\top \beta uivi=yixiβ,从而代替绝对值。
优化求解:
  • 这是一个标准的线性规划问题,目标函数和约束都是线性的。
  • 可以用经典的线性规划求解算法(如单纯形法或内点法)来高效地求解。

2. 迭代加权最小二乘法 (Iteratively Reweighted Least Squares, IRLS)

IRLS 是一种迭代求解 LAD 的方法,将绝对偏差问题逐步近似为加权最小二乘问题。

方法原理:

LAD 的目标函数:
min ⁡ β ∑ i = 1 n ∣ y i − x i ⊤ β ∣ \min_{\beta} \sum_{i=1}^n |y_i - \mathbf{x}_i^\top \beta| βmini=1nyixiβ
可以通过引入权重 w i w_i wi 表示误差的反比例权重,迭代地近似为加权最小二乘:
min ⁡ β ∑ i = 1 n w i ( y i − x i ⊤ β ) 2 \min_{\beta} \sum_{i=1}^n w_i \left( y_i - \mathbf{x}_i^\top \beta \right)^2 βmini=1nwi(yixiβ)2
其中权重 w i w_i wi 在每次迭代中更新为:
w i = 1 ∣ y i − x i ⊤ β ∣ + ϵ w_i = \frac{1}{|y_i - \mathbf{x}_i^\top \beta| + \epsilon} wi=yixiβ+ϵ1

  • ϵ > 0 \epsilon > 0 ϵ>0 是一个小正数,用于避免分母为零。
迭代步骤:
  1. 初始化 β \beta β 的初始值(如最小二乘解)。
  2. 计算当前的残差 r i = y i − x i ⊤ β r_i = y_i - \mathbf{x}_i^\top \beta ri=yixiβ
  3. 更新权重 w i = 1 ∣ r i ∣ + ϵ w_i = \frac{1}{|r_i| + \epsilon} wi=ri+ϵ1
  4. 用加权最小二乘法重新计算新的 β \beta β
    β = ( X ⊤ W X ) − 1 X ⊤ W y \beta = \left( \mathbf{X}^\top \mathbf{W} \mathbf{X} \right)^{-1} \mathbf{X}^\top \mathbf{W} \mathbf{y} β=(XWX)1XWy
    其中 W \mathbf{W} W 是对角权重矩阵。
  5. 重复步骤 2-4,直到收敛。

IRLS 是一种近似求解 LAD 的方法,通过迭代优化权重逐步逼近 LAD 解。

基本思想:
  • L 1 L_1 L1 损失函数(绝对偏差)可以通过分段的加权 L 2 L_2 L2 损失函数近似。
  • 在每次迭代中,根据残差大小调整权重,更高的残差权重较低,从而逼近 LAD 的结果。
算法步骤:
  1. 初始化:选择初始参数 β ( 0 ) \beta^{(0)} β(0) 和权重 w i ( 0 ) = 1 w_i^{(0)} = 1 wi(0)=1
  2. 计算残差: r i ( k ) = y i − x i ⊤ β ( k ) r_i^{(k)} = y_i - \mathbf{x}_i^\top \beta^{(k)} ri(k)=yixiβ(k)
  3. 更新权重:设 w i ( k ) = 1 ∣ r i ( k ) ∣ + ϵ w_i^{(k)} = \frac{1}{|r_i^{(k)}| + \epsilon} wi(k)=ri(k)+ϵ1,其中 ϵ \epsilon ϵ 是一个小的正数,防止分母为零。
  4. 更新参数:用加权最小二乘法更新 β ( k + 1 ) \beta^{(k+1)} β(k+1)
    β ( k + 1 ) = argmin β ∑ i = 1 n w i ( k ) ( y i − x i ⊤ β ) 2 \beta^{(k+1)} = \underset{\beta}{\text{argmin}} \sum_{i=1}^n w_i^{(k)} \left( y_i - \mathbf{x}_i^\top \beta \right)^2 β(k+1)=βargmini=1nwi(k)(yixiβ)2
    这可以用普通最小二乘方法求解。
  5. 重复步骤 2-4,直到收敛。
优势:
  • 易于实现,适用于中小规模问题。
  • 在某些情况下收敛速度较快。
劣势:
  • 对于特定数据分布(如极端异常值),可能需要较多迭代。
  • 收敛性依赖于初始点的选择。

3. 子梯度法 (Subgradient Method)

由于 LAD 的目标函数 ∑ ∣ y i − x i ⊤ β ∣ \sum |y_i - \mathbf{x}_i^\top \beta| yixiβ 在某些点不可导,可以使用子梯度法来求解。

子梯度定义:

对于不可导的函数,子梯度是对目标函数的一种广义的导数概念。
对于 LAD 的目标函数 ∣ r i ∣ |r_i| ri,其子梯度为:
∂ ∣ r i ∣ = { 1 , 如果  r i > 0 − 1 , 如果  r i < 0 [ − 1 , 1 ] , 如果  r i = 0 \partial |r_i| = \begin{cases} 1, & \text{如果 } r_i > 0 \\ -1, & \text{如果 } r_i < 0 \\ [-1, 1], & \text{如果 } r_i = 0 \end{cases} ri= 1,1,[1,1],如果 ri>0如果 ri<0如果 ri=0

子梯度法步骤:
  1. 初始化参数 β \beta β
  2. 计算当前残差 r i = y i − x i ⊤ β r_i = y_i - \mathbf{x}_i^\top \beta ri=yixiβ
  3. 计算子梯度 g = − X ⊤ s g = -\mathbf{X}^\top s g=Xs,其中 s s s ∂ ∣ r i ∣ \partial |r_i| ri 的子梯度。
  4. 按照步长规则更新 β \beta β
    β = β − η g \beta = \beta - \eta g β=βηg
    其中 η \eta η 是学习率(步长)。
  5. 重复步骤 2-4,直到收敛。

子梯度法在收敛速度上通常较慢,但适合于大规模问题。


4. 排序法(在特殊情况下)

当数据特征矩阵只有一个维度(即单变量回归问题)时,LAD 回归的解可以直接用排序来求解。

原理:

在单变量情况下,LAD 回归等价于找到中位数:
β ^ = argmin β ∑ i = 1 n ∣ y i − x i β ∣ \hat{\beta} = \text{argmin}_{\beta} \sum_{i=1}^n |y_i - x_i \beta| β^=argminβi=1nyixiβ
对于单变量 x i x_i xi,可以直接通过排序找到使残差的中位数最小的解。


总结

  1. 线性规划法:将 LAD 转化为线性规划问题,经典且有效。
  2. IRLS:迭代地将 LAD 转化为加权最小二乘问题,适合中小规模数据。
  3. 子梯度法:适合于大规模问题或目标函数不可导的优化。
  4. 排序法:仅适用于单变量回归场景。

实际选择哪种方法,取决于问题的规模、数据特点以及计算资源的限制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高山莫衣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值