Kruskal-Wallisの検定結果をデータセットに出力する方法

[OS]ALL
[リリース]
[キーワード]

[質問]

SAS/STATプロシジャのNPAR1WAYプロシジャで、Kruskal-Wallis の検定を行いました。 得られた統計量をSASデータセットに出力する方法を教えてください。

[回答]

Version 6.12以降より、NPAR1WAYプロシジャにOUTPUTステートメントが追加され、結果がデータセットに出力されるようになりました。また、Version8からは、ODS(Output Delivery System)機能によって、データセットに出力することもできます。

また、Kruskall-Wallis検定(カイ2乗近似による方法)は、FREQプロシジャにおけるCochran-Mantel-Haenzel検定の行スコアの違いを見る検定と等価です。よって、FREQプロシジャを用いて、その結果をデータセットに出力することもできます。
群の変数および連続変数をもつデータに対して、FREQプロシジャのTABLESステートメントのオプションに、「score=rank」「cmh2」を指定すると、Row Means Differに出力される結果が、Kruskall-Wallis検定になっています。OUTPUTステートメントでデータセットを作成すると、_CMHRMS_に検定統計量, P_CMHRMS_にp値が出力されます。

<例>

data freqdata;
  input var1 var2;
cards;
1 12.4
1 14.5
1 13.1
2 12.4
2 10.5
2 4.8
3 2.5
3 21.5
3  4.5
;
***** FREQプロシジャでの指定例 *********************;
proc freq data=freqdata;
  tables var1*var2/score=rank cmh2;
  output out=outfreq cmh2; /* 出力データセット */
run;
proc print data=outfreq;
run;

***** NPAR1WAYプロシジャでの指定例 *********************;
proc npar1way data=freqdata wilcoxon;
  class var1;
  var var2;
  exact wilcoxon;
  output out=outnpar wilcoxon;
run;
proc print data=outnpar;
run;

なお、var1 は 群を表す変数、var2 は検定する変数を示します。