两个分布的状态模拟



我试图执行一个模拟,其中我创建了一个变量,该变量具有从两个略有不同的分布的组合生成的随机数。使用循环-我如何指定要从每个分布生成的数字(假设我想从一个分布生成50,从另一个分布生成30)?例如:

set obs 50
generate test = runiform()*20  
set obs 30
replace test = runiform()*100

如果我运行这个作为循环的一部分,我得到:工作必须在502147483646之间

我假设我遗漏了一些基本的东西,但不确定如何指定。

试试这个:

set obs 80
generate test = runiform()*20  
replace test = runiform()*100 in 51/80

你的代码不工作的原因是set obs期望的整数至少与当前观察到的数量一样大。

你可以这样修改你的方法:

clear
set obs 50
generate test = runiform()*20  
set obs 80 // or try -insobs 30- 
replace test = runiform()*100 if missing(test)

最新更新