Morris: The 'Morris' method

Description Usage Parameters Details References See Also Examples

Description

A mtk compliant implementation of the morris method for experiments design and sensitivity analysis.

Usage

Parameters

r:

the number of trajectories or a pair (r1,r2) if the version due to Campolongo et al. (2007) is used.

type:

the type of design (either oat or simplex).

levels:

the number of levels per factor (if type = "oat").

grid.jump:

the length of the steps within the trajectories (if type = "oat").

scale.factor:

a numeric value, the homothety factor of the (isometric) simplexes (if type = "simplex").

scale:

logical. If TRUE, the input design of experiments is scaled before computing the elementary effects so that all factors vary within the range [0,1].

shrink:

a scalar or a vector of scalars between 0 and 1, specifying shrinkage to be used on the probabilities before calculating the quantiles.

Details

  1. The mtk implementation uses the morris function of the sensitivity package. For further details on the arguments and the behavior, see help(morris, sensitivity).

  2. The mtk implementation of the Morris method includes the following classes:

    mtkMorrisDesigner:

    for the Morris design processes.

    mtkMorrisAnalyser:

    for Morris analysis processes.

    mtkMorrisDesignerResult:

    to store and manage the design.

    mtkMorrisAnalyserResult:

    to store and manage the analysis results.

  3. Many ways to create a Morris designer are available in mtk, but we recommend the following class constructors: mtkMorrisDesigner or mtkNativeDesigner.

  4. Many ways to create a Morris analyser are available in mtk, but we recommend the following class constructors: mtkMorrisAnalyser or mtkNativeAnalyser.

  5. The method Morris is usually used both to build the experiment design and to carry out the sensitivity analysis. In such case, we can use the mtkDefaultAnalyser instead of naming explicitly the method for sensitivity analysis (see example III in the examples section)

References

  1. Campolongo, F., J. Cariboni, and A. Saltelli, 2007. An effective screening design for sensitivity analysis of large models. Environmental Modelling and Software, 22, 1509–1518.

  2. Saltelli A., Chan K.and Scott E. M., 2000. Sensitivity Analysis. Wiley, New York

  3. Pujol G., 2009, Simplex-based screening designs for estimating metamodels, Reliability Engineering and System Safety 94, 1156–1160.

See Also

help(morris, sensitivity)

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
## Sensitivity analysis of the "Ishigami" model with the "Morris" method 

#	Example I: by using the class constructors: mtkMorrisDesigner() and mtkMorrisAnalyser()

#	Generate the factors
		data(Ishigami.factors)
		
# 	Build the processes and workflow:

#   1) the design process
		exp1.designer <- mtkMorrisDesigner( 
					listParameters = list(r=20, type="oat",
					   				levels=4, grid.jump=2)
							) 

#   2) the simulation process
		exp1.evaluator <- mtkNativeEvaluator(model="Ishigami") 

#   3) the analysis process 
		exp1.analyser <- mtkMorrisAnalyser()

#   4) the workflow

		exp1 <- mtkExpWorkflow(expFactors=Ishigami.factors,
	            processesVector = c(design=exp1.designer,	
	    				 		    evaluate=exp1.evaluator, 
	    						    analyze=exp1.analyser)
	    					    )

# 	Run the workflow and reports the results.
		run(exp1)
		print(exp1)
		plot(exp1)
#       plot3d.morris(extractData(exp1, name="analyze"))
    
## 	Example II:  by using the class constructors: mtkNativeDesigner() and mtkMorrisAnalyser()

#	Generate the factors
		data(Ishigami.factors)
		
# 	Build the processes and workflow:

#   1) the design process
		exp1.designer <- mtkNativeDesigner(design = "Morris", 
	    	  information = list(r=20, type="oat",
	    	  				levels=4, grid.jump=2)
	    	  				 ) 

#   2) the simulation process
		exp1.evaluator <- mtkNativeEvaluator(model="Ishigami") 

#   3) the analysis process with the default method
		exp1.analyser <- mtkMorrisAnalyser()

#   4) the workflow

		exp1 <- mtkExpWorkflow(expFactors=Ishigami.factors,
	    processesVector = c(design=exp1.designer, 
	    					evaluate=exp1.evaluator, 
	    					analyze=exp1.analyser)
	    				  )

# 	Run the workflow and reports the results.
		run(exp1)
		print(exp1)
		

## 	Example III:  by using the class constructors: mtkMorrisDesigner() and mtkDefaultAnalyser()

#	Generate the factors
		data(Ishigami.factors)
		
# 	Build the processes and workflow:

#   1) the design process
		exp1.designer <- mtkMorrisDesigner( listParameters = 
						list(r=20, type="oat", 
						levels=4, grid.jump=2))  

#   2) the simulation process
		exp1.evaluator <- mtkNativeEvaluator(model="Ishigami") 

#   3) the analysis process with the default method
		exp1.analyser <- mtkDefaultAnalyser()

#   4) the workflow

		exp1 <- mtkExpWorkflow(expFactors=Ishigami.factors,
	    processesVector = c(design=exp1.designer,	
	    					evaluate=exp1.evaluator, 
	    					analyze=exp1.analyser))

# 	Run the workflow and reports the results.
		run(exp1)
		print(exp1)

mtk documentation built on May 2, 2019, 4:15 a.m.