Documentation / Developer's manual
Available modules
Calibration,  DataServer,  Launcher,  MetaModelOptim,  Modeler,  Optimizer,  ReLauncher,  Reliability,  ReOptimizer,  Sampler,  Sensitivity,  UncertModeler,  XmlProblem,  
Uranie / Sampler v4.9.0
|
Description of the class TBasicSampling. More...
#include <TBasicSampling.h>
Public Types | |
enum | EType { kLHS , kSRS , kUnknown } |
Public Member Functions | |
Constructor and Destructor | |
TBasicSampling (URANIE::DataServer::TDataServer *tds, Option_t *option="lhs", Int_t sampleSize=1000) | |
virtual | ~TBasicSampling () |
Default destructor. | |
Correlations | |
void | setTolerance (Double_t tolerance) |
Set the precision of similarity | |
void | setCorrelationMatrix (TMatrixD corrMat) |
Set the correlation matrix. | |
void | setUserCorrelation (TString attName1, TString attName2, Double_t corrValue) |
Set user correlation for two attributes. | |
void | findSimilar () |
Locate totally correlated attributes. | |
Generate the sample | |
void | generateCorrSample (Option_t *option="") |
Generates correlated data following a user defined correlation matrix. | |
void | generateSample (Option_t *option="") |
Generates the sample. | |
virtual void | fillOtherAttributes () |
Fills the TAttributeFormula and totally correlated attributes. | |
Printing Log | |
virtual void | printLog (Option_t *option="") |
Prints the log. | |
Public Member Functions inherited from URANIE::Sampler::TSamplerStochastic | |
TSamplerStochastic (URANIE::DataServer::TDataServer *tds, Option_t *option, Int_t nCalcul) | |
Constructor with a dataserver. | |
virtual | ~TSamplerStochastic () |
Default destructor. | |
void | setSeed (Int_t ind=0) |
Init the seed. | |
Int_t | getSeed () |
Returns the seed value. | |
Public Member Functions inherited from URANIE::Sampler::TSampler | |
TSampler (URANIE::DataServer::TDataServer *tds, Option_t *option, Int_t nCalcul) | |
Constructor with a TDataServer, the options and the size of the sample. | |
virtual | ~TSampler () |
Default destructor. | |
Int_t | GetID () |
Returns the ID of the class. | |
void | setMethodName (TString str) |
Sets the method name in a global variable. | |
TString | getMethodName () |
Gets the method name. | |
virtual URANIE::DataServer::TDataServer * | getTDS () |
Return the TDS filling by the sampling algorithm. | |
void | parseOption (Option_t *option) |
Parse the option. | |
virtual void | createListOfAttributes () |
Creates the List of attributes to simulate. | |
virtual void | createTuple () |
Creates the TDSNtupleD of data with only the TStochasticAttributes. | |
URANIE::DataServer::TDSNtupleD * | getTuple () |
Returns the TDSNtupleD of data. | |
void | setLog () |
void | unsetLog () |
void | changeLog () |
Bool_t | getLog () |
Public Attributes | |
LHSInput * | _fLhsInput |
EType | _ntype |
The type of sampling (SRS, LHS) | |
TMatrixD | userCorrMat |
correlation matrix defined by the user | |
TMatrixD | _corrMat |
correlation matrix used internally | |
TList * | _listOfSimilar |
list of attributes totally correlated with other attributes. | |
TList * | _listOfFormulas |
list of formulas linking two totally correlated attributes. | |
Double_t | _simTolerance |
precision to decide if a correlation is equal to 1.0 (or -1.0). | |
Bool_t | bApplyUserCorrelation |
if true, correlated data are produced. | |
Public Attributes inherited from URANIE::Sampler::TSampler | |
Int_t | _nS |
The size of the sample. | |
Int_t | _nX |
The size of attributes to sample. | |
URANIE::DataServer::TDSNtupleD * | _ntsample |
the tntuple of data | |
TString | _sMethod |
The title of the sampler method. | |
Bool_t | _blog |
Log Printing. | |
Bool_t | _bupdateFile |
Update the back up file when generating the attributeformula if there is some. | |
URANIE::DataServer::TDataServer * | _tds |
Pointer to a TDS. | |
TList * | _lstOfAttributesToSample |
The list of Stochastic Attributes to sample. | |
Additional Inherited Members | |
Protected Member Functions inherited from URANIE::Sampler::TSamplerStochastic | |
virtual void | init () |
The preprocessing step. | |
virtual void | terminate () |
The post-processing step. | |
Protected Attributes inherited from URANIE::Sampler::TSamplerStochastic | |
Int_t | _nSeed |
Detailed Description
Description of the class TBasicSampling.
This class defines a TSamplerStochastic object for fast random data generation.
This is a very simple implementation of the random sampling. It will generate a set of n values for each random variable defined in the given TDataServer object.
The main differences with the TSampling class are:
- No correlation can be imposed between the variables.
- The strict independence between the generated variables is not garanteed.
- There is no lower limit in the number of random samples that can be generated.
- The generation is much faster when dealing with a large number of attributes.
On any other aspects, the two classes have the same properties.
In short, if you have a large number of independent random variables to sample in a short time, you should use this class. Otherwise, use TSampling.
Member Enumeration Documentation
◆ EType
Constructor & Destructor Documentation
◆ TBasicSampling()
URANIE::Sampler::TBasicSampling::TBasicSampling | ( | URANIE::DataServer::TDataServer * | tds, |
Option_t * | option = "lhs" , |
||
Int_t | sampleSize = 1000 |
||
) |
Creates a TBasicSampling object from a TDataServer, a sampling method and the size of the sample to generate
The random variables to sample are the attributes of the TDataServer. These attributes must derive from the TStochasticAttribute class. The sampling method, given as an option, can be either "lhs" (Latin Hypercube Sampling) or "srs" (Simple Random Sampling). If none of these is given, "lhs" is chosen.
- Parameters
-
tds (TDataServer *) pointer to the TDataServer. option (Option_t *) option string containing the sampling method (Default = "lhs"). sampleSize (Int_t) number of values to generate for each random variable (Default = 1000).
- Exceptions
-
UErrorExceptions if sampleSize <= 0
References URANIE::Sampler::TSampler::_blog, _listOfFormulas, _listOfSimilar, _ntype, kLHS, kSRS, and URANIE::Sampler::TSampler::setMethodName().
◆ ~TBasicSampling()
|
virtual |
Default destructor.
References URANIE::Sampler::TSampler::_blog, _fLhsInput, _listOfFormulas, and _listOfSimilar.
Member Function Documentation
◆ fillOtherAttributes()
|
virtual |
Fills the TAttributeFormula and totally correlated attributes.
Reimplemented from URANIE::Sampler::TSampler.
References _listOfFormulas, _listOfSimilar, URANIE::Sampler::TSampler::_tds, and URANIE::Sampler::TSampler::fillOtherAttributes().
Referenced by generateCorrSample(), and generateSample().
◆ findSimilar()
void URANIE::Sampler::TBasicSampling::findSimilar | ( | ) |
Locate totally correlated attributes.
References _corrMat, _listOfFormulas, _listOfSimilar, URANIE::Sampler::TSampler::_lstOfAttributesToSample, URANIE::Sampler::TSampler::_nX, _simTolerance, and userCorrMat.
Referenced by generateCorrSample().
◆ generateCorrSample()
void URANIE::Sampler::TBasicSampling::generateCorrSample | ( | Option_t * | option = "" | ) |
Generates correlated data following a user defined correlation matrix.
This function uses the "normal copula" method (cf. S. Wang. "Aggregation of correlated risk portfolios: Models and algorithms". Proceedings of the Casualty Actuarial Society, LXXXV:848-939, 1998) to create correlated data. This method is equivalent to the Iman & Connover one, but is faster and easier to implement. However, it does not preserve the "LHS" distribution, and might perform worse than I&C on the reconstruction of the theoretical correlation.
In addition, this function automatically detects totally correlated variables, and handle them correctly.
References URANIE::Sampler::TSampler::_blog, _corrMat, URANIE::Sampler::TSampler::_lstOfAttributesToSample, URANIE::Sampler::TSampler::_nS, URANIE::Sampler::TSampler::_ntsample, _ntype, URANIE::Sampler::TSampler::_nX, URANIE::Sampler::TSampler::_tds, URANIE::Sampler::TSampler::createTuple(), fillOtherAttributes(), findSimilar(), kLHS, kSRS, URANIE::Sampler::TSampler::parseOption(), and shuffleInteger().
◆ generateSample()
|
virtual |
Generates the sample.
Generates the random data and fills the TDataServer with it.
- Parameters
-
option (Option_t *) option string (Default = "")
Implements URANIE::Sampler::TSampler.
References URANIE::Sampler::TSampler::_blog, URANIE::Sampler::TSampler::_lstOfAttributesToSample, URANIE::Sampler::TSampler::_nS, URANIE::Sampler::TSampler::_ntsample, _ntype, URANIE::Sampler::TSampler::_nX, URANIE::Sampler::TSampler::_tds, URANIE::Sampler::TSampler::createTuple(), fillOtherAttributes(), URANIE::Sampler::TSamplerStochastic::init(), kLHS, kSRS, and URANIE::Sampler::TSampler::parseOption().
◆ printLog()
|
virtual |
Prints the log.
- Parameters
-
option (Option_t *) option string (Default = "")
Reimplemented from URANIE::Sampler::TSamplerStochastic.
References _fLhsInput, URANIE::Sampler::TSampler::_nS, URANIE::Sampler::TSampler::_nX, and URANIE::Sampler::TSampler::_sMethod.
◆ setCorrelationMatrix()
void URANIE::Sampler::TBasicSampling::setCorrelationMatrix | ( | TMatrixD | corrMat | ) |
Set the correlation matrix.
References URANIE::Sampler::TSampler::_nX, and userCorrMat.
◆ setTolerance()
|
inline |
Set the precision of similarity
References _simTolerance.
◆ setUserCorrelation()
void URANIE::Sampler::TBasicSampling::setUserCorrelation | ( | TString | attName1, |
TString | attName2, | ||
Double_t | corrValue | ||
) |
Set user correlation for two attributes.
References URANIE::Sampler::TSampler::_nX, URANIE::Sampler::TSampler::_tds, and userCorrMat.
Member Data Documentation
◆ _corrMat
TMatrixD URANIE::Sampler::TBasicSampling::_corrMat |
correlation matrix used internally
Referenced by findSimilar(), and generateCorrSample().
◆ _fLhsInput
LHSInput* URANIE::Sampler::TBasicSampling::_fLhsInput |
Referenced by printLog(), and ~TBasicSampling().
◆ _listOfFormulas
TList* URANIE::Sampler::TBasicSampling::_listOfFormulas |
list of formulas linking two totally correlated attributes.
Referenced by fillOtherAttributes(), findSimilar(), TBasicSampling(), and ~TBasicSampling().
◆ _listOfSimilar
TList* URANIE::Sampler::TBasicSampling::_listOfSimilar |
list of attributes totally correlated with other attributes.
Referenced by fillOtherAttributes(), findSimilar(), TBasicSampling(), and ~TBasicSampling().
◆ _ntype
EType URANIE::Sampler::TBasicSampling::_ntype |
The type of sampling (SRS, LHS)
Referenced by generateCorrSample(), generateSample(), and TBasicSampling().
◆ _simTolerance
Double_t URANIE::Sampler::TBasicSampling::_simTolerance |
precision to decide if a correlation is equal to 1.0 (or -1.0).
Referenced by findSimilar(), and setTolerance().
◆ bApplyUserCorrelation
Bool_t URANIE::Sampler::TBasicSampling::bApplyUserCorrelation |
if true, correlated data are produced.
◆ userCorrMat
TMatrixD URANIE::Sampler::TBasicSampling::userCorrMat |
correlation matrix defined by the user
Referenced by findSimilar(), setCorrelationMatrix(), and setUserCorrelation().