PRESS留一残差为何会放大:训练时贴得很近,也可能靠样本自己撑住

24分钟前 2阅读

训练残差是在样本参与拟合之后计算的;留一残差则要求先移走该样本,再预测它。对于普通最小二乘,后者可以用训练残差和杠杆值直接算出,避免逐条重新拟合。这个快捷式不只是省计算,也揭示了为什么一条训练误差很小的记录,离开它自己之后可能突然很难预测。

PRESS留一残差为何会放大:训练时贴得很近,也可能靠样本自己撑住

AI生成的概念示意图,以远端支点对拟合线的牵引表现杠杆作用;不是实际产品或本文三点的精确回归图。

三个点的完整拟合可以手算

数据为(x,y)=(0,0)、(1,0)、(2,3),模型包含截距与斜率,即预测a+bx。x均值为1,y均值为1;斜率为Σ(x−1)(y−1)/Σ(x−1)²=3/2,截距为−1/2。

三个拟合值依次为−0.5、1、2.5。统一把残差定义为实际y减去预测,所以e=(0.5,−1,0.5)。训练残差平方和为0.25+1+0.25=1.5,训练均方误差为0.5。

此处没有用n减参数数目作分母,因为我们报告的是每条训练记录的平均平方预测误差,而不是噪声方差的无偏估计。相同的平方和配不同分母,会得到不同统计量,名字应当分清。

三次真正留一,先作为独立标准答案

删掉第一点后,剩下(1,0)与(2,3),拟合直线y=3x−3;对被删掉的x=0预测−3,留一残差为0−(−3)=3。

删掉中间点后,剩下(0,0)与(2,3),直线为y=1.5x;在x=1预测1.5,残差为−1.5。删掉最后一点后,剩下两点的y都为0,预测直线为y=0;被删掉的y=3,因此残差为3。

留一残差是(3,−1.5,3),平方和PRESS=9+2.25+9=20.25,留一均方误差为6.75。训练均方误差0.5与它相差很大,但两者并不矛盾:每个留一预测使用的是没有见过当前点的模型。

杠杆值把这三次重拟合压成一条公式

设设计矩阵X包含一列1和一列x,帽子矩阵H=X(XᵀX)⁻¹Xᵀ,把y映射为拟合值。其对角元素hii称为杠杆值,表示当前位置对自身拟合的直接作用。含截距的一元回归中,hii=1/n+(xi−x均值)²/Σ(x−x均值)²。

代入三个x,得到h=(5/6,1/3,5/6)。在相关满秩条件下,留一残差满足e_LOO,i=ei/(1−hii)。于是两端的0.5除以1/6得到3,中间−1除以2/3得到−1.5,恰好等于三次重拟合。

这个公式解释了放大来源。两端杠杆值高,原模型可以更大程度地向该点靠拢;移除它以后,训练残差不再能代表外推误差。高杠杆由X的位置决定,不能只凭它断言y异常,更不应该自动删除那条记录。

高杠杆不等于大残差,满拟合还会让公式失效

若把标签改成完美直线y=(0,1,2),杠杆值完全不变,但训练和留一残差都为0。相同的输入几何,可以对应正常而重要的远端观测,也可以对应有问题的数据。影响诊断需要同时检查输入位置、残差与业务来源。

如果只有两个不同x的点,却仍拟合截距与斜率,完整模型可以恰好穿过两点,H=I、每个hii=1。删掉任何一点以后,剩下一点不足以唯一确定两个参数。公式出现0/0,准确反映了原来的可逆性条件失效;把分母强行裁成小正数并不能创造一个唯一的留一模型。

实际数据中hii非常接近1时,除法会放大浮点误差。应检查矩阵秩与条件数,并在可控规模上用稳定的QR或SVD求解重新拟合核对,而不是为了套公式先显式计算一个数值不稳的逆矩阵。

AI写出的快捷函数,仍需验证整个评测流程

可让AI编写两条路径:一条使用完整OLS结果的残差和帽子矩阵对角线;另一条显式移除每一行,重新最小二乘拟合,再预测被删行。对三点例子逐项比较,比只比较最终平方和更有诊断价值,因为符号错误可能在平方后被隐藏。

快捷公式假定设计矩阵和模型形式固定。如果特征选择、目标编码或其他依赖标签的处理也在训练中学习,真实留一评测应在每个训练折内重新完成这些步骤。只对最后一层线性回归应用PRESS,不能替前面的数据处理消除泄漏。

岭回归等线性平滑器存在相关快捷关系,但惩罚系数、截距处理及是否固定超参数都需要重新写明;不能把普通OLS的hii直接拿过去。对任意神经网络,更不能将这条精确恒等式当作免费留一评测。

报告时同时给出训练误差、留一误差、杠杆值分布和数据划分理由。本文样本只有三个,数值差异主要用来检验计算机制,不构成对某种模型泛化能力的统计结论;真实任务还需选择符合样本依赖关系的评测方式。

资料核对日期:2026年10月3日。数值均为原创教学设定,使用本地独立程序复算;未进行真实模型训练或生产性能测试。

参考资料

statsmodels官方:OLSInfluence

statsmodels官方源码:PRESS残差实现


文章版权声明:除非注明,否则均为云鹊BLOG原创文章,转载或复制请以超链接形式并注明出处。