结果评价

According to Boyle et al. (2000),(Toward improved calibration of hydrologic models: Combining the strengths of manual and automatic methods. Water Resources Res. 36(12): 3663-3674.)

optimizing RMSE during model calibration may give small error variance but at the expense of significant model bias。因此需要综合考虑。


The Nash–Sutcliffe Efficiency (NSE), which measures the model fit primarily during high-flow periods;

The Box-Cox transformed root mean squared error (TRMSE), which accounts for low-flow periods;

The Mean Squared Derivative Error (MSDE) indicator of the fit of the hydrograph shape;

The runoff coefficient error (ROCE), which accounts for the long-term water balance.

Python代码:

# Calculate NSE - Nash-Sutcliffe Efficiency coefficient
def NSE3(obs,mol,k):
    numerator = 0
    denominator = 0
    meangauge = 0
    for i in range(len(obs)):
        numerator+=pow(abs(mol[i][k])-obs[i],2)
        meangauge+=obs[i]
    meangauge=meangauge/len(obs)
    for i in range(len(obs)):
        denominator+=pow(obs[i]-meangauge,2)
    return 1-numerator/denominator

def NSE(obs,mol):
    numerator = 0
    denominator = 0
    meangauge = 0
    for i in range(len(obs)):
        numerator+=pow(abs(mol[i])-obs[i],2)
        meangauge+=obs[i]
    meangauge=meangauge/len(obs)
    for i in range(len(obs)):
        denominator+=pow(obs[i]-meangauge,2)
    return 1-numerator/denominator

# Calculate TRMSE - The Box-Cox transformed root mean squared error
def TRMSE3(obs,mol,k):
    trmse = 0
    for i in range(len(obs)):
        zmdl = (pow((abs(mol[i][k])+1),0.3)-1)/0.3
        zobs = (pow((abs(obs[i])+1),0.3)-1)/0.3
        trmse+=pow(zmdl-zobs,2)
    return pow(trmse/len(obs),0.5)

def TRMSE(obs,mol):
    trmse = 0
    for i in range(len(obs)):
        zmdl = (pow((abs(mol[i])+1),0.3)-1)/0.3
        zobs = (pow((abs(obs[i])+1),0.3)-1)/0.3
        trmse+=pow(zmdl-zobs,2)
    return pow(trmse/len(obs),0.5)

# Calculate MSDE - Mean square derivative error
def MSDE(obs,mol,k):
    msde = 0
    for i in range(1,len(obs)):
        msde+=pow(((obs[i]-obs[i-1])-(mol[i][k]-mol[i-1][k])),2)
    return msde/len(obs)

# Calculate ROCE - the runoff coefficient error
def ROCE(obs,mol,k):
    summdl = 0
    sumobs = 0
    for i in range(len(obs)):
        summdl+=mol[i][k]
        sumobs+=obs[i]
    return abs(summdl-sumobs)/sumobs

NSE——Nash-Sutcliffe efficiency coefficient

(或简称Ens:注意ns是下标!)

http://blog.sciencenet.cn/home.php?mod=space&uid=350729&do=blog&id=1080236&from=space

公式中:Qo指观测值,Qm指模拟值,Qt(上标)表示第t时刻的某个值,Qo(上横线)表示观测值的总平均。

1-噪音/信息(实测值)

  • E取值为负无穷至1,E接近1,表示模式质量好,模型可信度高;
  • E接近0,表示模拟结果接近观测值的平均值水平,即总体结果可信,但过程模拟误差大;
  • E远远小于0,则模型是不可信的。

TRMSE——Box-Cox Transformed Root Mean Squared Error

 经B-C转换后的RMSE均方根误差:

  • Box-Cox变换的目的是为了让数据满足线性模型的基本假定,即线性、正态性及方差齐性。
  • 均方根误差亦称标准误差,它是观测值与真值偏差的平方与观测次数比值的平方根。均方根误差是用来衡量观测值同真值之间的偏差。标准误差 对一组测量中的特大或特小误差反映非常敏感,所以,标准误差能够很好地反映出测量的精密度。可用标准误差作为评定这一测量过程精度的标准。

均方根误差(或称方均根偏移均方根差方均根差等,英文:root-mean-square deviation、root-mean-square error、RMSDRMSE

  • 均方根误差代表模拟值和观察值之差的样本标准差(sample standard deviation),当这些差值是以资料样本来估计时,他们通常被称为残差;当这些差值不以样本来计算时,通常被称为预测误差(prediction errors)。
  • RMSE is always non-negative, and a value of 0 (almost never achieved in practice) would indicate a perfect fit to the data. In general, a lower RMSD is better than a higher one.
  • 对异常值很敏感,因此能够表示模拟精度;
  • 预测值与真实值偏差的平方与观测次数n比值的平方根。

MSDE——Mean Squared Derivative Error

Qi为t时刻观察值,Qi(上尖号)表示模拟值。形状拟合。

ROCE——Runoff Coefficient Error

径流系数:任意时段内径流深度R与同时段内降水深度P之比

ROCE:模拟径流系数与观测径流系数的差值。


其他指标——参考:“MODEL EVALUATION GUIDELINES FOR SYSTEMATIC QUANTIFICATION OF ACCURACY IN WATERSHED SIMULATIONS”

Pearson’s correlation coefficient (r) and coefficient of determination (R2):

描述模拟值和观测值的共线性程度。

typically values of R2 greater than 0.5 are considered acceptable (Santhi et al.,2001, Van Liew et al., 2003). 

虽然r和R2已广泛用于模型评价,但对离群值过于敏感,and insensitive to additive and proportional differences between model predictions and measured data。

发布了25 篇原创文章 · 获赞 7 · 访问量 2781

猜你喜欢

转载自blog.csdn.net/SDAU_LY124/article/details/104594258