pwDisturb


 pwDisturb(disturbanceStrength, parameterDistribution, samplingIndex)

 Disturbes the currently fitted parameters by a predefined
 or custom parameter distribution algorithm.

 

Arguments for pwDisturb

 disturbanceStrength
           Disturbance strength parameter having different effects
           depending on the selected parameter distribution algorithm.
           Default value can be set in  via
           config.analyses.fitSequence.disturbanceStrength

 parameterDistribution  (1 - 6)
           1 Normal distribution
           2 Uniform distribution
           3 Sobol quasi-random sampling
           4 Latin hypercube sampling
           5 Grid sampling
           6 Custom parameter distribution function
           By default: config.analyses.fitSequence.parameterDistribution

 parameterTransformation (1 - 3)
           1 No transformation
           2 Log transformation
           3 Log-10 transformation
           By default: config.analyses.fitSequence.parameterTransformation

 samplingIndex
           Index of the parameter sampling when using Sobol quasi random
           numbers of latin hypercube sampling.
           By default: config.analyses.fitSequence.samplingIndex
           The value of config.analyses.fitSequence.samplingIndex is
           automatically incremented by 1 after pwDisturb has been called.

           If config.analyses.fitSequence.autoResetSamplingIndex = true,
           the sampling index is set to 1 whenever a fit sequence is started.

 

Description

 A set of local and global parameter distribution and sampling
 algorithms is available in order to determine a new vector of
 parameter values pNew from which a fitting procedure can be started.

 An optional log or log-10 parameter transformation can be applied in
 combination with the parameter sampling. This should be applied if
 the parameter space covers several orders of magnitude.

 The local parameter distribution algorithm depends on the current
 parameter values, which are shown in the equalizer user interface,
 are listed by pwInfo, and returned by pwGetFitParameters.

 In a fit sequence, e.g. pwF2, the parameters are disturbed before each
 fit using pwDisturb. The relevant configuration settings are available at

  config.analyses.fitSequence.*

 

1 Normal distribution

 If no paramter transformation is selected:

  pNew ~ N(pCurrent, disturbanceStrength)

 with pCurrent and pNew being the current and new parameter values
 and disturbanceStrength being the standard deviation of the normal distribution N.

 If a log transformation of the paramters is selected:

  pNew ~ pCurrent * e^(disturbanceStrength * N(0,1))

 If a log-10 transformation of the paramters is selected:

  pNew ~ pCurrent * 10^(disturbanceStrength * N(0,1))

 In the last case, disturbanceStrength represents the so called
 scale parameter of the log10-normal distribution.

 

2 Uniform distribution

 % If no paramter transformation is selected:

  pNew ~ U(pMin, pMax)

 with U being the uniform distribution between the minimum and maximum
 allowed value of the parameter during parameter calibration.

 If a log transformation of the paramters is selected:

  pNew = e^X with X ~ U(log(pMin), log(pMax))

 If a log-10 transformation of the paramters is selected:

  pNew = 10^X with X ~ U(log10(pMin), log10(pMax))

 

3 Sobol quasi random number sampling

  pNew  = X

 with X being the i-th Sobol quasi random number in d dimensions between
 pMin and pMax, i being the samplingIndex and d the number of currently
 fitted parameters.

 The used algorithm to calculate the quasi random numbers is
 based on the Sobol implementation of the GNU Scientific Library.
 The corresponding source code is open source and can be obtained
 under the terms of the GNU General Public License from the
 PottersWheel developer team.

 If a log transformation of the paramters is selected:

  pNew = e^X

 with X being the i-th Sobol quasi random number between
 log(pMin) and log(pMax).

 If a log-10 transformation of the paramters is selected:

  pNew = 10^X

 with X being the i-th Sobol quasi random number between
 log10(pMin) and log10(pMax).

 

4 Latin hypercube sampling

  pNew = X

 with X being the i-th latin hypercube sample within pMin and pMax.

 If a log transformation of the paramters is selected:

  pNew = e^X

 with X being the i-th latin hypercube sample within
 log(pMin) and log(pMax).

 If a log-10 transformation of the paramters is selected:

  pNew = 10^X

 with X being the i-th latin hypercube sample within
 log10(pMin) and log10(pMax).

 

5 Grid sampling

  pNew = X

 with X being the i-th random sample selected from the
 smallest high-dimensional grid comprising nFits samples, with

  nFits = config.config.analyses.fitSequence.nFits

 The same procedure as for Sobol and latin hypercube samples is
 applied, if a log or log-10 transformation is applied.

 

6 Custom paramter distribution function

  pNew = feval(f, disturbanceStrength, parameterTransformation);

 with f being a custom function registered in the configuration via

  config = pwGetConfig;
  config.config.analyses.fitSequence.customDistributionFunction = ''f'';
  pwSetConfig(config);

 Within f the current parameter values can be obtained using

  [IDs, values] = pwGetFitParameters;

 Settings for the parameter transformation must be handled by the
 custom function.

 

Note

 In contrast to the disturb button in the equalizer GUI,
 the system is not re-integrated by calling only pwDisturb.
 The same behaviour as in the user interface can be achieved by calling

  pwDisturb;
  pwLocalIntegrateFun;
  pwPlot;

See also

pwF2
pwF3
pwFitSequenceAnalysis
pwRandomizedParameters