| response.surface.lsd | R Documentation |
This function produces a data object for the three-dimensional graphical representations of the meta-model response surfaces for a set of factors (parameters), including the confidence interval for the surfaces.
response.surface.lsd( data, model, sa, gridSz = 25, defPos = 2,
factor1 = 0, factor2 = 0, factor3 = 0 )
data |
an object created by a previous call to |
model |
an object created by a previous call to |
sa |
an object created by a previous call to |
gridSz |
integer: the number of divisions in the 3D wire frame grid. The default is 25. |
defPos |
1, 2, 3: the position of the default/calibration configuration on the 3 plot sequence. The default is 2 (center position). |
factor1 |
integer: the index of the first most-important factor: 0 = automatic selection (according to the Sobol index, the default); any other number = the selected factor index, according to DoE factor order. |
factor2 |
integer: the index of the second most-important factor: 0 = automatic selection (according to the Sobol index, the default); any other number = the selected factor index, according to DoE factor order. |
factor3 |
integer: the index of the third most-important factor: 0 = automatic selection (according to the Sobol index, the default); any other number = the selected factor index, according to DoE factor order. |
This function produces data for three different wire frame 3D plots. In the 3 plots, the x-y plan is defined by the 2 most-important factors (calculated or set by the user in sobol.decomposition.lsd) and the z axis represents the response variable chosen. The three different plots shows the response surface for three values of the third most-important factor: the minimum, the default/calibration and the maximum. The order the three response surfaces are shown is defined by defPos.
The automatically set most-important factors can be overridden by any factors chosen by the user by the usage of the arguments factor1, factor2 and factor3. This way, the response surfaces can be represented for a combination of any 3 factors (parameters) in the model.
The function returns an object/list of class response containing three similar objects, one for each 3D plot, each of them comprised of:
calib |
the predicted meta-model response values on each point of the 3D grid. |
factor |
the predicted values for each individual factor. |
default |
the predicted values for the default/calibration configuration. |
See the note in LSDsensitivity-package for step-by-step instructions on how to perform the complete sensitivity analysis process using LSD and R.
Marcelo C. Pereira [aut, cre] (<https://orcid.org/0000-0002-8069-2734>)
read.doe.lsd(),
kriging.model.lsd(),
polynomial.model.lsd(),
sobol.decomposition.lsd()
# get the example directory name
path <- system.file( "extdata/sobol", package = "LSDsensitivity" )
# Steps to use this function:
# 1. define the variables you want to use in the analysis
# 2. load data from a LSD simulation saved results using read.doe.lsd
# 3. fit a Kriging (or polynomial) meta-model using kriging.model.lsd
# 4. identify the most influential factors applying sobol.decomposition.lsd
# 5. calculate the response surface for the selected factors using model.limits.lsd
# 6. plot the response surface
lsdVars <- c( "var1", "var2", "var3" ) # the definition of existing variables
dataSet <- read.doe.lsd( path, # data files folder
"Sim3", # data files base name (same as .lsd file)
"var3", # variable name to perform the sensitivity analysis
does = 2, # number of experiments (data + external validation)
saveVars = lsdVars ) # LSD variables to keep in dataset
model <- kriging.model.lsd( dataSet ) # estimate best Kriging meta-model
SA <- sobol.decomposition.lsd( dataSet, model ) # find Sobol indexes
resp <- response.surface.lsd( dataSet, # LSD experimental data set
model, # estimated meta-model
SA ) # Sobol sensitivity analysis results
theta3d <- 310 # horizontal view angle
phi3d <- 30 # vertical view angle
grid3d <- 25
for( i in 1 : 3 ) { # do for each top factor
# plot 3D grid charts
zMat <- matrix( resp$calib[[ i ]]$mean, grid3d, grid3d, byrow = TRUE )
zlim <- range( zMat, na.rm = TRUE )
vt <- persp( resp$grid[[ 1 ]], resp$grid[[ 2 ]], zMat, col = "gray90",
xlab = colnames( dataSet$doe )[ SA$topEffect[ 1 ] ], zlim = zlim,
ylab = colnames( dataSet$doe )[ SA$topEffect[ 2 ] ], zlab = dataSet$saVarName,
theta = theta3d, phi = phi3d, ticktype = "detailed" )
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.