5.5 强影响点
前面分析指出,最小二乘法是残差平方和
∑i(bi−ariTx)2 最小对应的解,为什么会有残差呢?测量误差导致的,如果没有测量误差,则不需要过测量,只需刚刚好的测量次数就能获得真实值。但由于测量误差,我们过测量,取平均,测量误差正负抵消,估计值更可靠,估计值不会因为偶然一次测量误差而导致过大的偏差。如果测量误差不能正负抵消,比如由于测量差错或人为错误,使某个测量误差很大(应该称测量差错),且远远大于其它测量误差,为了使
∑i(bi−ariTx)2 最小,则最优解必须进行较大调整才能使之最小,这样就偏离了没有差错时的理想最优解,导致最小二乘法失败!假设某次测量有差错,不失一般性,假设第一次有差错,本来理想测量值是
b1 ,现在为
b1+ϵ 。无差错时的最优解为
x^=(ATA)−1ATb ,有差错为
x′^=(ATA)−1AT(b+ϵe1)=x^+ϵ(ATA)−1ATe1 ,所以偏差为
x′^−x^=ϵ(ATA)−1ATe1 ,与
ϵ 成正比,其较大时,偏差也大。理论上,只要存在一个强影响点,最小二乘法就会失败,所以在使用最小二乘法时,必须先去除测量中的差错,再进行最小二乘!
根据
x^m=x^m−1+Kmϵm ,我们可以分析第
m 次测量对近似解的影响
Kmϵm。
ϵm=bm−armTx^m−1 表示第
m 次测量数据按前
m−1 次最优近似解
x^m−1 计算预测值
b^mm−1=armTx^m−1 ,与实际测量值
bm 的残差,由于计算
x^m−1 并未利用第
m 次测量数据,故称
ϵm 为预测残差。根据
x^m−x^m−1=Kmϵm ,说明最优近似解的更新量与预测残差成正比,预测残差越大,更新量越大。我们把预测残差大的点称为异常点,异常点为可能的强影响点。以无人驾驶车辆实时判断前面车辆的运动状态为例,如果前面车辆运动状态不变,即做匀加速运动,则最优近似解是不变的,也就是更新量为零。这说明只要方程代表的系统在测量过程中,待测量没有发生变化,则最优近似解更新量为零。前面又表明更新量与预测残差成正比,这说明预测残差在待测量没有发生变化时,在零附近随机变动。
最优近似解的更新量还与向量
Km 成正比,由于向量不好分析,我们需要把其变换为一个数,内积就可以把向量变为数。计算第
m 次测量数据按前
m−1 次最优近似解
x^m−1 计算预测值
b^mm−1 和按前
m 次最优近似解
x^m 计算预测值
b^mm 之差,称为预测差值,预测差值越大,说明第
m 次测量数据影响越大,是强影响点。
∵b^mm−1=armTx^m−1,b^mm=armTx^m∴b^mm−b^mm−1=armTx^m−armTx^m−1=armT(x^m−x^m−1)∵x^m=x^m−1+Kmϵm∴b^mm−b^mm−1=armT(ATA)m−1armϵm=pmmϵmpmm=armT(ATA)m−1arm
预测差值与数
pmm 成正比,
pmm 称为杠杆值,故高杠杆点可能是强影响点,注意这里是可能,不是一定。因为
pmm 只与矩阵
A 有关,而与
b 无关。观察
pmm 表达式,可以发现它是投影矩阵
P=A(ATA)−1AT 对角线元素
pmm 。投影矩阵对角线任意元素具有如下性质
0≤pii≤1 ,证明如下:因为
PT=P,P=P2=PTP ,所以
pii=piTpi=∑j=1mpji2=pii2+∑j=ipji2 ,故
pii≥pii2 得
0≤pii≤1 。
所以
∣b^mm−b^mm−1∣≤∣bm−b^mm−1∣ ,即预测差值小于预测残差,也就是预测值比测量值更接近预测值,这是符合常识。
(b^mm−b^mm−1)2=pmm2ϵm2 只是度量了第
m 个测量数据的预测差值,所以
pmm2ϵm2 乘积只能部分反映第
m 个测量数据的影响强度。我们需要度量所有测量数据的预测差值,计算预测差值的平方和,该值可以较全面度量第
m 个测量数据的影响强度。第
i 个测量数据的预测差值
b^im−b^im−1=ariT(ATA)m−1armϵm=pimϵmpim=ariT(ATA)m−1arm是投影矩阵P元素pim∴(b^im−b^im−1)2=pim2ϵm2∴i=1∑m(b^im−b^im−1)2=i=1∑m(pim2ϵm2)=ϵm2i=1∑mpim2=pmmϵm2
所以
pmmϵm2 较全面度量第
m 个测量数据的影响强度。由于
ϵm 是预测残差,是利用
x^m−1 计算,实际使用中,我们一般不会计算
x^m−1 ,而是计算
x^m ,故需转化。
ϵm=bm−armTx^m−1∵x^m=x^m−1+Kmϵm∴ϵm=bm−armT(x^m−Kmϵm)=bm−armTx^m+armTKmϵm=δm+pmmϵmϵm=δm/(1−pmm)
定义 残差
δm=bm−armTx^m 为第
m 次测量数据按前
m 次最优近似解
x^m 计算预测
bm^ ,与实际测量值的差。高残差点称为异常点。
根据
ϵm=δm/(1−pmm) 得
∣ϵm∣≥∣δm∣ ,即预测残差大于残差,因为预测残差没有利用第
m 次测量数据,而残差利用了,所以残差更小,合乎常识。在机器学习中,残差是训练集样本残差,预测残差是测试集样本残差,预测残差大于残差,表明模型在训练集残差比测试集要小,即训练集性能要高于测试集,即模型的泛化性能要变差些。线性模型能证明该显而易见的结论,但非线性模型如神经网络就比较难证明了。
所以
Dm=pmmϵm2=(1−pmm)2pmmδm2 ,该式能全面反映第
m 次测量数据的影响。
(1−pmm)2pmm 是
pmm 的增函数。这里有个特别迷惑的地方,当
pmm=1 时,
(1−pmm)2pmm 无穷大,是不是第
m 次测量数据的影响很大呢?其实不是,此时
δm2=0 ,故
Dm 不会无穷大,其实
Dm=pmmϵm2=ϵm2 不会很大。同理当
δm2 很大时,
pmm 可能比较小,故
Dm 有可能比较小。为什么会这样,这是因为
pmm 只与矩阵
A 有关,
δm2 和
A,b,bm 都有关。所以如果第
m 次测量数据是高杠杆点或异常点,只是有可能是强影响点,必须综合考虑。本质上,杠杆值
pmm 度量了点
armT 在点集
ariT,i∈[1,m] 中的位置,可以认为是距离点集中心的距离,如果远离中心,则杠杆值大,否则小,是离群程度的一种度量。
δm2 度量了拟合好坏的程度。
前面都是分析最后一个测量点的影响,其实任意一个测量点
i 的影响,分析流程完全一致,结果也是一样,即
Di=piiϵi2=(1−pii)2piiδi2 ,该式能全面反映第
i 次测量数据的影响。
与其它测量点比较起来,具有很大
Di 值的测量点,为强影响点。具体相对大多少可以认为是强影响点,这个没有普遍的结论,需具体问题具体分析。
我们已经推导出
Di 计算公式,所以读者容易误认为检测强影响点很容易,其实检测强影响点很难,目前没有特别好的办法,为什么呢?首先,我们计算
Di 是假定测量数据满足线性关系
Ax=b ,其实很多实际问题,很难判断其是否满足该假设,如果不满足该假设,则所有理论都是不适用该问题,根据这些理论检测出的强影响点显然就很有问题。其次,即使满足线性假设,如果数据很理想,只有一个强影响点,则检测相对容易。但如果数据不理想,有多个强影响点,则最优近似解受多个强影响点的影响,拟合直线会拉向强影响点,导致远离理想最优近似解,而计算
Di 应该采用理想最优近似解,但此时我们不能获得该解,只能用远离理想最优近似解的最优近似解代替,这样会导致
Di 远离理想值,由于拟合直线会拉向强影响点,这就有可能使本来是强影响点伪装成正常点,而正常点看起来像强影响点了,它们互相伪装起来,难以辨别。
测量中为什么会产生强影响点呢?一般来说有两种途径,一是收集数据失误导致的,如测量差错,记录时笔误等,这种强影响点一般都是孤立的,但影响十分巨大,必须要发现,并去除,所以在收集数据时,必须仔细小心,尽量避免出现差错,或使差错尽量小。二是测量数据本来就具有随机性,如果不幸抽样到一个误差很大的点,则该点成为强影响点。例如假设测量误差满足正态分布,则误差大部分位于
2 倍标准差之内,此时测量点都是正常点。如果某次测量,误差大于
3 倍标准差,虽然没有测量差错,是正常测量,但由于误差不在正常范围内,也成为强影响点。
如何知道测量中存在差错呢?对于低维问题,如果能做出
(ariT,bi) 的图形,则观察图形中偏离直线的点,这些离群点即是差错点,去掉这些点后再最小二乘。对于高维问题,由于无法作图,则很难判断离群点,在机器学习中,这称为异常点检测,是个十分困难的问题,目前没有很好的解决方案。
如果有幸发现强影响点,该如何处置呢?首先要根据问题的领域知识,数据收集过程,分析强影响点产生的原因。如果是收集数据失误导致的,应删除。如果不是测量失误导致的,则有可能是误差超大的正常测量点成为强影响点,可能会导致强影响点和正常点互相伪装,需要仔细分析,但强影响点能提供巨大信息,比普通点更有价值。
Di=(1−pii)2piiδi2 中残差
δi 进行归一化,就得到标准度量,该度量即是著名的Cook距离。