Quintiq file version 2.0
|
#parent: #root
|
Method TestScriptComputeMeanVarianceUsingQuantileBySampling (
|
ProbabilityDistribution distr,
|
String node_r,
|
String period_r,
|
String functionname
|
)
|
{
|
TextBody:
|
[*
|
timestart := OS::PrecisionCounter()
|
|
nrsamples := 100;
|
|
xsum_Q := 0.0;
|
xsqrsum_Q := 0.0;
|
for ( i := 1; i <= nrsamples; i++ )
|
{
|
u := Real::Random( 0.0, 1.0);
|
|
fromquant := distr.Quantile( u );
|
xsum_Q := xsum_Q + fromquant;
|
xsqrsum_Q := xsqrsum_Q + (fromquant * fromquant );
|
}
|
|
timeend := OS::PrecisionCounter();
|
timeusedsec := (timeend - timestart) / OS::PrecisionCounterFrequency()
|
info( 'time used to compute from samples = ', timeusedsec, 's' );
|
sample_mean_Q := xsum_Q / nrsamples
|
sample_sqr_mean_Q := xsqrsum_Q / nrsamples;
|
info( 'Q sample mean', sample_mean_Q );
|
info( 'Q sample ^2 mean', sample_sqr_mean_Q);
|
info( 'Q sample variance ', sample_sqr_mean_Q - (sample_mean_Q*sample_mean_Q) );
|
*]
|
}
|