算法指标

通用指标

二值准确率

对于二值化的预报要素(例如晴雨),可以通过对预报和真值的匹配程度来统计准确率。

二值准确率是对于预报和真值完全一致的样本计为“预报准确”,然后计算“预报准确”样本数与预报总样本数之间的比值。公式如下:

\[ACC_{b} = \frac{C_{b}}{N} \times 100\%\]

式中:

\(ACC_{b}\)——二值预报准确率。

\(C_{b}\)——预报与真值之间匹配一致的样本个数。

\(N\)——预报的总样本个数。

代码示例:

>>> import numpy as np
>>> from cyeva import calc_binary_accuracy_ratio
>>> from cyeva import Comparison

>>> obs = np.array([False, True, True, False])
>>> fct = np.array([False, False, True, True])

>>> calc_binary_accuracy_ratio(obs, fct)
50.0

>>> cp = Comparison(observation=obs, forecast=fct)
>>> cp.calc_binary_accuracy_ratio()
50.0

误差准确率

对于非二值化的预报要素,可以通过误差阈值过滤的方式来定义“准确”与“不准确”,进而再进行准确率的统计计算。

误差准确率是对于误差在允许范围内计为“预报准确”,然后计算“预报准确”样本数与预报总样本数之间的比值。公式如下:

\[ACC_{e} = \frac{C_{e}}{N} \times 100\%\]

式中:

\(ACC_{e}\)——预报与真值之间误差范围在 \(e\) 以内的准确率。

\(C_{e}\)——预报与真值之间误差范围在 \(e\) 以内的样本个数。

\(N\)——预报的总样本个数。

代码示例:

>>> import numpy as np
>>> from cyeva import calc_diff_accuracy_ratio
>>> from cyeva import Comparison

>>> obs = np.array([1, 2, 3, 4, 5])
>>> fct = np.array([1.5, 2.4, 3.1, 4.4, 6])

>>> calc_diff_accuracy_ratio(obs, fct, limit=0.5)
80.0

>>> cp = Comparison(observation=obs, forecast=fct)
>>> cp.calc_diff_accuracy_ratio(limit=0.5)
80.0

均方根误差(RMSE)

均方根误差是预测值与真实值偏差的平方与观测次数比值的平方根,可用于衡量预测值与真值的偏离程度。公式如下:

\[RMSE = \sqrt{\frac{\sum_{k=1}^n (O_{k} - F_{k})^2}{n}}\]

式中:

\(RMSE\)——均方根误差。

\(O_{k}\)——第 \(k\) 个观测值。

\(F_{k}\)——第 \(k\) 个预报值。

\(n\)——总样本数量

平均绝对误差(MAE)

平均绝对误差MAE是绝对误差的平均值,它其实是更一般形式的误差平均值。公式如下:

\[MAE = \frac{\sum_{k=1}^n |O_{k} - F_{k}|}{n}\]

式中:

\(MAE\)——平均绝对误差。

\(O_{k}\)——第 \(k\) 个观测值。

\(F_{k}\)——第 \(k\) 个预报值。

\(n\)——总样本数量

剩余平方和(RSS)

剩余平方和是统计学术语,也称作残差平方和,是实际值与估计值之差的平方的总和,也就是误差项平方的总和,利用剩余平方和可以很好地表示剩余的总和。公式如下:

\[RSS = \sum_{k=1}^n (O_{k} - F_{k})^2\]

式中:

\(RSS\)——剩余平方和。

\(O_{k}\)——第 \(k\) 个观测值。

\(F_{k}\)——第 \(k\) 个预报值。

卡方(χ2)

降水指标

降水分级规则

对于降水等级的划分,目前行业上有两个国家标准对12小时和24小时的等级判断阈值做了定义:

  1. 《中华人民共和国气象行业标准——降水量等级 GB/T 28592——2012》

  2. 《中华人民共和国气象行业标准——降雨过程等级 QX/T 489——2019》

具体如下:

等级

12h降水量 (mm)

24h降水量 (mm)

小雨

0.1 ~ 4.9

0.1 ~ 9.9

中雨

5.0 ~ 14.9

10.0 ~ 24.9

大雨

15.0 ~ 29.9

25.0 ~ 49.9

暴雨

30.0 ~ 69.9

50.0 ~ 99.9

大暴雨

70.0 ~ 139.9

100.0 ~ 249.9

特大暴雨

>=140.0

>=250.0

常见的模式预报的预报间隔为1小时和3小时,因此对于1小时和3小时降水等级的划分是非常有必要的,但是对于此类间隔的预报,目前并没有国家标准对其进行明确定义。我们基于实践的经验,对1小时和3小时按以下阈值进行划分:

等级

1h降水量 (mm)

3h降水量 (mm)

小雨

0.1 ~ 1.9

0.1 ~ 2.9

中雨

2.0 ~ 4.9

3.0 ~ 9.9

大雨

5.0 ~ 9.9

10.0 ~ 19.9

暴雨

10.0 ~ 19.9

20.0 ~ 49.9

大暴雨

>=20.0

50.0 ~ 69.9

特大暴雨

>=70.0

综上,在cyeva中,降水等级降遵循以下这张表:

编号

等级

1h降水量 (mm)

3h降水量 (mm)

12h降水量 (mm)

24h降水量 (mm)

0

无雨

<0.1

<0.1

<0.1

<0.1

1

小雨

0.1 ~ 1.9

0.1 ~ 2.9

0.1 ~ 4.9

0.1 ~ 9.9

2

中雨

2.0 ~ 4.9

3.0 ~ 9.9

5.0 ~ 14.9

10.0 ~ 24.9

3

大雨

5.0 ~ 9.9

10.0 ~ 19.9

15.0 ~ 29.9

25.0 ~ 49.9

4

暴雨

10.0 ~ 19.9

20.0 ~ 49.9

30.0 ~ 69.9

50.0 ~ 99.9

5

大暴雨

>=20.0

50.0 ~ 69.9

70.0 ~ 139.9

100.0 ~ 249.9

6

特大暴雨

>=70.0

>=140.0

>=250.0

备注

上表同时收录于 降水等级表

基于上表,我们定义 降水量值落在降水等级表中某个等级上下阈值之内的降水即为对应等级的降水等级 ,各级别之间是互斥的,也就是同一个降水量不会同时属于两个降水等级。

例如:

  • 1小时降水量为 0.10 mm,则对应为小雨级别。

  • 3小时降水量为 15 mm,则对应为大雨级别。

  • 12小时降水量为 120 mm,则对应为大暴雨级别。

  • 24小时降水量为 280 mm,则对应为特大暴雨级别。

备注

1小时降水未设置特大暴雨级别

累积降水分级规则

在降水等级的基础上,我们定义累积降水等级为: 降水量值落在降水等级表中某个等级下阈值之上的降水即属于对应等级的累积降水等级 ,各级别之间不是互斥的,也就是同一个降水量可能会同时属于多个降水等级,其阈值参考下表:

编号

等级

1h降水量 (mm)

3h降水量 (mm)

12h降水量 (mm)

24h降水量 (mm)

0

无雨

<0.1

<0.1

<0.1

<0.1

1

小雨

>=0.1

>=0.1

>=0.1

>=0.1

2

中雨

>=2.0

>=3.0

>=5.0

>=10.0

3

大雨

>=5.0

>=10.0

>=15.0

>=25.0

4

暴雨

>=10.0

>=20.0

>=30.0

>=50.0

5

大暴雨

>=20.0

>=50.0

>=70.0

>=100.0

6

特大暴雨

>=70.0

>=140.0

>=250.0

备注

上表同时收录于 累积降水等级表

例如:

  • 1小时降水量为 0.10 mm,则对应为小雨级别。

  • 3小时降水量为 15 mm,则该次降水量最大达到大雨级别,但同时也达到了小雨和中雨级别的阈值,因此可以认为该降水量同时属于小雨、中雨和大雨。

  • 12小时降水量为 120 mm,则该次降水量达到了大暴雨级别,但同时也达到了小雨、中雨、大雨和暴雨级别的阈值,因此可以认为该降水量同时属于小雨、中雨、大雨、暴雨和大暴雨。

  • 以此类推

备注

累积降水等级相对于降水等级来说对等级的划分更加宽容,在相同算法下按照累积降水等级计算的评分会更高。

晴雨准确率

晴雨准确率,是指根据一定阈值对降水量进行“晴雨”识别,识别出“晴天”或“雨天”,然后将预报和观测同为“晴天”和同为“雨天”的计为“准确”,二者不一致的计为“不准确”,然后对该结果进行准确率评估的比例值。公式如下:

\[ACC_{rs} = \frac{C_{rs}}{N} \times 100\%\]

式中:

\(ACC_{rs}\)——晴雨预报准确率。

\(C_{rs}\)——晴雨预报与真值之间匹配一致的样本个数。

\(N\)——晴雨预报的总样本个数。

备注

晴雨准确率就是一种有物理意义的 二值准确率

降水量误差准确率

降水量误差准确率,是指预报与观测之间的偏差在指定范围内计为“准确”,而偏差超出范围的值计为“不准确”,然后对该结果进行准确率评估的比例值。公示如下:

\[ACC_{re} = \frac{C_{e}}{N} \times 100\%\]

式中:

\(ACC_{re}\)——降水量预报与真值之间误差范围在 \(re\) 以内的准确率。

\(C_{re}\)——降水预报与真值之间误差范围在 \(re\) 以内的样本个数。

\(N\)——降水预报的总样本个数。

备注

降水量误差准确率就是 误差准确率 对降水要素的套用。

晴雨命中率/空报率/漏报率

对于晴雨来说,我们通常会计算命中率、空报率、漏报率等直观的指标来评估预报的准确性,在计算这些指标之前,我们需要先知道 命中空报漏报负正确 的概念。

观测

预报

总计

命中

空报

预报“是”

漏报

正确否定

预报“否”

总计

观测“是”

观测“否”

总计

  • 命中(hits) 即为观测和预报都认为 (例如预报下雨观测也下雨)的次数;

  • 漏报(misses) 即为预报认为 而观测得到 (例如预报无雨而观测到下雨)的次数;

  • 空报(false alarms) 即为预报认为 而观测认为 (例如预报下雨而观测无雨)的次数。

  • 正确否定(correct negatives) 即为预报认为 而观测认为 (例如预报无雨且观测也无雨)的次数。

命中率

命中率是命中次数与观测为 事件次数的比值。公式如下:

\[HR = \frac{hits}{hits + misses} \times 100\%\]

空报率

空报率是空报次数与预报为 事件次数的比值。公式如下:

\[FAR = \frac{false\ alarms}{hits + false\ alarms} \times 100\%\]

漏报率

漏报率是命中次数与观测为 事件次数的比值。公式如下:

\[MR = \frac{misses}{hits + misses} \times 100\%\]

晴雨TS评分

晴雨ETS评分

晴雨BIAS评分

降水分级命中率/空报率/漏报率

降水分级TS评分

降水分级ETS评分

降水分级BIAS评分

累积降水分级命中率/空报率/漏报率

累积降水分级TS评分

累积降水分级ETS评分

累积降水分级BIAS评分

风指标

本项目对于风的预报的针对性检验评分,主要参考了《中华人民共和国国家标准:天气预报检验 风预报》(GB/T37302—2019)中的相关指标定义。当然,除了国标中列出的指标以外,我们还额外增加了一些自定义的实用指标。

风速均方根误差

风速均方根误差是预报风速与观测风速之间的均方根误差,均方根误差的定义及计算方法请参考 均方根误差(RMSE) 章节。

风速平均绝对误差

风速平均绝对误差是预报风速雨观测风速之间的平均绝对误差,平均绝对误差的定义及计算方法请参考 平均绝对误差(MAE) 章节。

风级准确率

风级准确率为风力等级预报正确次数与风力等级预报总次数的百分比。预报风力和实况风力在同一风力等级,则为风力等级预报正确。公式如下:

\[S_{AC,k} = \frac{R_{s,k}}{N_{s,k}} \times 100\%\]

式中:

\(S_{AC,k}\)——风力等级预报准确率,下角标 \(k\) 为规定的某个风力检验等级标识;

\(R_{s,k}\) ——风力等级预报正确次数。

\(N_{s,k}\) ——风力等级预报总次数。

备注

本项目的风力等级采用 《中华人民共和国国家标准:风力等级 GB/T 28591-2012》 表一中的风力等级划分,下同。具体等级表见附录 风力等级表

风级偏强/偏弱率

风级偏强为风力等级预报偏强次数与风力等级预报总次数的百分比。预报风力所在的检验等级大于实况风力所在的检验等级,则为风力等级预报偏强。 同理,风级偏弱率为风力等级预报偏弱次数与风力等级预报总次数的百分比。预报风力所在的检验等级小于实况风力所在的检验等级,则为风力等级预报偏弱。公式如下:

\[ \begin{align}\begin{aligned}S_{FS,k} = \frac{S_{s,k}}{N_{s,k}} \times 100\%\\S_{FW,k} = \frac{W_{s,k}}{N_{s,k}} \times 100\%\end{aligned}\end{align} \]

式中:

\(S_{FS,k}\)——风力等级预报偏强率,下角标 \(k\) 为规定的某个风力检验等级标识;

\(S_{s,k}\) ——风力等级预报偏强次数。

\(S_{FW,k}\)——风力等级预报偏弱率,下角标 \(k\) 为规定的某个风力检验等级标识;

\(W_{s,k}\) ——风力等级预报偏弱次数。

\(N_{s,k}\) ——风力等级预报总次数。

风级评分

风向方位准确率

风向角度均方根误差

风向角度平均绝对误差

风向角度误差准确率

风向评分