Bookmark and Share

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


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: RE: simulation: finding the winner, and generating unique values


From   Kieran McCaul <[email protected]>
To   "[email protected]" <[email protected]>
Subject   st: RE: simulation: finding the winner, and generating unique values
Date   Sat, 25 May 2013 11:40:30 +0800

...

I'm not quite sure what the intent of the simulation is.

1. How can I simulate B so that only unique values of 1-5 are created?

I don't understand what you mean here, particularly given that the code you use is under a comment "* simulate variable: B (values 1-5 sampled without replacement) ".

There are 20 observations, 5 per level of "a".  The only way that "b" can be assigned the values 1 to 5 without replacement is by assigning them within "a".

I don't think this is what you are trying to do, but if it is, the following will do that:


clear
set seed 12358
* simulate A
set obs 20

gen byte a = mod(_n,4) + 1

sort a
by a:gen byte b=_n

gen byte c = uniform()>=0.5





-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Michael McCulloch
Sent: Saturday, 25 May 2013 3:31 AM
To: [email protected]
Subject: st: simulation: finding the winner, and generating unique values

Greetings!

* I have three questions related to the following data simulation.
* 1. How can I simulate B so that only unique values of 1-5 are created?
* 2. Is there a more elegant way to code simulation of variable B? 
* 3. How can I identify which variable B had the highest total count of C, within levels of A?

clear
set seed 12358
* simulate A
set obs 20		//create 20 observations
gen 	a=1 in 1/5
replace a=2 in 6/10
replace a=3 in 11/15
replace a=4 in 16/20

* simulate variable: B (values 1-5 sampled without replacement) gen b=.
replace b=(1 + int(5*runiform())) if a==1 	
replace b=(1 + int(5*runiform())) if a==2 	
replace b=(1 + int(5*runiform())) if a==3 	
replace b=(1 + int(5*runiform())) if a==4 	

* simulate variable: C
gen c1=uniform()	//Generate n (equal chance of 0-1)
	gen c=.
	replace c=0 if c1<0.5
	replace c=1 if c1>=0.5
	drop c1
list, noobs



Best wishes,
Michael McCulloch, LAc MPH PhD

--
Pine Street Foundation, since 1989
124 Pine Street | San Anselmo | California | 94960-2674
P: (415) 407-1357 | F: (206) 338-2391 | http://www.PineStreetFoundation.org


*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/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/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index