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