PCE-Changing constant input doesn't effect output, why?

Hello,
I am using experimental data to construct a PCE meta model. There are three input marginals. One of the input marginals is defined as a constant. Whenever I change the value of the constant the output remains the same. Why? That should not be the case. For convenience here is the code:

clearvars
rng(100,‘twister’)
uqlab

% Marginals for the INPUT object

IOpts.Marginals(1).Name = ‘A’;
IOpts.Marginals(1).Type = ‘Gaussian’;
IOpts.Marginals(1).Parameters = [0.0012 0.0017];

IOpts.Marginals(2).Name = ‘E’;
IOpts.Marginals(2).Type = ‘Gaussian’;
IOpts.Marginals(2).Parameters = [28 3.96];

IOpts.Marginals(3).Name = ‘T’;
IOpts.Marginals(3).Type = ‘Constant’;
IOpts.Marginals(3).Parameters = 1600; %%%%% This is the value that I change, yet the output is
always the same

myInput = uq_createInput(IOpts);

% Set-up PCE
MetaOpts.Type = ‘Metamodel’;
MetaOpts.MetaType = ‘PCE’;
MetaOpts.Degree = 20;

Manually specify an experimental design, in which case a model object is not needed.
Each row of the variables corresponds to one point. The ‘x’ variable has as many columns as there are input random variables
A_E_T_DATA = [0.0012 28 1243; 0.0012 28 1253; 0.0012 28 1275
0.0012 28 1310; 0.0012 28 1332; 0.0012 28 1375
0.0012 28 1386; 0.0012 28 1463; 0.0012 28 1428
0.0012 28 1473; 0.0012 28 1478; 0.0012 28 1500
0.0012 28 1498; 0.0012 28 1553; 0.0012 28 1587
0.0012 28 1598; 0.0012 28 1680];

IDT_DATA=[178.6; 176.3; 157.3; 113.6; 87.2; 65.5; 60.5; 38.1;
34.3; 31.6; 30.7; 25.7; 21.1; 19.6; 17.3; 14.2; 7.9];

MetaOpts.ExpDesign.X = A_E_T_DATA;
MetaOpts.ExpDesign.Y = IDT_DATA;

myPCE = uq_createModel(MetaOpts)

uq_print(myPCE)

Disregard three lines after ‘MetaOpts.Degree = 20’ - typing errors

Hi @Pilgrim,

Thanks for the post here. There are two points I would like to remark:

  1. PCE should be independent of the constant value when built from the data. If X_3 is a constant, there is no “function” dependence between X_3 and Y that can be revealed from the data (we cannot see the behavior of Y varying with respect to X_3 in the data as the latter is merely a constant value). In this case, when specifying X_3 constant in the input object, PCE will simply ignore it and build the model Y = f(X_1,X_2).
  2. There are some issues in your data: the third parameter is NOT a constant, whereas the first two random variables are indeed CONSTANT. On the one hand, this is incompatible with the input setup (so PCE ignores X_3). On the other hand, if you do not vary the first two input variables, there is no information about the simulator as a “function” of the input variables from the data, and thus PCE will not be able to represent it.

I hope this helps.

Hello Xujia,
Thank you for the reply. Is there any chance it is possible to meet via Microsoft Teams to review the PCE set-up in MATLAB so that I can verify my understanding?
Thank you for the consideration.