Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

Re: st: RE: generate random sample

 From Steve Samuels To statalist@hsphsun2.harvard.edu Subject Re: st: RE: generate random sample Date Mon, 16 Jan 2012 18:20:16 -0500

```Here's a short solution; it uses -samplepps- by Stephen Jenkins, available at SSC. It is based on the fact that Ning's problem (if it is sampling from a population with N=5) is formally equivalent to sampling with probability proportional to size, with the special case that his size measures are proportions.

Steve

*************CODE BEGINS*************
set seed  472992
input x size
1  2
2  1
3  3
4  3
5  1
end
samplepps pick, size(size) ncases(3) withrepl
list
**************CODE ENDS**************

On Jan 16, 2012, at 1:04 PM, Brendan Halpin wrote:

> Say, how to generate 3 independent random numbers from population
> (1,2,3,4,5) with probability distribution (0.2, 0.1, 0.3, 0.3,0.1)?

This is how I would do it:

| gen draw = runiform()
|
| gen x = .
|
| replace x = 1 if inrange(draw, 0,               0.2)
| replace x = 2 if inrange(draw, 0.2,             0.2+0.1)
| replace x = 3 if inrange(draw, 0.2+0.1,         0.2+0.1+0.3
| replace x = 4 if inrange(draw, 0.2+0.1+0.3,     0.2+0.1+0.3+0.3)
| replace x = 5 if inrange(draw, 0.2+0.1+0.3+0.3, 0.2+0.1+0.3+0.3+0.1)

or (since the cut points are constants, not variables) just recode
the appropriate ranges of runiform() into 1/5.

Brendan
--
Brendan Halpin,   Department of Sociology,   University of Limerick,   Ireland
Tel: w +353-61-213147  f +353-61-202569  h +353-61-338562;  Room F1-009 x 3147
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```