- using R Under development (unstable) (2025-02-15 r87723)
- using platform: x86_64-pc-linux-gnu
- R was compiled by
gcc (GCC) 14.2.1 20240912 (Red Hat 14.2.1-3)
GNU Fortran (GCC) 14.2.1 20240912 (Red Hat 14.2.1-3)
- running under: Fedora Linux 40 (Workstation Edition)
- using session charset: UTF-8
- using option ‘--no-stop-on-test-error’
- checking for file ‘rlibkriging/DESCRIPTION’ ... OK
- checking extension type ... Package
- this is package ‘rlibkriging’ version ‘0.9-1’
- package encoding: UTF-8
- checking package namespace information ... OK
- checking package dependencies ... OK
- checking if this is a source package ... OK
- checking if there is a namespace ... OK
- checking for executable files ... OK
- checking for hidden files and directories ... OK
- checking for portable file names ... OK
- checking for sufficient/correct file permissions ... OK
- checking whether package ‘rlibkriging’ can be installed ... [574s/254s] OK
See the install log for details.
- used C++ compiler: ‘g++ (GCC) 14.2.1 20240912 (Red Hat 14.2.1-3)’
- checking C++ specification ... OK
- checking package directory ... OK
- checking DESCRIPTION meta-information ... OK
- checking top-level files ... OK
- checking for left-over files ... OK
- checking index information ... OK
- checking package subdirectories ... OK
- checking code files for non-ASCII characters ... OK
- checking R files for syntax errors ... OK
- checking whether the package can be loaded ... OK
- checking whether the package can be loaded with stated dependencies ... OK
- checking whether the package can be unloaded cleanly ... OK
- checking whether the namespace can be loaded with stated dependencies ... OK
- checking whether the namespace can be unloaded cleanly ... OK
- checking loading without being on the library search path ... OK
- checking use of S3 registration ... OK
- checking dependencies in R code ... OK
- checking S3 generic/method consistency ... OK
- checking replacement functions ... OK
- checking foreign function calls ... OK
- checking R code for possible problems ... [16s/20s] OK
- checking Rd files ... OK
- checking Rd metadata ... OK
- checking Rd line widths ... OK
- checking Rd cross-references ... OK
- checking for missing documentation entries ... OK
- checking for code/documentation mismatches ... OK
- checking Rd \usage sections ... OK
- checking Rd contents ... OK
- checking for unstated dependencies in examples ... OK
- checking line endings in shell scripts ... OK
- checking line endings in C/C++/Fortran sources/headers ... OK
- checking line endings in Makefiles ... OK
- checking compilation flags in Makevars ... OK
- checking for GNU extensions in Makefiles ... INFO
GNU make is a SystemRequirements.
- checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK
- checking use of PKG_*FLAGS in Makefiles ... OK
- checking use of SHLIB_OPENMP_*FLAGS in Makefiles ... OK
- checking include directives in Makefiles ... OK
- checking pragmas in C/C++ headers and code ... OK
- checking compilation flags used ... OK
- checking compiled code ... OK
- checking examples ... OK
- checking for unstated dependencies in ‘tests’ ... OK
- checking tests ... [314s/365s] ERROR
Running ‘test-AllKrigingConcistency.R’
Running ‘test-KrigingCopy.R’
Running ‘test-KrigingFit.R’
Running ‘test-KrigingLeaveOneOut.R’
Running ‘test-KrigingLeaveOneOut_3d.R’
Running ‘test-KrigingLogLik.R’
Running ‘test-KrigingLogLikGradHess.R’ [30s/30s]
Running ‘test-KrigingMethods.R’
Running ‘test-KrigingPredict.R’ [24s/28s]
Running ‘test-KrigingSimulate.R’
Running ‘test-KrigingUpdate.R’
Running ‘test-KrigingUpdateSimulate.R’
Running ‘test-LinearAlgebra.R’
Running ‘test-NoiseKrigingFit.R’ [11s/11s]
Running ‘test-NoiseKrigingLogLik.R’
Running ‘test-NoiseKrigingMethods.R’
Running ‘test-NoiseKrigingPredict.R’ [17s/19s]
Running ‘test-NoiseKrigingSimulate.R’ [10s/12s]
Running ‘test-NoiseKrigingUpdate.R’
Running ‘test-NoiseKrigingUpdateSimulate.R’
Running ‘test-NuggetKrigingFit.R’ [15s/16s]
Running ‘test-NuggetKrigingLogLik.R’ [10s/12s]
Running ‘test-NuggetKrigingLogMargPost.R’ [18s/21s]
Running ‘test-NuggetKrigingMethods.R’
Running ‘test-NuggetKrigingPredict.R’ [17s/19s]
Running ‘test-NuggetKrigingSimulate.R’
Running ‘test-NuggetKrigingUpdate.R’
Running ‘test-NuggetKrigingUpdateSimulate.R’
Running ‘test-RobustGaSP-Nugget.R’
Running ‘test-RobustGaSP.R’
Running ‘test-RobustGaSPtrendlinear.R’
Running ‘test-RobustGaSPvsKrigingLMP.R’
Running ‘test-RobustGaSPvsNuggetKrigingLMP.R’
Running ‘test-SaveLoad.R’
Running ‘test-asDiceKriging.R’ [21s/26s]
Running ‘test-estimnone.R’
Running ‘test-normalize.R’
Running ‘test-rlibkriging-demo.R’
Running ‘test-unstableLL.R’
Running the tests in ‘tests/test-RobustGaSP.R’ failed.
Complete output:
> library(testthat)
> Sys.setenv('OMP_THREAD_LIMIT'=2)
> library(rlibkriging)
Attaching package: 'rlibkriging'
The following objects are masked from 'package:base':
load, save
>
> ##library(rlibkriging, lib.loc="bindings/R/Rlibs")
> ##library(testthat)
>
> library(RobustGaSP)
#########
##
## Robust Gaussian Stochastic Process, RobustGaSP Package
## Copyright (C) 2016-2025 Mengyang Gu, Jesus Palomo and James O. Berger
#########
Attaching package: 'RobustGaSP'
The following object is masked from 'package:rlibkriging':
simulate
The following object is masked from 'package:stats':
simulate
>
> context("RobustGaSP / Fit: 1D")
>
> f = function(x) 1-1/2*(sin(12*x)/(1+x)+2*cos(7*x)*x^5+0.7)
> #plot(f)
> n <- 5
> set.seed(123)
> X <- as.matrix(runif(n))
> y = f(X)
> #points(X,y)
> k = RobustGaSP::rgasp(design=X,response=y)
The upper bounds of the range parameters are 184.9743
The initial values of range parameters are 3.699485
Start of the optimization 1 :
The number of iterations is 30
The value of the marginal posterior function is 2.497978
Optimized range parameters are 0.1921691
Optimized nugget parameter is 0
Convergence: TRUE
The initial values of range parameters are 0.05223118
Start of the optimization 2 :
The number of iterations is 30
The value of the marginal posterior function is 1.035387
Optimized range parameters are 0.05296527
Optimized nugget parameter is 0
Convergence: TRUE
> #library(rlibkriging)
> r <- Kriging(y, X,
+ kernel="matern5_2",
+ regmodel = "constant", normalize = FALSE,
+ optim = "BFGS",
+ objective = "LMP")
> # m = as.list(r)
>
> # Check lmp function
>
> lmp_rgasp = function(X, model=k) {if (!is.matrix(X)) X = matrix(X,ncol=1);
+ # print(dim(X));
+ apply(X,1,
+ function(x) {
+ #y=-logMargPostFun(r,matrix(unlist(x),ncol=2))$logMargPost
+ y=RobustGaSP:::neg_log_marginal_post_approx_ref(param=(x),nugget=0, nugget.est=model@nugget.est,
+ R0=model@R0,X=model@X, zero_mean=model@zero_mean,output=model@output,
+ CL=model@CL,
+ a=0.2,
+ b=1/(length(model@output))^{1/dim(as.matrix(model@input))[2]}*(0.2+dim(as.matrix(model@input))[2]),
+ kernel_type=rep(as.integer(3),ncol(X)),alpha=model@alpha
+ )
+ y})}
> lmp_rgasp(1)
[1] -1.901254
>
> plot(lmp_rgasp,xlim=c(0.01,6))
> abline(v=(log(k@beta_hat)))
>
> lmp_lk = function(X) {if (!is.matrix(X)) X = matrix(X,ncol=1);
+ # print(dim(X));
+ apply(X,1,
+ function(x) {
+ y=-logMargPostFun(r,matrix(unlist(exp(-(x))),ncol=1))$logMargPost
+ y})}
> lmp_lk(1)
[1] -1.901254
>
> lines(seq(0.1,6,,5),lmp_lk(seq(0.1,6,,5)),col='red')
> abline(v=(log(1/as.list(r)$theta)),col='red')
>
> precision <- 1e-3
> test_that(desc=paste0("RobustGaSP / Fit: 1D / rgasp/lmp is the same that lk/lmp one"),
+ expect_equal(lmp_rgasp(1),lmp_lk(1),tol = precision))
Test passed 🥳
> test_that(desc=paste0("RobustGaSP / Fit: 1D / fitted theta is the same that RobustGaSP one"),
+ expect_equal(as.list(r)$theta[1],1/k@beta_hat,tol = precision))
Test passed 🥳
>
>
>
> dlmp_rgasp = function(X, model=k) {if (!is.matrix(X)) X = matrix(X,ncol=1);
+ # print(dim(X));
+ apply(X,1,
+ function(x) {
+
+ # print(RobustGaSP:::log_marginal_lik_deriv(param=(x),nugget=0,nugget_est=model@nugget.est,
+ # R0=model@R0,X=model@X, zero_mean=model@zero_mean,
+ # output=model@output,
+ # kernel_type=rep(as.integer(3),ncol(X)),alpha=model@alpha))
+ #
+ # print(RobustGaSP:::log_approx_ref_prior_deriv(param=(x),nugget=0, nugget_est=model@nugget.est,
+ # CL=model@CL,
+ # a=0.2,
+ # b=1/(length(model@output))^{1/dim(as.matrix(model@input))[2]}*(0.2+dim(as.matrix(model@input))[2])))
+
+
+ #y=-logMargPostFun(r,matrix(unlist(x),ncol=2))$logMargPost
+ y=RobustGaSP:::neg_log_marginal_post_approx_ref_deriv(param=(x),nugget=0, nugget.est=model@nugget.est,
+ R0=model@R0,X=model@X, zero_mean=model@zero_mean,output=model@output,
+ CL=model@CL,
+ a=0.2,
+ b=1/(length(model@output))^{1/dim(as.matrix(model@input))[2]}*(0.2+dim(as.matrix(model@input))[2]),
+ kernel_type=rep(as.integer(3),ncol(X)),alpha=model@alpha
+ )
+ y})}
> dlmp_rgasp(1)
[1] -1.703845
>
> dlmp_lk = function(X) {if (!is.matrix(X)) X = matrix(X,ncol=1);
+ apply(X,1,
+ function(x) {
+ y=-logMargPostFun(r,matrix(unlist(exp(-(x))),ncol=1),TRUE)$logMargPostGrad
+ y})}
> -exp(-1)*dlmp_lk(1)
[1] -1.703845
>
> precision <- 1e-3
> test_that(desc=paste0("RobustGaSP / Fit: 1D / rgasp/lmp deriv is the same that lk/lmp deriv"),
+ expect_equal(dlmp_rgasp(1),-exp(-1)*dlmp_lk(1),tol = precision))
Test passed 🎉
>
>
> # Check predict
>
> ntest <- 10
> Xtest <- seq(0,1,,ntest)
> Ytest_rgasp <- predict(k,matrix(Xtest,ncol=1))
> Ytest_libK <- predict(r,Xtest)
>
> plot(f)
> points(X,y)
> lines(Xtest,Ytest_rgasp$mean,col='blue')
> polygon(c(Xtest,rev(Xtest)),
+ c(Ytest_rgasp$mean+2*Ytest_rgasp$sd,rev(Ytest_rgasp$mean-2*Ytest_rgasp$sd)),
+ col=rgb(0,0,1,0.1), border=NA)
>
> lines(Xtest,Ytest_libK$mean,col='red')
> polygon(c(Xtest,rev(Xtest)),
+ c(Ytest_libK$mean+2*Ytest_libK$stdev,rev(Ytest_libK$mean-2*Ytest_libK$stdev)),
+ col=rgb(1,0,0,0.1), border=NA)
>
> precision <- 1e-3
> test_that(desc=paste0("pred mean is the same that RobustGaSP one"),
+ expect_equal(predict(r,0.7)$mean[1],predict(k,matrix(0.7))$mean,tol = precision))
Test passed 😸
> test_that(desc=paste0("pred sd is the same that RobustGaSP one"),
+ expect_equal(predict(r,0.7)$stdev[1],predict(k,matrix(0.7))$sd,tol = precision))
Test passed 🥇
>
>
> ## RobustGaSP examples
>
> #---------------------------------------
> # a 1 dimensional example
> #---------------------------------------
> context("RobustGaSP / 1 dimensional example")
>
>
> input=10*seq(0,1,1/14)
> output<-higdon.1.data(input)
> #the following code fit a GaSP with zero mean by setting zero.mean="Yes"
> model<- rgasp(design = input, response = output, zero.mean="No")
The upper bounds of the range parameters are 670.0756
The initial values of range parameters are 13.40151
Start of the optimization 1 :
The number of iterations is 30
The value of the marginal posterior function is -10.48964
Optimized range parameters are 13.2106
Optimized nugget parameter is 0
Convergence: TRUE
The initial values of range parameters are 0.08888889
Start of the optimization 2 :
The number of iterations is 30
The value of the marginal posterior function is -15.24592
Optimized range parameters are 0.1706386
Optimized nugget parameter is 0
Convergence: TRUE
> model
Call:
rgasp(design = input, response = output, zero.mean = "No")
Mean parameters: 2.174187e-10
Variance parameter: 4249.587
Range parameters: 13.2106
Noise parameter: 0
>
> testing_input = as.matrix(seq(0,10,1/100))
> model.predict<-predict(model,testing_input)
> names(model.predict)
[1] "mean" "lower95" "upper95" "sd"
>
> #########plot predictive distribution
> testing_output=higdon.1.data(testing_input)
> plot(testing_input,model.predict$mean,type='l',col='blue',
+ xlab='input',ylab='output')
> polygon( c(testing_input,rev(testing_input)),c(model.predict$lower95,
+ rev(model.predict$upper95)),col = "grey80", border = FALSE)
> lines(testing_input, testing_output)
> lines(testing_input,model.predict$mean,type='l',col='blue')
> lines(input, output,type='p')
>
> ## mean square erros
> mean((model.predict$mean-testing_output)^2)
[1] 4.63608e-05
>
> model_libK = Kriging(matrix(output,ncol=1), matrix(input,ncol=1),
+ kernel="matern5_2",
+ regmodel = "constant", normalize = FALSE,
+ optim = "BFGS",
+ objective = "LMP", parameters = NULL)
>
> lines(testing_input,predict(model_libK,testing_input)$mean,type='l',col='red')
> polygon(
+ c(testing_input,rev(testing_input)),
+ c(
+ predict(model_libK,testing_input)$mean+2*predict(model_libK,testing_input)$stdev,
+ rev(predict(model_libK,testing_input)$mean-2*predict(model_libK,testing_input)$stdev)),
+ col = rgb(1,0,0,0.1), border = FALSE)
>
> precision <- 1e-3
> test_that(desc=paste0("RobustGaSP / 1 dimensional example / pred mean is the same that RobustGaSP one"),
+ expect_equal(predict(model_libK,0.7)$mean[1],predict(model,matrix(0.7))$mean,tol = precision))
── Failure: RobustGaSP / 1 dimensional example / pred mean is the same that RobustGaSP one ──
predict(model_libK, 0.7)$mean[1] not equal to predict(model, matrix(0.7))$mean.
1/1 mismatches
[1] 0.621 - 0.623 == -0.00162
Error:
! Test failed
Backtrace:
▆
1. ├─testthat::test_that(...)
2. │ └─withr (local) `<fn>`()
3. └─reporter$stop_if_needed()
4. └─rlang::abort("Test failed", call = NULL)
Execution halted
- checking PDF version of manual ... [12s/15s] OK
- checking HTML version of manual ... OK
- checking for non-standard things in the check directory ... OK
- checking for detritus in the temp directory ... OK
- DONE
Status: 1 ERROR