ErrorCrit {airGR} | R Documentation

## Error criterion using the provided function

### Description

Function which computes an error criterion with the provided function.

### Usage

    ErrorCrit(InputsCrit, OutputsModel, FUN_CRIT, warnings = TRUE, verbose = TRUE)

### Arguments

`InputsCrit` | [object of class InputsCrit] see `CreateInputsCrit` for details
`OutputsModel` | [object of class OutputsModel] see `RunModel_GR4J` or `RunModel_CemaNeigeGR4J` for details
`FUN_CRIT` | (deprecated) [function] error criterion function (e.g. `ErrorCrit_RMSE`, `ErrorCrit_NSE`)
`warnings` | (optional) [boolean] boolean indicating if the warning messages are shown, default = `TRUE`
`verbose` | (optional) [boolean] boolean indicating if the function is run in verbose mode or not, default = `TRUE`

### Value

If `InputsCrit` is of class Single:

[list] containing the `ErrorCrit_*` functions outputs, see `ErrorCrit_RMSE` or `ErrorCrit_NSE` for details

If `InputsCrit` is of class Multi:

[list] of list containing the `ErrorCrit_*` functions outputs, see `ErrorCrit_RMSE` or `ErrorCrit_NSE` for details

If `InputsCrit` is of class Compo:

$CritValue | [numeric] value of the composite criterion
$CritName | [character] name of the composite criterion
$CritBestValue | [numeric] theoretical best criterion value
$Multiplier | [numeric] integer indicating whether the criterion is indeed an error (+1) or an efficiency (-1)
$CritCompo$MultiCritValues | [numeric] values of the sub-criteria
$CritCompo$MultiCritNames | [numeric] names of the sub-criteria
$CritCompo$MultiCritWeights | [character] weighted values of the sub-criteria
$MultiCrit | [list] of list containing the `ErrorCrit_*` functions outputs, see `ErrorCrit_NSE` or `ErrorCrit_KGE` for details

### Author(s)

Olivier Delaigue

### See Also

`CreateInputsCrit`, `ErrorCrit_RMSE`, `ErrorCrit_NSE`, `ErrorCrit_KGE`, `ErrorCrit_KGE2`

### Examples

    library(airGR)

    ## loading catchment data
    data(L0123001)

    ## preparation of the InputsModel object
    InputsModel <- CreateInputsModel(FUN_MOD = RunModel_GR4J, DatesR = BasinObs$DatesR,
                                     Precip = BasinObs$P, PotEvap = BasinObs$E)

    ## calibration period selection
    Ind_Run <- seq(which(format(BasinObs$DatesR, format = "%Y-%m-%d")=="1990-01-01"),
                   which(format(BasinObs$DatesR, format = "%Y-%m-%d")=="1999-12-31"))

    ## preparation of RunOptions object
    RunOptions <- CreateRunOptions(FUN_MOD = RunModel_GR4J, InputsModel = InputsModel,
                                   IndPeriod_Run = Ind_Run)

    ## simulation
    Param <- c(X1 = 257.238, X2 = 1.012, X3 = 88.235, X4 = 2.208)
    OutputsModel <- RunModel_GR4J(InputsModel = InputsModel,
                                  RunOptions = RunOptions, Param = Param)

    ## single efficiency criterion: Nash-Sutcliffe Efficiency
    InputsCritSingle <- CreateInputsCrit(FUN_CRIT = ErrorCrit_NSE,
                                         InputsModel = InputsModel, RunOptions = RunOptions,
                                         Obs = list(BasinObs$Qmm[Ind_Run]),
                                         VarObs = "Q", transfo = "",
                                         Weights = NULL)
    str(ErrorCrit(InputsCrit = InputsCritSingle, OutputsModel = OutputsModel))

    ## 2 efficiency critera:  RMSE and the Nash-Sutcliffe Efficiency
    InputsCritMulti <- CreateInputsCrit(FUN_CRIT = list(ErrorCrit_RMSE, ErrorCrit_NSE),
                                        InputsModel = InputsModel, RunOptions = RunOptions,
                                        Obs = list(BasinObs$Qmm[Ind_Run], BasinObs$Qmm[Ind_Run]),
                                        VarObs = list("Q", "Q"), transfo = list("", "sqrt"),
                                        Weights = NULL)
    str(ErrorCrit(InputsCrit = InputsCritMulti, OutputsModel = OutputsModel))

    ## efficiency composite criterion: Nash-Sutcliffe Efficiency mixing
    ##                                 both raw and log-transformed flows
    InputsCritCompo <- CreateInputsCrit(FUN_CRIT = list(ErrorCrit_NSE, ErrorCrit_NSE),
                                        InputsModel = InputsModel, RunOptions = RunOptions,
                                        Obs = list(BasinObs$Qmm[Ind_Run], BasinObs$Qmm[Ind_Run]),
                                        VarObs = list("Q", "Q"), transfo = list("", "log"),
                                        Weights = list(0.4, 0.6))
    str(ErrorCrit(InputsCrit = InputsCritCompo, OutputsModel = OutputsModel))

[Package airGR version 1.3.2.23 Index]