You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Alex Herbert (Jira)" <ji...@apache.org> on 2022/10/01 18:12:00 UTC

[jira] [Updated] (STATISTICS-55) TruncatedNormalDistribution sampler

     [ https://issues.apache.org/jira/browse/STATISTICS-55?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Herbert updated STATISTICS-55:
-----------------------------------
    Attachment: NormalSample.jpg

> TruncatedNormalDistribution sampler
> -----------------------------------
>
>                 Key: STATISTICS-55
>                 URL: https://issues.apache.org/jira/browse/STATISTICS-55
>             Project: Commons Statistics
>          Issue Type: New Feature
>          Components: distribution
>    Affects Versions: 1.0
>            Reporter: Alex Herbert
>            Priority: Minor
>             Fix For: 1.0
>
>         Attachments: NormalSample.jpg
>
>
> The TruncatedNormalDistribution currently uses inverse CDF sampling.
> Sampling is also possible using a normalised Gaussian sampler to create samples and then rejecting those outside the range of the truncation. 
> In the use case where the truncated normal distribution covers over 50% of the standard normal distribution, then rejection sampling will need less than 2 samples per value. This is efficiently sampled by generating fast Gaussian deviates and throwing away the few that are not in the supported bounds.
> The speed of each method will be approximately equal when:
> {noformat}
> t1 * n = t2{noformat}
> Where:
>  * t1 is the speed of the normal distribution sampler;
>  * n number of samples required to generate a value within the truncated range;
>  * t2 is the speed of the inverse transform sampler.
> Rearranging provides a switching threshold to change to rejection sampling:
> {noformat}
> t1 / t2 <= 1 / n{noformat}
> Where {{1 / n}} is the fraction of the CDF covered by the truncated normal distribution. The threshold requires evaluation of t1 and t2.
> The relative speed of sampling using Gaussian deviates and inverse CDF sampling should be investigated with the intention to use rejection sampling for certain truncated distributions.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)