【发布时间】:2016-06-26 02:01:51
【问题描述】:
如何在 Stata 中为不同类别生成具有预定义概率的随机变量?
例如,我希望变量有四个类别(0、10、20、30),所有类别都具有25% 概率。
【问题讨论】:
标签: stata
如何在 Stata 中为不同类别生成具有预定义概率的随机变量?
例如,我希望变量有四个类别(0、10、20、30),所有类别都具有25% 概率。
【问题讨论】:
标签: stata
这样的随机变量也可以使用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
【讨论】:
您只需要连续整数上均匀分布的倍数。
虽然可以找到具体的函数,但是一般的上下四舍五入再乘的技巧可以配合上火runiform():
clear
set obs 1000
set seed 4852
generate wanted = 10 * floor(4 * runiform())
tabulate wanted
wanted | Freq. Percent Cum.
------------+-----------------------------------
0 | 237 23.70 23.70
10 | 245 24.50 48.20
20 | 270 27.00 75.20
30 | 248 24.80 100.00
------------+-----------------------------------
Total | 1,000 100.00
另见:
【讨论】: