【问题标题】:Generate random variable with specific probabilities生成具有特定概率的随机变量
【发布时间】:2016-06-26 02:01:51
【问题描述】:

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

例如,我希望变量有四个类别(0102030),所有类别都具有25% 概率。

【问题讨论】:

    标签: stata


    【解决方案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
    

    【讨论】:

      【解决方案2】:

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

      虽然可以找到具体的函数,但是一般的上下四舍五入再乘的技巧可以配合上火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
      

      另见:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-04
        • 2020-07-02
        • 2012-02-11
        • 2015-04-05
        • 2015-05-18
        相关资源
        最近更新 更多