The function obliqueProf_UQ computes the profile extrema functions for posterior realizations of a Gaussian process and its confidence bounds
obliqueProf_UQ(object, allPsi, threshold, allResMean = NULL,
quantiles_uq = c(0.05, 0.95), options_approx = NULL,
options_full_sims = NULL, options_sims = NULL,
options_bound = NULL, plot_level = 0, plot_options = NULL,
return_level = 1)
either a km model or a list containing partial results. If object
is a km model then all computations are carried out. If object
is a list, then the function carries out all computations to complete the results list.
a list containing the matrices Psi (dim
the threshold of interest
a list resulting from getProfileExtrema
or approxProfileExtrema
for the profile extrema on the mean. If NULL the median from the observations is plotted
a vector containing the quantiles to be computed
an optional list of options for approxProfileExtrema, see approxProfileExtrema for details.
an optional list of options for getProfileExtrema, see getProfileExtrema for details. If NULL the full computations are not executed. NOTE: this computations might be very expensive!
an optional list of options for the posterior simulations.
algorithm:
string choice of the algorithm to select the pilot points ("A" or "B", default "B");
lower:
rep(0,d)
;
upper:
rep(1,d)
;
batchsize:
number of pilot points, default 120
;
optimcontrol:
list containing the options for optimization, see optim_dist_measure;
integcontrol:
list containing the options for numerical integration of the criterion, see optim_dist_measure;
integration.param:
list containing the integration design, obtained with the function integration_design;
nsim:
number of approximate GP simulations, default 300
.
an optional list containing beta
the confidence level for the approximation and alpha
the confidence level for the bound. Note that alpha > 2*beta
. If NULL
, the bound is not computed.
an integer to select the plots to return (0=no plots, 1=basic plots, 2= all plots)
an optional list of parameters for plots. See setPlotOptions for currently available options.
an integer to select the amount of details returned
If return_level=1 a list containing
profSups:
an array dxfullDesignSizexnsims
containing the profile sup for each coordinate for each realization.
profInfs:
an array dxfullDesignSizexnsims
containing the profile inf for each coordinate for each realization.
prof_quantiles_approx:
a list containing the quantiles (levels set by quantiles_uq
) of the profile extrema functions.
if return_level=2 the same list as above but also including more:
a list containing
times:
a list containing
tSpts:
computational time for selecting pilot points.
tApprox1ord:
vector containing the computational time required for profile extrema computation for each realization
simuls:
a matrix containing the value of the field simulated at the pilot points
sPts:
the pilot points
# NOT RUN {
if (!requireNamespace("DiceKriging", quietly = TRUE)) {
stop("DiceKriging needed for this example to work. Please install it.",
call. = FALSE)
}
# Compute a kriging model from 50 evaluations of the Branin function
# Define the function
g<-function(x){
return(-branin(x))
}
gp_des<-lhs::maximinLHS(20,2)
reals<-apply(gp_des,1,g)
kmModel<-km(design = gp_des,response = reals,covtype = "matern3_2")
threshold=-10
d<-2
# Compute oblique profiles UQ starting from GP model
# define simulation options
options_sims<-list(algorithm="B", lower=rep(0,d), upper=rep(1,d),
batchsize=80, optimcontrol = list(method="genoud",pop.size=100,print.level=0),
integcontrol = list(distrib="sobol",n.points=1000), nsim=150)
# define approximation options
options_approx<- list(multistart=4,heavyReturn=TRUE,
initDesign=NULL,fullDesignSize=100,
smoother=NULL)
# define plot options
options_plots<-list(save=FALSE, titleProf = "Coordinate profiles",
title2d = "Posterior mean",qq_fill=TRUE)
# Define the oblique directions
# (for theta=0 it is equal to coordinateProfiles)
theta=pi/4
allPsi = list(Psi1=matrix(c(cos(theta),sin(theta)),ncol=2),
Psi2=matrix(c(cos(theta+pi/2),sin(theta+pi/2)),ncol=2))
# }
# NOT RUN {
# here we reduce the number of simulations to speed up the example
# a higher number should be used
options_sims$nsim <- 50
# profile UQ on approximate oblique profiles
oProfiles_UQ<-obliqueProf_UQ(object = kmModel,threshold = threshold,allPsi=allPsi,
allResMean = NULL,quantiles_uq = c(0.05,0.95),
options_approx = options_approx, options_full_sims = NULL,
options_sims = options_sims,options_bound = NULL,
plot_level = 3, plot_options = options_plots,return_level = 3)
# profile UQ on full optim oblique profiles
options_full_sims<-list(multistart=4,heavyReturn=TRUE)
oProfiles_UQ_full<- obliqueProf_UQ(object = oProfiles_UQ,threshold = threshold,allPsi=allPsi,
allResMean = NULL,quantiles_uq = c(0.05,0.95),
options_approx = options_approx, options_full_sims = options_full_sims,
options_sims = options_sims,options_bound = NULL,
plot_level = 3, plot_options = options_plots,return_level = 3)
# profile UQ on full optim oblique profiles with bound
oProfiles_UQ_full_bound<-obliqueProf_UQ(object = oProfiles_UQ_full,threshold = threshold,
allPsi=allPsi, allResMean = NULL,
quantiles_uq = c(0.05,0.95),
options_approx = options_approx,
options_full_sims = options_full_sims,
options_sims = options_sims,
options_bound = list(beta=0.024,alpha=0.05),
plot_level = 3, plot_options = options_plots,
return_level = 3)
# }
Run the code above in your browser using DataLab