During the optimization of the Kriging model, I would like to bound the Kriging variance.
The options to enable this are highlighted in Table 17 page 53 of the uq lab Kriging manual.
the options should be:
MetaOpts.Optim.Regression.SigmaSQ.InitialValue = 1;
MetaOpts.Optim.Regression.SigmaSQ.Bound = [0.1;3];
However the following warning is returned:
Warning: The option “Regression” is not a valid option for Model 1, it will not be used.
Warning: There were 1 invalid options found for Model 1
In uq_options_remainder (line 52)
In uq_Kriging_initialize (line 98)
In uq_initialize_uq_metamodel (line 431)
In uq_core_module/run_initialization_script (line 208)
In uq_core_model/add_module (line 100)
In uq_createModel (line 116)
In uq_lab_test (line 47)
I tried a number of variations, but each time a similar warning occurs.
Did I miss something or is there a different way to bound the variance during optimization?
Script below shows the problem, using Matlab 2020b and uq_lab 2.0.0.
clear all
close all
uqlab;
%% function
noiseVar = 0.5;
fun = @(x) x.*sin(x) + sqrt(noiseVar)*randn(length(x),1);
%% inputs
InputOpts.Marginals(1).Type = 'Uniform';
InputOpts.Marginals(1).Parameters = [0 50];
myInput = uq_createInput(InputOpts);
X_LHS = uq_getSample(50,'LHS');
Y_user = fun(X_LHS);
%% meta model
rng(100,'twister') % F or r e p r o d u c i b l e r e s u l t s
MetaOpts.Type = 'Metamodel';
MetaOpts.MetaType = 'Kriging';
MetaOpts.ExpDesign.Sampling = 'User';
MetaOpts.Optim.MaxIter = 100;
MetaOpts.Regression.SigmaNSQ = 'auto';
MetaOpts.Optim.Regression.SigmaSQ.InitialValue = 1;
MetaOpts.Optim.Regression.SigmaSQ.Bound = [0.1;3];
% this option is set to limit the kriging variance, according to uq-lab
% kriging manual p
% MetaOpts.Optim.Regression.SigmaSQ.Bound = [0.1;3];
MetaOpts.ExpDesign.X = X_LHS;
MetaOpts.ExpDesign.Y = Y_user;
% Cr e a t e t h e K r i g i n g metamodel
myKriging = uq_createModel(MetaOpts);
uq_display(myKriging)