← 全部文章

测试年份更暖时:我的 SST 基线发生了什么

2026年11月7日

在把任何学习型模型与简单基线比较之前,我想先知道简单基线有多难被超越,对象是每日海表温度(SST)。我在验证年份(2016-2019)看到的方法排名,在测试年份(2020-2025)没有保持。这篇文章讲的是什么变了、关于原因我能说什么和不能说什么,以及我之后加入的一个小型 LSTM。

文中所有数字都来自 sst-baselines 的 README 和 results/ 文件。这是一项基线与评估研究,不是可用于业务的预报系统。

设置

  • 数据: NOAA OISST v2.1 每日 SST,1982-01-01 至 2025-12-31,每个区域 16,071 个每日场,网格为 40x40。ERDDAP 聚合数据每个区域缺少 1,194 天,我从 NOAA PSL 补齐,并检查了两个来源在所有重叠日期上一致。
  • 区域: 北太平洋的两个 10°×10° 区域。一个是高变率的黑潮延伸区(30.125-39.875°N,145.125-154.875°E),一个是低变率的副热带区(15.125-24.875°N,150.125-159.875°E)。
  • 划分: 训练 1982-2015,验证 2016-2019,测试 2020-2025。预报提前量为 1、7 和 30 天。
  • 六个基线: 持续性、气候态、距平持续性、阻尼持续性、10 年逐日气候态(OCN)以及逐格点岭回归(Ridge)。
  • 方案: 在我看验证或测试分数之前就已固定。测试期只评估一次,在我冻结配置并打上 pre-test-freeze 标签之后;否则代码会拒绝运行测试。

我用相对距平持续性的技巧评分来给每个方法打分,距平持续性即“目标日的气候态加上今天的距平”。技巧评分为 1 − RMSE/RMSE_reference,因此大于 0 表示优于距平持续性,小于 0 表示更差。距平持续性是需要超越的标杆,在 1 天提前量时尤其如此。

测试年份发生了什么

Ridge 和阻尼持续性都会让预报向 1982-2015 年的气候态回归。在验证期,它们在大多数提前量上领先于距平持续性。在测试期,它们失去了大部分或全部优势。相对距平持续性的技巧评分(提前 1、7、30 天):

方法,区域 验证期(2016-2019) 测试期(2020-2025)
Ridge,黑潮区 +0.041, +0.077, +0.176 +0.025, +0.007, +0.088
Ridge,副热带区 +0.022, +0.056, +0.090 −0.049, −0.049, +0.006
阻尼持续性,黑潮区 +0.010, +0.067, +0.164 −0.017, −0.012, +0.058
阻尼持续性,副热带区 −0.004, −0.017, +0.028 −0.109, −0.178, −0.091

黑潮区的 Ridge 在所有提前量上仍然领先,只是 7 天的优势小得多。在副热带区,阻尼持续性在验证期的 1 天和 7 天就已落后,到了测试期则在所有提前量上落后。

一个可能的解释,但并未证实

验证期和测试期的年份都比 1982-2015 年的气候态更暖,测试期更甚。气候态预报的平均偏差从验证期的 −0.500 °C(黑潮区)和 −0.539 °C(副热带区),变为测试期的 −0.827 °C 和 −0.656 °C。阻尼持续性 30 天预报的偏差从 −0.324 和 −0.325 °C 变为 −0.527 和 −0.392 °C。向较旧气候态回归的方法,在海洋比该气候态更暖时付出的代价更大,所以这一解释是吻合的。

但仓库并没有证明变暖偏移就是原因。我没有检验任何其他解释,所以无法对它们排序,也无法排除它们。我能列出的是适用的局限:我没有做去趋势处理(改为加入了 OCN),只有一次固定划分,没有按时间块做交叉验证,六个测试年份是很短的记录,而且 Ridge 是逐格点拟合的,忽略了空间结构。我仍在学习海洋学,所以把这些当作描述,而不是物理解释。

一个小型 LSTM,以及我为什么不据此推广

基线完成之后,我加了一个小型 LSTM。它使用与 Ridge 相同的信息,即单个格点最近 30 天的距平,1 层,隐藏单元数 64(在验证集上选定)。每个区域训练 3 个随机种子,报告各种子的平均值,没有挑选种子,也没有集成。我在加载测试期之前写好方案并打上 pre-lstm-test 标签,然后只运行了一次测试。

测试集上相对 Ridge 的技巧评分(提前 1、7、30 天):

  • 副热带区: +0.029, +0.025, +0.022。LSTM 在所有提前量上都超过了 Ridge。
  • 黑潮区: −0.061, −0.017, −0.001。没有超过 Ridge。在验证期,7 天和 30 天的数值原本略为正(+0.006, +0.014),这些优势没有保持。

副热带区的结果比看上去弱。在该区域,Ridge 本身在 1 天和 7 天就比距平持续性差,LSTM 在这两个提前量上也落后于距平持续性(−0.018 和 −0.023)。此外 LSTM 使用完整的 30 天序列加上一年中的日期,而 Ridge 的输入较少,所以 LSTM 的部分提升可能来自输入而不是模型。我没有测试这一点。两个区域给出了不同的答案,所以我从中只得出一点:不要根据一个区域的一个结果编故事。

我的收获

  • 在相信验证期得出的排名之前,先检查它在之后的时期是否仍然成立。
  • 明确说出哪种解释与数据一致,哪种解释已被证实。
  • 一个学习型模型在一个区域赢、在另一个区域输,并不是关于深度学习的结论。

局限:只有两个小区域和一种数据产品(OISST),只有简单的统计基线,没有不确定性区间。代码是公开的,你可以对照 results/test_all.json、results/val_all.json 和 results/lstm_test.json 核对本文的每个数字。

代码由 Claude Code 编写;方法设计、决策与结果验证由我本人完成。