Say that I define this simple program in Stata that creates 100 observations populated with random numbers and returns the mean:
clear all
program define a, rclass
set obs 100
gen a = runiform()
sum a
return scalar mean=r(mean)
end
I then run this program using simulate
:
simulate mean = r(mean), reps(1): a seed(123)
I get .5793895
. I run the exact same line, expecting to get the same result:
simulate mean = r(mean), reps(1): a seed(123)
But I don't. I get another result! I thought that because the seed
was equivalent in both cases, the seed would control what is generated by runiform()
, thus giving me the same mean.
I did another test using seed
:
clear all
set obs 100
set seed 123
gen a = runiform()
sum a
This gives .4948977
. I then run the same code again:
clear all
set obs 100
set seed 123
gen a = runiform()
sum a
This also gives .4948977
as expected. What is different about the seed
from simulate
and not using simulate
, and how can I get reproducible results using simulate
?
Aucun commentaire:
Enregistrer un commentaire