来自两个分布的 Stata 模拟
Stata simulation from two distributions
我正在尝试执行模拟,我在其中创建一个变量,该变量具有从两个略有不同的分布的组合生成的随机数。使用循环 - 如何指定从每个生成的数字(假设我想从一个分布生成 50
数字,从另一个分布生成 30
)?例如:
set obs 50
generate test = runiform()*20
set obs 30
replace test = runiform()*100
如果我运行这是循环的一部分,我得到:
obs 必须在 50
和 2147483646
之间
我假设我缺少一些基本的东西,但不确定如何指定它。
试试这个:
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)
我正在尝试执行模拟,我在其中创建一个变量,该变量具有从两个略有不同的分布的组合生成的随机数。使用循环 - 如何指定从每个生成的数字(假设我想从一个分布生成 50
数字,从另一个分布生成 30
)?例如:
set obs 50
generate test = runiform()*20
set obs 30
replace test = runiform()*100
如果我运行这是循环的一部分,我得到:
obs 必须在 50
和 2147483646
我假设我缺少一些基本的东西,但不确定如何指定它。
试试这个:
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)