Dear all,
I am a newbie in a simulation study. Here I created one simulated data using foreach command (n=500 t=5). I would also like to create 500 data and save them using this code. Would you help me to do so?
Thank you,
Sean
I am a newbie in a simulation study. Here I created one simulated data using foreach command (n=500 t=5). I would also like to create 500 data and save them using this code. Would you help me to do so?
Thank you,
Code:
clear drop _all global obs = 500 global waves = 5 global corrXY = .5 global corrXZ = 0 global corrYZ = 0 foreach endox of numlist .1 { foreach endoy of numlist .2 { foreach autox of numlist .2 { foreach autoy of numlist .3 { foreach unob of numlist .5 { global autox = `autox' global endox = `endox' global endoy = `endoy' global autoy = `autoy' global betax = 1 global betaxlag = 1 global betay = 1 global betaylag = 1 global unob = `unob' mat C =(1, $corrXY,$corrXZ \ $corrXY,1,$corrYZ \ $corrXZ,$corrYZ,1) corr2data X Y Z, n($obs) corr(C) gen id = _n expand = $waves bysort id: generate wave = _n replace wave = wave-1 foreach var of varlist X Y Z { replace `var' = . if wave >0 } xtset id wave reshape wide X Y Z , i(id) j(wave) gen x0 = X0 + rnormal() gen y0 = Y0 + rnormal() gen z0 = Z0 + rnormal(0, 1.73) foreach num of numlist 1/$waves{ // starts from wave 1 gen x`num' = 3+ $autox* x`=`num'-1' + rnormal(0,1) + /// $endox* y`=`num'-1' + ($unob*z0) gen y`num' = 4+ $autoy* y`=`num'-1' + rnormal(0,1) + /// $endoy* x`=`num'-1' + ($unob*z0) } } } } }}
Sean
Comment