Learn R Programming

sensitivity (version 1.30.1)

morrisMultOut: Morris's Elementary Effects Screening Method for Multidimensional Outputs

Description

morrisMultOut extend the Morris's elementary effects screening method (Morris 1991) to model with multidimensional outputs.

Usage

morrisMultOut(model = NULL, factors, r, design, binf = 0, bsup = 1,
       scale = TRUE, ...)
# S3 method for morrisMultOut
tell(x, y = NULL, ...)

Value

morrisMultOut returns a list of class "c(morrisMultOut, morris)", containing all the input argument detailed before, plus the following components:

call

the matched call.

X

a data.frame containing the design of experiments.

y

a matrix having as columns the model responses.

ee

a vector of aggregated elementary effects.

Arguments

model

NULL or a function returning a outputs a matrix having as columns the model outputs.

factors

an integer giving the number of factors, or a vector of character strings giving their names.

r

either an integer giving the number of repetitions of the design, i.e. the number of elementary effect computed per factor, or a vector of two integers c(r1, r2) for the space-filling improvement (Campolongo et al. 2007). In this case, r1 is the wanted design size, and r2 (\(> \code{r1}\)) is the size of the (bigger) population in which is extracted the design (this can throw a warning, see below).

design

a list specifying the design type and its parameters:

  • type = "oat" for Morris's OAT design (Morris 1991), with the parameters:

    • levels : either an integer specifying the number of levels of the design, or a vector of integers for different values for each factor.

    • grid.jump : either an integer specifying the number of levels that are increased/decreased for computing the elementary effects, or a vector of integers for different values for each factor. If not given, it is set to grid.jump = 1. Notice that this default value of one does not follow Morris's recommendation of \(\texttt{levels} / 2\).

  • type = "simplex" for simplex-based design (Pujol 2009), with the parameter:

    • scale.factor : a numeric value, the homothety factor of the (isometric) simplexes. Edges equal one with a scale factor of one.

binf

either an integer, specifying the minimum value for the factors, or a vector for different values for each factor.

bsup

either an integer, specifying the maximum value for the factors, or a vector for different values for each factor.

scale

logical. If TRUE, the input design of experiments is scaled after building the design and before computing the elementary effects so that all factors vary within the range [0,1]. For each factor, the scaling is done relatively to its corresponding bsup and binf.

x

a list of class "morris" storing the state of the screening study (parameters, data, estimates).

y

a vector of model responses.

...

for morrisMultOut: any other arguments for model which are passed unchanged each time it is called. For plot.morris: arguments to be passed to plot.default.

Author

Filippo Monari

Details

All the methods available for object of class "morris" are available also for objects of class "morrisMultOut". See the documentation relative to the function "morris" for more details.

References

Monari F. and P. Strachan, 2017. Characterization of an airflow network model by sensitivity analysis: parameter screening, fixing, prioritizing and mapping. Journal of Building Performance Simulation, 2017, 10, 17-36.

See Also

morris

Examples

Run this code

  mdl <- function (X) t(atantemp.fun(X))

  x = morrisMultOut(model = mdl, factors = 4, r = 50, 
  design = list(type = "oat", levels = 5, grid.jump = 3), binf = -1, bsup = 5, 
    scale = FALSE)
  print(x)
  plot(x)

  x = morrisMultOut(model = NULL, factors = 4, r = 50, 
  design = list(type = "oat", levels = 5, grid.jump = 3), binf = -1, bsup = 5, 
    scale = FALSE)
  Y = mdl(x[['X']])
  tell(x, Y)	
  print(x)
  plot(x)	

Run the code above in your browser using DataLab