本节摘要:R 方描述样本内「相对均值解释了多少方差」。有趋势的水平序列上,哪怕模型只是跟着斜坡走,R 方也会很高。时间序列默认观测不独立,普通 R 方的推断意义更弱。预测任务应以持出 MAE/RMSE 为主,以 AIC/BIC 和残差白噪声为辅,R 方最多当配角,且最好在平稳的差分序列上报告。
阅读完本节,你应当能够:
经典 R 方 = 1 - SSE/SST,SST 是对样本均值的平方和。序列若从 40 爬到 80,均值是个谁也不在的中点,任何「大致跟着爬」的拟合都能让 SSE 远小于 SST,R 方轻松上 0.9。随机游走用「今天等于昨天」当拟合,水平图上几乎重合,R 方很高,但这只说明水平变化慢,不说明你懂动力学。把同一模型放到差分序列上,R 方会掉到正常、甚至接近 0——差分后的 SST 小了,也更诚实。
调整 R 方对参数个数做惩罚,方向类似 AIC,但仍是样本内、仍用那个被趋势撑大的 SST(若你在水平上算)。它不能修复「尺子量错对象」。原文把拟合优度与预测误差指标分节,就是怕混用。
| 尺子 | 问的问题 | 适用层 |
|---|---|---|
| 残差白噪声 / Q 检验 | 线性相关吃完了吗 | 诊断门禁 |
| AIC/BIC | 样本内拟合与复杂度 | 短名单排序 |
| 持出 MAE/RMSE | 还没发生的日子准不准 | 上线门禁 |
| R 方 / 调整 R 方 | 相对均值解释了多少样本内方差 | 探索、且最好在平稳层 |
不要让第一名去答第四题。R 方 0.95、持出 MAPE 炸裂,在带零的件数或结构折后很常见。相反,差分序列 R 方 0.15 但残差白、滚动赢朴素,这是健康的 ARMA:短记忆本来就解释不了大部分差分方差,剩下的本就是冲击。
对数似然本身也是样本内。它进入 AIC,不要单独当「越大越好」跨 d 比较。伪 R 方在非线性或广义模型里定义更多,ARIMA 教学里不必再发明一种;需要可讲解的样本内数时,报 RMSE_in_sample 并注明「不是持出」。
⚠️ 常见坑:在有季节和趋势的水平上比较两个模型的 R 方,选出季节都没建模但跟着年趋势爬的那个。视觉拟合好看,明年同月全错。
给仓库主管:滚动一步 MAE(件数)、最坏一周的误差、区间是否够用。不要给 R 方。给统计同事:再加 AIC、BIC、Q 检验 p 值、差分层 R 方可选。给自己排错:样本内 RMSE 突然变差,先查预处理和尖点,不一定是阶错了。
💡 关键直觉:趋势把 SST 撑大,是 R 方的通货膨胀。把序列差分到弱平稳,通货膨胀消失,数字才像「结构解释力」。
示意:水平真实 40,42,41,45,44,48,用「昨天」当拟合,残差即一阶差分,水平 R 方会很高;对差分 2,-1,4,-1,4 再谈 R 方,分子分母都在变化层,0.1 或 0.2 并不丢脸。把这个对比写进笔记,能防止自己被 0.98 收买。
与 MAPE 的关系:MAPE 是相对误差,R 方是方差比例,两者都可能在近零或有趋势时发疯,但发疯方式不同。同时爆炸时,回到绝对误差 MAE。只信一个百分比类指标,会被口径绑架。
时间序列交叉验证的平均持出 RMSE,比单一切点的 R 方稳定。切点正好在结构折前,任何样本内优度都在为旧世界打分。优度评价的诚实,最终仍依赖第 2 章的切开纪律。
概念上:
# 不要:r2_level = 1 - sse(y, yhat) / sst(y) # 可以:r2_diff = 1 - sse(z, zhat) / sst(z) # z 已差分且均值近 0 # 必须:mae_holdout = mean(abs(y_hold - y_pred_hold))
若团队习惯看一个「拟合有多紧」的数,用训练段 RMSE(原单位)当配角,并明确标注不是持出。它能发现预处理或尖点问题:样本内 RMSE 突然比上周版本差一截,先查数据,再查阶。它不能当对外成绩。调整 R 方在回归课里用来惩罚变量个数,时间序列上观测不独立,它的推断意义更弱,方向上略像 AIC,但 AIC 直接从似然出发,更适合 ARIMA。不要两套惩罚混报成「双重保险」。
伪 R 方在广义模型里定义多,ARIMA 不必再发明。需要给管理层一个 0 到 1 的数时,宁可报「持出段优于季节朴素的相对改进」,分母是基线误差,不是 SST。这个比例有业务含义:我们比「去年同星期」好了多少。相对均值的 R 方没有这层含义。
切点诚实:只切一次且切在结构折前,任何优度都在给旧世界打分。时间序列交叉验证用多个原点,平均持出 RMSE,比单一切点稳。样本短时折数不能太多,每折训练段还要够估季节。写进报告:切法、折数、是否重估。优度评价的诚实,最终仍是第 2 章切开纪律的延伸,不是多报几个 R 方能补上的。
对数或差分尺度上的 R 方不要和水平 R 方比。尺度不同,SST 不同。需要跨变换比较时,全部还原到件数再比 MAE。这和第 2.4 节「跨 d 不比 AIC」是同一类纪律,只是尺子从准则换成了优度。把纪律说成「尺子必须在业务单位上」,比记一堆公式更不容易忘。
给主管:滚动 MAE、最坏一周、区间是否够用。不要贴水平 R 方。给统计同事加 AIC、BIC、Q、可选的差分层 R 方。相对基线的改进比例分母是季节朴素误差,不是 SST。切点写清楚,结构折前的高分无效。
不丢脸。短记忆本来吃不掉大部分冲击。健康的是残差白、滚动赢基线。
不能。它仍是样本内,且观测不独立使其推断更弱。排序用 AIC/BIC,上线用持出。
水平从 40 爬到 80,「昨天等于今天」的 R 方可以很高,只说明变化慢。同一套拟合放到差分层,R 方掉到 0.15 并不丢脸。对外贴滚动 MAE,对内贴 AIC、Q,差分层 R 方可选。相对改进的分母用季节朴素误差,不用 SST。调整 R 方仍是样本内,替代不了 AIC,更替代不了持出。切在结构折前的高分给旧世界打分,交叉验证多个原点更稳。对数尺度 R 方不要和水平比,全部还原到件数再比绝对误差。样本内 RMSE 可当配角抓预处理事故,不能当对外成绩。伪 R 方不必发明,管理层要 0 到 1 的数就报优于基线的比例。
口令:预测门禁是持出误差,R 方最多配角且最好在差分层。趋势撑大 SST 造成通货膨胀。「昨天等于今天」在水平上可高 R 方。对外 MAE,对内 AIC 与 Q。相对改进分母用基线误差。调整 R 方替代不了 AIC。切点诚实优于优度漂亮。跨变换还原后比绝对误差。样本内 RMSE 抓预处理事故。管理层要 0~1 的数,报优于季节朴素的比例。把「不要贴水平 R 方」写进对外模板。
原文 5.3 讨论 R 方等拟合优度。R 方=1-SSE/SST,描述相对均值解释了多少样本内方差。时间序列观测不独立,有趋势时 SST 被撑大,R 方虚高,随机游走用「今天等于昨天」在水平上也可很高。预测任务应以持出误差为主,拟合优度当配角,且最好在平稳的差分序列上报告。调整 R 方惩罚参数个数,方向略像 AIC,但仍是样本内。不要用水平上的 R 方比较两个季节都没建模的模型。把原文「诊断与评估」拆成:诊断问残差白不白,评估问持出准不准,优度最多回答「相对均值咬掉多少样本内方差」,三个问题三把尺。
| 尺子 | 问谁 | 能否对外 |
|---|---|---|
| 水平 R 方 | 相对均值的样本内方差 | 不能,趋势会虚高 |
| 差分层 R 方 | 短记忆解释了多少变化 | 可对内,低也不丢脸 |
| 调整 R 方 | 样本内加惩罚 | 不能代替 AIC |
| AIC/BIC | 同地形拟合与复杂度 | 对内排序 |
| Q 检验 | 残差是否联合白 | 诊断门禁 |
| 持出 MAE | 还没发生的日子 | 对外主报 |
| 优于季节朴素的比例 | 业务听得懂的 0 到 1 | 可以给管理层 |
| 样本内 RMSE | 预处理是否出事 | 配角 |
| 切在折前的高分 | 旧世界 | 无效 |
| 对数尺度 R 方 | 另一层 | 还原后再比 |
水平 40 到 48 的缓慢爬升,用「昨天等于今天」当拟合,残差等于一阶差分,SST 却按对均值 44 的偏离来算,R 方可以看起来很高。把同一套预报放到差分 2,-1,4,-1,4 上再算 R 方,分母变小也更诚实,0.15 并不丢脸。对外主报滚动 MAE,对内报 AIC 与 Q,差分层 R 方可选。管理层若一定要 0 到 1 的数,用「持出 MAE 相对季节朴素改进了多少」当比例,分母是基线误差不是 SST。切点落在结构折前,任何优度都在给旧世界打分。对数尺度的 R 方不要和件数尺度比。把这几笔账写进对外模板,R 方就不会再出现在给主管的第一页。时间序列交叉验证用多个原点平均持出 RMSE,比单一切点稳,但每折训练段仍要够估季节,折数不能贪。样本内 RMSE 突然变差,先查预处理和尖点,不一定是阶错了。调整 R 方不能代替 AIC,更不能代替切开的滚动误差。三把尺三个问题,写进报告表头就不会混用。伪回归水平上的高 R 方尤其危险:两条爬坡序列也能很高,差分后虚假关系通常消失。因此有趋势的水平 R 方几乎不能当选模依据。需要给非统计同事一个直觉时,画持出段真实与预报的折线,比报 0.98 更不容易误导。切法、折数、是否每步重估,与优度数字必须写在一起,否则后人无法复核那次高分是不是切在折前。对外模板第一页只留滚动 MAE、最坏一周误差、是否打过季节朴素;R 方若要出现,只允许差分层并注明不是预测成绩。这样主管不会把 0.98 当成下周件数的保证。
下一节把全书失败模式收成排错表:过差分、漏季节、指标用错、检验被尖点劫持,以及回退到哪一步。