稳健M估计
稳健M估计(robust M-estimation)通过选择对大残差增长较缓的损失或有界得分,降低少量极端观测对拟合的作用。M估计本身是一个更大的类别,普通最小二乘也在其中;稳健性取决于损失、尺度、观测设计以及所估计的总体目标。
以教学读数 为例,等权平均为 ,中位数为一。若希望小误差仍按平方损失处理,而读数十的拉动不再随其大小无界增加,可以对残差得分作限幅。
固定尺度的位置方程
设尺度 事先给定,对位置 最小化 若 可微,记 ,一阶条件为 。胡贝尔得分取 它保持单调,故对应损失凸;得分和随 不增,零点就是全局最小点。一般数据可能产生一段零点,不能不检查便宣称严格唯一。位置M估计、得分与回归杠杆的联系见Ruckstuhl讲义。[1]
主例取 。若 ,前四个残差均在未截断区,最后一个贡献固定为 ,方程成为 解得 ,确实在所假设区间内。附近得分和的斜率为负四,故该零点唯一;凸性保证全局最优。十若改成一百,尾部贡献仍为 ,结果保持 。
估计的总体位置与影响函数
对应总体目标应明确定义为 的适当根。若误差分布关于 对称、 为奇函数,则在 处期望为零;若该总体方程还有唯一性,才可称目标与对称中心一致。对偏斜分布,这个目标通常不同于总体均值。
假设分布在两截断点无原子、期望可微,且 。沿定点污染路径,令根为 ,对方程求导得 因此影响函数为 ,绝对值至多 。截断点处的导数、分母是否为零以及尺度是否固定,都是这项证明的条件。尺度若也从数据估计,需要把尺度方程一起线性化。
单调求根的可复算程序
以下代码返回固定尺度位置最优解的一项数值近似,原始样本不被修改。最小读数处得分和非负,最大读数处非正;中点若得分为正,根应在右半段,否则在左半段。每步保留含根区间,精确实数运算下区间宽度减半。
import math
def huber_location(values, cutoff=1.5, scale=1.0, steps=80):
x = tuple(float(v) for v in values)
cutoff, scale = float(cutoff), float(scale)
if not x or any(not math.isfinite(v) for v in x):
raise ValueError("nonempty finite sample required")
if not (math.isfinite(cutoff) and cutoff > 0
and math.isfinite(scale) and scale > 0):
raise ValueError("positive finite cutoff and scale required")
if type(steps) is not int or steps < 1:
raise ValueError("positive integer steps required")
from fractions import Fraction
exact_x = tuple(Fraction(v) for v in x)
exact_cutoff, exact_scale = Fraction(cutoff), Fraction(scale)
lo, hi = min(x), max(x)
for _ in range(steps):
mid = max(lo, min(hi, lo / 2 + hi / 2))
exact_mid = Fraction(mid)
score = sum((max(-exact_cutoff, min(exact_cutoff,
(v-exact_mid)/exact_scale)) for v in exact_x), Fraction(0))
if score == 0:
return mid
if score > 0:
lo = mid
else:
hi = mid
return max(lo, min(hi, lo / 2 + hi / 2))
print(huber_location([0, 0, 1, 1, 10])) # 0.875
print(huber_location([0, 0, 1, 1, 100])) # 0.875
执行 轮时,需要 次有理数算术,样本副本占 个数的存储;整数位数对时间和空间的影响还须另计。有限浮点输入本身都是精确的二进制有理数,Fraction 按这些已转换的值计算得分符号,避免极大差值溢出、极小尺度比下溢而误判为零。二分点和返回值仍用浮点数,最终可表示精度及迭代轮数限制返回位置的准确度。这一教学实现优先保证符号判断,速度不等同于专用稳健统计库。若零点构成区间,程序可以逼近其中一项,而不是声称目标严格凸。
变式。 将十改成一,数据变为 ,均值为 ,全部残差均小于 ,所以M估计也为 。限幅只在残差达到阈值后起作用,不是对所有样本都强行取中位数。
在回归中,方程常含 。即使 有界,任意大的解释变量 仍可能制造高杠杆作用。位置模型的有界影响结论不能原样搬成“对任意回归异常点都稳健”。
参考文献
- ↑ Andreas Ruckstuhl,Robust Fitting: Introduction to Robust Estimation Techniques,第15—18张位置M估计;后续回归M估计中得分含设计变量的讨论。