predict_MS | R Documentation |
Function to make prediction on Robust Calibration models after the rcalibration class has been constructed for multiple sources.
## S4 method for signature 'rcalibration_MS'
predict_MS(object, testing_input,
X_testing=as.list(rep(0,object@num_sources)),
testing_output_weights=NULL,
n_thinning=10,
interval_est=NULL,
interval_data=rep(F,length(testing_input)),
math_model=NULL,...)
object |
an object of class |
testing_input |
a list of matrices containing the inputs where the |
X_testing |
a list of matrices of mean/trend for prediction if specified. The number of rows of the matrix is equal to the number of predictive outputs for the corresponding source. |
testing_output_weights |
a list of vecots for the weight of testing outputs for multiple sources. |
n_thinning |
number of points further thinning the MCMC posterior samples. |
interval_est |
a list of vectors for the posterior predctive credible interval for multiple sources. If interval_est is NULL, we do not compute the posterior credible interval. It can be specified as a vector of values ranging from zero to one. E.g. |
interval_data |
a vector of bool values to decide whether the experimental noise is included for computing the posterior credible interval. |
math_model |
a list of functions for the math model to be calibrated for multiple sources. |
... |
extra arguments to be passed to the function (not implemented yet). |
The returned value is a S4 CLass predictobj.rcalibration
.
Mengyang Gu [aut, cre]
Maintainer: Mengyang Gu <mengyang@pstat.ucsb.edu>
A. O'Hagan and M. C. Kennedy (2001), Bayesian calibration of computer models, Journal of the Royal Statistical Society: Series B (Statistical Methodology, 63, 425-464.
K. R. Anderson and M. P. Poland (2016), Bayesian estimation of magma supply, storage, and eroption rates using a multiphysical volcano model: Kilauea volcano, 2000-2012.. Eath and Planetary Science Letters, 447, 161-171.
K. R. Anderson and M. P. Poland (2017), Abundant carbon in the mantle beneath Hawaii. Nature Geoscience, 10, 704-708.
Bayarri, Maria J and Berger, James O and Paulo, Rui and Sacks, Jerry and Cafeo, John A and Cavendish, James and Lin, Chin-Hsu and Tu, Jian (2007) A framework for validation of computer models. Technometrics. 49, 138–154.
M. Gu (2016), Robust Uncertainty Quantification and Scalable Computation for Computer Models with Massive Output, Ph.D. thesis., Duke University.
M. Gu and L. Wang (2017) Scaled Gaussian Stochastic Process for Computer Model Calibration and Prediction. arXiv preprint arXiv:1707.08215.
M. Gu (2018) Jointly Robust Prior for Gaussian Stochastic Process in Emulation, Calibration and Variable Selection . arXiv preprint arXiv:1804.09329.
#---------------------------------------------------------------------------------------------
# An example for calibrating and predicting mathematical models for data from multiple sources
#---------------------------------------------------------------------------------------------
library(RobustCalibration)
##reality
test_funct<-function(x){
sin(pi*x/2)+2*cos(pi*x/2)
}
##math model from two sources
math_model_source_1<-function(x,theta){
sin(theta*x)
}
math_model_source_2<-function(x,theta){
cos(theta*x)
}
input1=seq(0,2,2/(10-1))
input2=seq(0,3,3/(10-1))
##
output1=test_funct(input1)+rnorm(length(input1), sd=0.01)
output2=test_funct(input2)+rnorm(length(input2), sd=0.02)
plot(input1, output1)
plot(input2, output2)
design=list()
design[[1]]=as.matrix(input1)
design[[2]]=as.matrix(input2)
observations=list()
observations[[1]]=output1
observations[[2]]=output2
p_theta=1
theta_range=matrix(0,p_theta,2)
theta_range[1,]=c(0, 8)
simul_type=c(1,1)
math_model=list()
math_model[[1]]=math_model_source_1
math_model[[2]]=math_model_source_2
## calibrating two mathematical models for these two sources
model_sgasp=rcalibration_MS(design=design, observations=observations, p_theta=1,
simul_type=simul_type,math_model=math_model,
theta_range=theta_range,
S=10000,S_0=2000,
discrepancy_type=rep('S-GaSP',length(design)))
#plot(model_sgasp@post_theta[,1],type='l')
mean(model_sgasp@post_theta[,1])
testing_input1=seq(0,2,2/(25-1))
testing_input2=seq(0,3,3/(25-1))
testing_input=list()
testing_input[[1]]=as.matrix(testing_input1)
testing_input[[2]]=as.matrix(testing_input2)
predict_sgasp=predict_MS(model_sgasp, testing_input, math_model=math_model)
testing_output1=test_funct(testing_input1)
testing_output2=test_funct(testing_input2)
plot(predict_sgasp@mean[[1]])
lines(testing_output1)
plot(predict_sgasp@mean[[2]])
lines(testing_output2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.