[R] generate random numbers

David Scott d.scott at auckland.ac.nz
Fri Apr 1 00:26:33 CEST 2011


  On 01/04/11 08:50, Ted Harding wrote:
> On 31-Mar-11 19:23:33, Anna Lee wrote:
>> Hey List,
>> does anyone know how I can generate a vector of random numbers
>> from a given distribution? Something like "rnorm" just for non
>> normal distributions???
>>
>> Thanks a lot!
>> Anna
> SUppose we give your distribution the name "Dist".
>
> The generic approach would start by defining a function for
> the inverse of its cumulative distribution. Call this qDist.
> Then
>
>    qDist(runif(1000))
>
> would generate 1000 values from the distribution "Dist".
>
> As a ready-made example, qnorm is the inverse of pnorm,
> the cumulative distribution function of the Normal distribution.
> Then
>
>    qnorm(runif(1000))
>
> would act just like rnorm(1000), though the sequence of values
> would be different (a different algorithm) -- and also rnorm()
> would be more efficient (being specially written).
>
> Depending on what your desired distribution is, you may find
> that an "rDist" has already been written for it. There are
> many distributions already in R for which the family of
> functions dDist, pDist, qDist and rDist are provided.
>
> For more specific advice, please give us information about
> the specific distribution you want to sample from!
>
> Ted.
>

I can point to one general implementation which might be helpful, and 
even the function names are the same.

In the version of DistributionUtils on R-Forge you will find functions 
pDist and qDist which should give the distribution function and quantile 
function of any continuous unimodal distribution.

Provisos: there may be problems with distributions with very heavy 
tails, and generally the routines could be slow.

David Scott

-- 
_________________________________________________________________
David Scott	Department of Statistics
		The University of Auckland, PB 92019
		Auckland 1142,    NEW ZEALAND
Phone: +64 9 923 5055, or +64 9 373 7599 ext 85055
Email:	d.scott at auckland.ac.nz,  Fax: +64 9 373 7018

Director of Consulting, Department of Statistics



More information about the R-help mailing list