Hello, I am trying to interface in my teaching some elementary probability with Monte Carlo ideas. In sampling from a finite population, the number of distinct samples of size 'k' from a population of size 'n' , when individuals are selected with replacement and the selection order does not matter, is choose(n + k -1, k). Does anyone have a suggestion about how to simulate (uniformly!) one of these possible samples? In a Monte Carlo framework I would like to do it repeatedly, so efficiency is of some relevance. Thank you in advance! Best, Giovanni Giovanni Petris Associate Professor Department of Mathematical Sciences University of Arkansas - Fayetteville, AR 72701 Ph: (479) 575-6324, 575-8630 (fax) http://definetti.uark.edu/~gpetris/
Hello, Try function ?sample. Something like, if 'x' is a vector of size n, sample(x, k, replace = TRUE) If you want indices into 'x', try instead sample(n, k, replace = TRUE) Hope this helps, Rui Barradas Em 17-09-2014 19:25, Giovanni Petris escreveu:> > Hello, > > I am trying to interface in my teaching some elementary probability with Monte Carlo ideas. In sampling from a finite population, the number of distinct samples of size 'k' from a population of size 'n' , when individuals are selected with replacement and the selection order does not matter, is choose(n + k -1, k). Does anyone have a suggestion about how to simulate (uniformly!) one of these possible samples? In a Monte Carlo framework I would like to do it repeatedly, so efficiency is of some relevance. > > Thank you in advance! > > Best, > Giovanni > > > > Giovanni Petris > Associate Professor > Department of Mathematical Sciences > University of Arkansas - Fayetteville, AR 72701 > Ph: (479) 575-6324, 575-8630 (fax) > http://definetti.uark.edu/~gpetris/ > > > ______________________________________________ > 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. >
On 17/09/2014 2:25 PM, Giovanni Petris wrote:> Hello, > > I am trying to interface in my teaching some elementary probability with Monte Carlo ideas. In sampling from a finite population, the number of distinct samples of size 'k' from a population of size 'n' , when individuals are selected with replacement and the selection order does not matter, is choose(n + k -1, k). Does anyone have a suggestion about how to simulate (uniformly!) one of these possible samples? In a Monte Carlo framework I would like to do it repeatedly, so efficiency is of some relevance. > > Thank you in advance!I forget the details of the derivation of that count, but the number suggests it is found by selecting k things without replacement from n+k-1. The sample() function in R can easily give you a sample of k integers from 1:(n+k-1); "all" you need to do is map those numbers into your original sample of k from n. For that you need to remember the derivation of that formula! Duncan Murdoch