【问题标题】:How to calculate RMSE on different time scale如何在不同的时间尺度上计算 RMSE
【发布时间】:2016-11-10 12:35:04
【问题描述】:

我有 18 年的每日模拟和观察数据,我可以使用此代码计算 RMSE;

sqrt( mean( (df$simulated-df$observed)^2 , na.rm = TRUE ) )

但我必须在整个时间段、每年、每月、每周和季节性时间尺度上计算不同时间序列的 RMSE。 此外,我想执行相关系数、方差、偏差和均值,并将所有结果放在一个文件中。

任何帮助将不胜感激。

【问题讨论】:

    标签: r mean variance pearson-correlation hydrogof


    【解决方案1】:

    您应该检查 hydroTSMhydroGOF 包。他们应该有你想要的一切

    例子:

        # Getting the new numeric goodness-of-fit measures
        gof(sim = Simulated, obs = Observed)
    
        # Plot 'obs' vs 'sim' for the daily,
        # monthly and annual time series 
        ggof(sim = Simulated, obs = Observed, ylab = "Q (ft3/day)",
             ftype = "dma", FUN = mean)
    

        ggof(sim = Sim, obs = Obs, ylab = "Q (ft3/day)",
             ftype = "seasonal", FUN = mean)
    

    【讨论】:

    • 是的,我正在使用hydroGOF包,你想分享代码吗?
    • @thecatalyst,由于模拟数据和观测数据都存在缺失值,我们如何处理这些代码中的缺失值?
    • 查看 Mauricio 在他的 Github 上的代码,然后在适用的情况下包含 na.rm = TRUE ggof.R。该函数调用hydroTSM package中的几个函数
    • 我在计算 Mauricio 的代码时收到此错误,如何纠正这些错误 [注意:'sim' & 'obs' 不是动物园对象 => 'ftype' 已更改为 'o ' ] xy.coords(x, y, xlabel, ylabel, log) 中的错误:“x”是一个列表,但没有组件“x”和“y”另外:警告消息:1:“rNSE”可以不可计算:'obs' 中的某些元素为零! 2:“rd”无法计算:“obs”中的某些元素为零!
    【解决方案2】:

    如果缩放是一个问题,那么建议您事先对数据进行标准化和规范化。这可以通过将日期编码为有意义的数字表示来完成。

    您可以从拟合模型的摘要中提取大部分所需的统计数据,您可以使用str() 进行探索。您还可以从 Metrics 包中获得很多有用的统计信息,包括 RMSE。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-13
      • 2014-03-22
      • 1970-01-01
      • 2017-12-01
      • 2014-07-05
      • 2023-03-10
      • 1970-01-01
      相关资源
      最近更新 更多