[R] Generate random numbers under constrain

Erich Neuwirth erich.neuwirth at univie.ac.at
Thu Nov 27 19:20:41 CET 2014


You want random numbers within the n-dimensional simplex (sum xi <=1)
The easiest solution of course would be creating n-dimensions vectors
with iid uniform components on [0,1) and throwing away those
violating the inequality.
Since the volume of the n-dimensional simplex is 1/n! (factorial)
this becomes very wasteful even for low dimensions.

A possible  answer is to use the Dirichlet distribution from package lca)
since the uniform distribution on the simplex is a special case
of the Dirichlet distribution.


> On Nov 27, 2014, at 14:57, Jue Lin-Ye <jl.iccp at gmail.com> wrote:
> 
> Hello! I am relatively new using R, but this is my contribution to the
> answer. How about using a Monte-Carlo method. Generate m numbers in the
> support [0,1], where m>n. Then constrain by constructing a loop that takes
> every one of the elements in the m sized vector and select the ones that
> sum up to one. If it is very uncommon to sum up to one, given the
> distribution that you use to generate the random numbers, you can construct
> a loop that generates as many random numbers as you need and then follow
> the steps
> 1.generate
> 2.select
> 
> until you find a total of n number.
> 
>> Dear all,
>> I use R 3.1.1 for Windows.
>> kindly how can I generate n number of random numbers with probability
> from [0,1]
>> and their sum must not be more than one
>> thanks in advance
>> Ragia
> 
> ​Best regards,​
> 
> -- 
> Jue Lin-Ye
> 
> ---------------------------------------------------------------
> Civil Engineering phD candidate
> Maritime Engineering Laboratory (LIM)
> Universitat Politècnica de Catalunya (UPC)
> C/Jordi Girona 1-3, Barcelona 08034 (Spain)
> -----------------------------------------------------------------
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list