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 00:34:59 -0500

Oops, that last statement should be

"list x fw if fw>0"

Well, that's possible. But Ning is a survey methodologist and he asked about generating "a sample from a population with replacement", so I assumed that he was asking about a survey sample problem. The toy example doesn't appear like a real problem to me.

If I'm wrong, then Phil's method applies. One variant is to expand to single-digit frequencies (multiply the proportions by 10, in this case).  This necessitates a change to Phil's -list- statement.

*************************
clear
* set seed <seednum>
input x prop
1 .2
2 .1
3 .3
4 .3
5 .1
end
gen int fw = 10*prop
expand fw
bsample 3, weight(fw)
list x if fw>0
**************************

Steve
sjsamuels@gmail.com

On Jan 15, 2012, at 11:47 PM, David Hoaglin wrote:

Steve,

Isn't it simply a discrete distribution that has the values 1 through
5 with the indicated probabilities?  And the aim is to generate three
random observations from that distribution?

David Hoaglin

On Jan 15, 2012, Steve Samuels wrote:
Ning Li:

Is N (population size) really 5? If so, then the "probability distribution" cannot be that of the population.

If population N>5 and there are five "types" of population elements, with the distribution shown, then there is not enough information for Phil's (or anybody's) algorithm to work. Suppose Phil's algorithm draws a selection with x = 3. With the information you have provided, there is no way to link this selection to a specific population element.:

But perhaps you want to draw the sample of n = 3 from N =5 with probability proportional to size, in which case the size measures can be arbitrary. But such size measures will rarely look like the proportions that you show.

Steve
sjsamuels@gmail.com

On Jan 15, 2012, at 6:54 PM, Philip Ryan wrote:

The following will randomly sample 3 observations on variable x with
replacement from 10,000 observations with the distribution you specified.
Un-comment the -set seed- line (and provide a numeric seed) if you want
reproducibility between runs.  see -help bsample-

clear
* set seed <seednum>
input x fw
1 2000
2 1000
3 3000
4 3000
5 1000
end
expand fw
bsample 3, weight(fw)
list x if fw==1

Phil

Philip Ryan
Professor and Director
Data Management & Analysis Centre [DMAC]
-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of
ningli_yang@fastmail.fm
Sent: Monday, 16 January 2012 9:22 AM
To: statalist@hsphsun2.harvard.edu
Subject: st: generate random sample

Dear listers

I am using Stata/MP 11 Windows.

What is the good way to generate a sample from a population with
replacement?

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)?

Many thanks for the help.

Ning

--
Ning Li
Survey Methodologist
Melbourne Institute of Applied Economic and Social Research The
University of Melbourne
Tel:  +61 3 9035 4949   Fax: +61 3 8344 2111
*
*   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/