Learn R Programming

hydroPSO (version 0.1-54-1)

lhoat: Latin-Hypercube One-factor-At-a-Time

Description

This function implements the Latin-Hypercube One-factor-At-a-Time procedure developed by van Griensven et al., (2006) for sensitivity analysis of model parameters

Usage

lhoat(fn="hydromod", lower=-Inf, upper=Inf, control=list(),
      model.FUN=NULL, model.FUN.args=list() )

Arguments

fn
character, name of a valid R function to be optimised or character value 'hydromod'. When fn='hydromod' the algorithm uses model.FUN and model.FUN.args to extract the values simulated by the model and to c
lower
numeric, lower boundary for each parameter Note for optim users: in hydroPSO the length of lower and upper are used to defined the dimension of the solution space
upper
numeric, upper boundary for each parameter Note for optim users: in hydroPSO the length of lower and upper are used to defined the dimension of the solution space
control
a list of control parameters. See Details
model.FUN
OPTIONAL. Used only when fn='hydromod' character, valid R function representing the model code to be calibrated/optimised
model.FUN.args
OPTIONAL. Used only when fn='hydromod' list with the arguments to be passed to model.FUN

Value

  • A list of two elements:
  • ParameterSetsa matrix with all the parameter sets used in the LH-OAT
  • Rankinga dataframe with a ranking, parameter id, and relative importance indicator for each parameter, sorted in decreasing order of importance

Details

By default the hydroPSO function performs minimization of fn, but it will maximize fn if MinMax='max' The default control arguments in hydroPSO implements the Standard PSO 2007 - SPSO2007 (see Clerc 2005; Clerc et al., 2010). At the same time, hydroPSO function provides options for clamping the maximal velocity, regrouping strategy when premature convergence is detected, time-variant acceleration coefficients, time-varying maximum velocity, (non-)linear / random / adaptive / best-ratio inertia weight definitions, random or LHS initialization of positions and velocities, synchronous or asynchronous update, 4 alternative neighbourhood topologies among others

The control argument is a list that can supply any of the following components: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

References

A. van Griensven, T. Meixner, S. Grunwald, T. Bishop, M. Diluzio, R. Srinivasan, A global sensitivity analysis tool for the parameters of multi-variable catchment models, Journal of Hydrology, Volume 324, Issues 1-4, 15 June 2006, Pages 10-23, DOI: 10.1016/j.jhydrol.2005.09.008.

See Also

hydroPSO, hydromod

Examples

Run this code
# Number of dimensions to be optimised
nparam <- 5

# Running the Latin-Hypercube One-factor-At-a-Time sensitivity analysis.
# Dummy case, because for this test function all the parameters have the
# same sensitivity
lhoat(
      fn="sphere", 
      lower=rep(-100,nparam), 
      upper=rep(100,nparam),
      control=list(N=10, f=0.1, write2disk=TRUE)
      
      )

# Plotting dotty plots      
read_params(file="LH_OAT-gof.txt", header=TRUE, skip=0, param.cols=2:(nparam+1), of.col=1, of.name="sphere", ptype="dottyplot")

Run the code above in your browser using DataLab