English Français

Documentation / Manuel utilisateur en Python : PDF version

XI.7. CIRCE method

XI.7. CIRCE method

The CIRCE method is a statistical approach proposed as an alternative to expert judgement, designed to determine the uncertainty of parameters in a physical model. Such uncertainties are often difficult to assess because some parameters may not be directly measurable. However, by relying on separate-effect tests (SET) experiments, that are sensitive to the physical model, it becomes possible to infer estimates of these uncertainties.

As explained in Section XI.1, CIRCE is not a strict calibration method, its logic differs from the standard framework (see [metho] for details). For this reason, it does not inherit from the TCalibration class (and therefore does not provide the common calibration methods presented in Section XI.2.3). Instead, it has its own dedicated structure, implemented in Uranie through the TCirce class.

The usage of the TCirce class can be summarised in a few key steps:

  1. Prepare the data and the model:

    • Specify the experimental dataserver;

    • Construct the TCirce object by specifying the experimental attribute, the code attribute, and the sensitivity attributes (see Section XI.7.1).

  2. Set the algorithm properties:

    • Initialise the algorithm;

    • Define optional behaviours (see Section XI.7.2).

  3. Perform the estimate:

  4. Perform post-processing:

XI.7.1. Constructing the TCirce object

To create an instance of the TCirce class, the constructor is available with the following prototype:


TCirce(tds, systar, syhat, ssensi, sexpuncert = "", option = "")
        

This method takes up to six arguments, two of which are optional:

tds

a TDataServer object containing:

  • one attribute for the experimental data,

  • one attribute for the code output,

  • and the attributes corresponding to the derivatives of the code output with respect to each parameter (one attribute per parameter).

systar

name of the experimental attribute;

syhat

name of the code output attribute;

ssensi

list of attribute names corresponding to the derivatives of the code output with respect to each parameter, separated by commas ",";

sexpuncert (optional)

name of the experimental uncertainty attribute;

option (optional)

currently, no options are implemented for this class.

XI.7.2. Defining the TCirce properties

Once the TCirce object has been constructed, it is possible to configure several hyperparameters of the algorithm.

The first one is the tolerance parameter used as a stopping criterion. Its default value is 1.0e-5, but it can be modified with the setTolerance method, whose prototype is the following:


setTolerance(dtol)
        

This method accepts a single argument: a double precision value defining the new tolerance.

It is also possible to provide initial values for the algorithm:

  • an initial vector of biases (default value is null vector), set with setBVectorInitial;

  • an initial correlation matrix (default value is identity matrix), set with setCMatrixInitial;


setBVectorInitial(vec)
setCMatrixInitial(mat)
        

Each method accepts a single argument, namely the initial TVectorD (for the biases) or the initial TMatrixD (for the correlation matrix).

Finally, the user can define the number of iterations for running the algorithm with different initial correlation matrices (default value is 1) using the setNCMatrix method, whose prototype is the following:


setNCMatrix(n)
        

This method accepts a single integer argument that sets the number of iterations.

All these methods have corresponding getter functions, which allow retrieving the current values:

  • getTolerance returns the tolerance (double),

  • getBVectorInitial returns the initial bias vector (TVectorD),

  • getCMatrixInitial returns the initial correlation matrix (TMatrixD),

  • getNCMatrix returns the number of iterations (integer).

XI.7.3. Running the estimate

Since the TCirce class does not inherit from the TCalibration class (as it is not strictly a calibration method), it provides its own execution method. This method is named estimate (rather than estimateParameters) and must be called directly from the TCirce object to compute the vector of biases and the correlation matrix. Its prototype is:


estimate(option = "")
        

This method accepts a single optional argument, which can specify options for running the process. At present, no options are implemented for this class, so the argument should not be used.

XI.7.4. Looking at the results

Once the computation is complete, several methods are available to extract or display the results.

The bias vector and the correlation matrix can be retrieved with the getBVector and getCMatrix methods, respectively:


getBVector()
getCMatrix()
        

These methods take no arguments, as they are directly applied to the TCirce object after the process has been run. They return a TVectorD and a TMatrixD corresponding to the bias vector and the correlation matrix.

It is also possible to obtain the likelihood value for the optimal parameters with the getLikelihood method:


getLikelihood()
        

This method also takes no arguments. It returns a double corresponding to the likelihood value of the optimal parameters.

The methods getMatrixVarianceMu and getMatrixVarianceSigma return, respectively, the variance matrices of mu and sigma, as computed via the Fisher Matrix confidence interval:


getMatrixVarianceMu()
getMatrixVarianceSigma()
        

Finally, all of this information can be displayed on the console using the printResults method:


printResults(option = "")
        

This method accepts a single optional argument, which can specify options for running the process. At present, no options are implemented for this class, so the argument should not be used.

An example is also provided in the use-case section (see Section XIV.12.7).