[SciPy-User] [SciPy-user] support for truncated normal distribution
Tue Mar 15 15:30:33 CDT 2011
On Tue, Mar 15, 2011 at 3:03 PM, Wes McKinney <firstname.lastname@example.org> wrote:
> On Tue, Mar 15, 2011 at 2:58 PM, Robert Kern <email@example.com> wrote:
>> On Tue, Mar 15, 2011 at 13:45, Dr. Phillip M. Feldman
>> <firstname.lastname@example.org> wrote:
>>> I've noticed that there is no truncated normal distribution in NumPy, at
>>> least according to the following source:
>>> I've written code to generate random deviates from a truncated normal
>>> distribution via acceptance-rejection, but this is inefficient when the
>>> acceptance probability is low. I assume that NumPy is generating standard
>>> normal deviates via the Ziggurat algorithm. That algorithm can be modified
>>> to produce random deviates from a truncated normal without the use of
>>> acceptance-rejection. I'd be very grateful if someone can implement this.
>> No, we use the Box-Mueller transform, which is not easily truncated.
>> Robert Kern
>> "I have come to believe that the whole world is an enigma, a harmless
>> enigma that is made terrible by our own mad attempt to interpret it as
>> though it had an underlying truth."
>> -- Umberto Eco
>> SciPy-User mailing list
> I have an implementation here (using the inverse CDF method):
> There is also scipy.stats.truncnorm (which I have not tested but assume works):
It`s using the generic rvs which is also inverse cdf method.
> Truncated Normal distribution.
> The standard form of this distribution is a standard normal
> truncated to the
> range [a,b] --- notice that a and b are defined over the domain
> of the standard normal. To convert clip values for a specific mean and
> standard deviation use a,b = (myclip_a-my_mean)/my_std,
> SciPy-User mailing list
More information about the SciPy-User