在R中引导Nash-Sutcliffe效率

时间:2015-01-23 19:25:47

标签: r bootstrapping

我试图在R中引导统计数据Nash-Sutcliffe Efficiency(NSE)。它用于评估水文模型模拟数据对观测数据的性能。包装内的功能' hydroGOF'存在以计算统计量(NSE())。统计数据的定义如下:

  

描述

     

sim和obs之间的Nash-Sutcliffe效率,处理缺失值。

     

用法

     

NSE(sim,obs,...)

我可以使用此代码成功引导相关系数(对象'运行'是一个双列数据框(观察到的径流和模拟径流):

mycorRun <- function(Run, i) cor(Run[i,])[1,2]
bootcorRun <- boot(Run, mycorRun,R=10000)

但是,当我尝试使用NSE函数模仿时,我收到以下错误:

library(hydroGOF)

observed.runoff <- c(0.3, 0.5, 1.1, 0.6, 0.1) simulated.runoff <- c(0.5, 0.7, 0.8, 0.4, 0.3) runoff <- data.frame(observed.runoff, simulated.runoff)

myNSERun <- function(runoff, i) NSE(runoff[i,])[1,2]

bootNSERun <- boot(runoff, myNSERun, R=10000)

as.matrix(obs)中的错误:参数&#34; obs&#34;缺少,没有默认

关于如何编写统计函数的任何想法?我尝试使用x&amp; amp创建自己的功能。 y变量而不是观察到的&amp;模拟,但它给了我同样的错误。

1 个答案:

答案 0 :(得分:0)

删除代码中的[1,2] - &gt; NSE(径流[I,])。但是,我不确定引导NSE是否是明智的选择,因为时间序列中存在时间相关性,而普通引导通常取决于iid变量。