Stata 生成具有特定概率的随机变量

Stata 生成具有特定概率的随机变量,stata,Stata,如何在Stata中为不同类别生成具有预定义概率的随机变量 例如,我希望变量有四个类别(0,10,20,30),所有类别都具有25%的概率。您只需要连续整数上均匀分布的倍数 虽然可以找到特定的函数,但向上或向下取整然后相乘的一般技巧可以与向上激发runiform() 另见: 也可以使用mata函数rdiscrete()绘制此类随机变量: clear set obs 1000 set seed 4852 generate wanted = 10 * floor(4 * runifor

如何在Stata中为不同类别生成具有预定义概率的随机变量


例如,我希望变量有四个类别(
0
10
20
30
),所有类别都具有
25%
的概率。

您只需要连续整数上均匀分布的倍数

虽然可以找到特定的函数,但向上或向下取整然后相乘的一般技巧可以与向上激发
runiform()

另见:


也可以使用
mata
函数
rdiscrete()
绘制此类随机变量:

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
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