最小绝对偏差(Least Absolute Deviations,简称LAD)是一种用于回归分析的统计方法,其目标是最小化残差的绝对值之和,而不是最小二乘法中的残差平方和。LAD回归特别适用于存在异常值的数据集,因为它对异常值不那么敏感。
在优化问题中,当目标函数不是处处可微时,可以使用次梯度(Subgradient)法来找到函数的极小值。对于LAD问题,由于绝对值函数在其零点不可微,因此可以使用子梯度法来求解。
以下是使用子梯度法求解LAD问题的步骤:
1. LAD问题的数学表述
给定一个数据集 ( x i , y i ) (x_i, y_i) (xi,yi),其中 i = 1 , … , n i = 1, \ldots, n i=1,…,n,LAD回归的目标是最小化以下目标函数:
min β ∑ i = 1 n ∣ y i − x i T β ∣ \min_{\beta} \sum_{i=1}^{n} |y_i - x_i^T \beta| βmini=1∑n∣yi−xiTβ∣
其中, β \beta β 是回归系数。
2. 子梯度法的基本步骤
子梯度法是一种迭代优化算法,其基本步骤如下:
初始化
- 选择一个初始解 β ( 0 ) \beta^{(0)} β(0)。
- 设定一个步长序列 α k \alpha_k αk,通常随着迭代次数增加而递减。
- 设定一个容忍误差 ϵ \epsilon ϵ 来决定何时停止迭代。
迭代过程
- 对于 k = 0 , 1 , 2 , … k = 0, 1, 2, \ldots k=0,1,2,…,执行以下步骤直到收敛:
-
计算目标函数在当前解处的子梯度 g ( k ) g^{(k)} g(k)。对于LAD问题,子梯度可以表示为:
g ( k ) = − ∑ i = 1 n sign ( y i − x i T β ( k ) ) ⋅ x i g^{(k)} = -\sum_{i=1}^{n} \text{sign}(y_i - x_i^T \beta^{(k)}) \cdot x_i g(k)=−i=1∑nsign(yi−xiTβ(k))⋅xi
其中, sign ( z ) \text{sign}(z) sign(z) 是符号函数,当 z > 0 z > 0 z>0 时为 1,当 z < 0 z < 0 z<0 时为 -1,当 z = 0 z = 0 z=0 时可以取 0 或者 -1 和 1 之间的任意值。
-
更新解:
β ( k + 1 ) = β ( k ) − α k ⋅ g ( k ) \beta^{(k+1)} = \beta^{(k)} - \alpha_k \cdot g^{(k)} β(k+1)=β(k)−αk⋅g(k)
-
检查收敛性:如果 ∥ g ( k ) ∥ < ϵ \|g^{(k)}\| < \epsilon ∥g(k)∥<ϵ 或者目标函数值的下降小于某个阈值,则停止迭代。
-
步长的选择
- 步长 α k \alpha_k αk 可以是固定的,也可以是逐步减小的,例如使用线搜索或者回溯线搜索来确定每个迭代步的最佳步长。
3. 收敛性
- 子梯度法并不保证总是收敛到全局最小值,但通常可以收敛到局部最小值。
- 对于LAD问题,由于目标函数是凸的,子梯度法可以保证收敛到全局最小值。
4. 注意事项
- 子梯度法可能比梯度下降法慢,因为它不利用目标函数的局部信息。
- 子梯度法的实现需要仔细选择步长序列,以避免过多的迭代或者发散。
通过以上步骤,可以使用子梯度法求解LAD回归问题。在实际应用中,还有更高效的算法,如内点法(Interior Point Method)和线性规划,这些算法在解决LAD问题时通常比子梯度法更高效。