如何在Stata中获取特定的随机数?
示例我希望获得概率为25%的0,概率为25%的概率为10,概率为25%的概率为20,概率为25%的概率为30
由于
答案 0 :(得分:1)
还可以使用mata
函数rdiscrete()
绘制此类随机变量:
clear
set obs 1000
generate wanted = .
mata: st_store(., "wanted", 10*rdiscrete(1000, 1, (0.25, 0.25, 0.25, 0.25)):-10)
tabulate wanted
wanted | Freq. Percent Cum.
------------+-----------------------------------
0 | 266 26.60 26.60
10 | 235 23.50 50.10
20 | 242 24.20 74.30
30 | 257 25.70 100.00
------------+-----------------------------------
Total | 1,000 100.00
答案 1 :(得分:0)
您对文档进行了哪些搜索?参见例如 the help on random number functions。
你想要在连续的整数上只有均匀分布的倍数。虽然可以找到特定的函数,但是向上或向下舍入然后乘法的一般技巧可以与启动runiform()
clear
set obs 1000
set seed 4852
gen wanted = 10 * floor(4 * runiform())
tab wanted
另请参阅this discussion of floor and ceiling functions和this discussion of your problem。