MI Procedure の標準化操作について

monotone reg

SAS の MI Procedure は非常に簡単に多重補完法を適用できる素晴らしいソフトウェアです。
MI Procedure の monotone reg のヘルプ中では、欠測値 $Y_j$ に対して線型回帰モデル \[ Y_j = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \ldots + \beta_k X_k \] に基づいて補完をするという説明があります。
そして details オプションを指定しておくと、線型回帰モデルのパラメータ推定値を出力してくれます。
しかしながら、このパラメータ推定値の出力を見ると、解釈ができないことに気づきます。
この問題について、以下のサンプルプログラムで検討してみます。
MI Procedure と上記の回帰モデルを GENMOD Procedure を使って当てはめた結果を比較します。


  data example;
    call streaminit(5574);
    do i = 1 to 1000;
      y0 = rand("Normal", 1, 2);
      y1 = rand("Normal", 2, 2);
      if rand("Uniform") < 0.1 then do;
        y1 = .;
      end;
      output;
    end;
  run;
  proc mi data = example out = imp nimpute = 2 seed = 234;
    monotone reg(/details);
    var y0 y1;
  proc genmod data = example;
    model y1 = y0 / dist = normal;
  run; quit;
  

これを実行すると、MI では以下が出力されます。


                  Regression Models for Monotone Method

  Imputed                                ---------Imputation---------
  Variable    Effect         Obs-Data               1               2

  y1          Intercept     0.0000877       -0.011417       -0.003273
  y1          y0             -0.02421       -0.012392       -0.046280
  

一方で GENMOD では以下が出力されます。


  Analysis Of Maximum Likelihood Parameter Estimates

                                Standard     Wald 95% Confidence
  Parameter    DF    Estimate       Error           Limits       

  Intercept     1      2.0166      0.0760      1.8677      2.1655
  y0            1     -0.0232      0.0324     -0.0867      0.0402
  Scale         1      1.9755      0.0468      1.8859      2.0694
  

MI の出力中の Obs-Data はデータから推定した回帰モデルのパラメータ (隣の Imputation はこのパラメータに基づいて算出した補完に用いるモデルのパラメータ; 詳細はヘルプを参照) であり、ヘルプ中に示した回帰モデルを用いたにもかかわらず、MI と GENMOD でパラメータ推定値は全く異なる事が分かります。
おそらく、データの標準化などを行っていると思われました。


  proc stdize data = example out = example2;
    var y0 y1;
  proc genmod data = example2;
    model y1 = y0 / dist = normal;
    ods output ParameterEstimates = out;
  proc print data = out;
    format Estimate best12.;
  run;
  

このプログラムを実行すると、以下が出力されます。


  Parameter    DF        Estimate

  Intercept     1    0.0000877065
  y0            1    -0.024214787
  Scale         1    0.9991496705
  

これは MI の出力と一致しており、MI の内部では各変数の平均値が $0$ で標準偏差が $1$ になるように標準化した上で、処理が行われていることが分かりました。

履歴

  • 2015/6/18 公開