两个分布的Stata模拟

时间:2015-07-29 04:59:40

标签: stata

我正在尝试执行模拟,我在其中创建一个变量,该变量具有从两个稍微不同的分布的组合生成的随机数。使用循环 - 如何指定从每个分布生成的数字(比方说我想从一个分布生成50个数字而从另一个分布生成30)?例如:

set obs 50

generate test = runiform()*20  

set obs 30

replace test = runiform()*100

如果我将其作为循环的一部分运行,我得到: obs必须介于502147483646

之间

我假设我错过了一些基本的东西,但不知道如何指定。

1 个答案:

答案 0 :(得分:1)

试试这个:

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)