Sas 在Stata中进行加权热板插补的简单方法?

Sas 在Stata中进行加权热板插补的简单方法?,sas,stata,imputation,Sas,Stata,Imputation,我想在Stata中做一个简单的加权热甲板插补。在SAS中,等效命令如下(请注意,这是一个较新的SAS功能,从2015年左右的SAS/STAT 14.1开始): 为清楚起见,基本要求如下: 插补大多数是基于行或同时进行的。如果第1行向第3行捐赠了x,那么它也必须捐赠y 必须考虑重量。体重=2的捐赠者被选择的可能性是体重=1的捐赠者的两倍 我假设丢失的数据是矩形的。换句话说,如果潜在缺失变量集由x和y组成,则两者都缺失或两者都不缺失。下面是一些生成示例数据的代码 global miss_vars "

我想在Stata中做一个简单的加权热甲板插补。在SAS中,等效命令如下(请注意,这是一个较新的SAS功能,从2015年左右的SAS/STAT 14.1开始):

为清楚起见,基本要求如下:

  • 插补大多数是基于行或同时进行的。如果第1行向第3行捐赠了
    x
    ,那么它也必须捐赠
    y

  • 必须考虑重量。体重=2的捐赠者被选择的可能性是体重=1的捐赠者的两倍

  • 我假设丢失的数据是矩形的。换句话说,如果潜在缺失变量集由
    x
    y
    组成,则两者都缺失或两者都不缺失。下面是一些生成示例数据的代码

    global miss_vars "wealth income"
    global weight    "weight"
    
    set obs 6
    gen id = _n
    gen type = id > 3
    gen income = 5000 * _n
    gen wealth = income * 4 + 500 * uniform()
    gen weight = 1
    replace weight = 4 if mod(id-1,3) == 0
    
    // set income & wealth missing every 3 rows
    gen impute = mod(_n,3) == 0
    foreach v in $miss_vars {
        replace `v' = . if impute == 1
    }
    
    数据如下所示:

                id       type     income     wealth     weight     impute
      1.         1          0       5000   20188.03          4          0
      2.         2          0      10000   40288.81          1          0
      3.         3          0          .          .          1          1
      4.         4          1      20000   80350.85          4          0
      5.         5          1      25000   100378.8          1          0
      6.         6          1          .          .          1          1
    
    因此,换句话说,我们需要随机(加权)为每一行缺失值选择一个相同类型的捐赠者,并使用该捐赠者填写收入和财富值。在实际使用中,类型变量的生成当然是它自己的问题,但我在这里保持非常简单的方式来关注主要问题

    例如,第3行可能看起来像下面的post hotdeck(因为它填充了第1行或第2行的收入和财富(但与此相反,它永远不会获取第1行的收入和第2行的财富):


    另外,由于第1行的权重为4,第2行的权重为1,所以第1行在80%的时间里应该是施主,第2行在20%的时间里应该是施主。

    在Stata中似乎没有办法做到这一点,也没有社区贡献的命令。有社区贡献的命令没有Hotdeck(特别是,hotdeck、whotdeck、hotdeckvar)但它们都没有处理样本权重。whotdeck命令表面上似乎处理权重,但它们不是样本权重,而是内部估计的重要性权重

    因此,我自己编写了一个程序并上传到github。该程序名为。有关更多信息和任何后续更新,请点击该链接。

    社区贡献的命令可能会满足您的需要。
                id       type     income     wealth     weight     impute
      1.         1          0       5000   20188.03          4          0
      2.         2          0      10000   40288.81          1          0
      3.         3          0          .          .          1          1
      4.         4          1      20000   80350.85          4          0
      5.         5          1      25000   100378.8          1          0
      6.         6          1          .          .          1          1
    
      3.         3          0       5000   20188.03          1          1
      3.         3          0      10000   40288.81          1          1