[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