TTESTプロシジャのWelch検定が、GLM,MIXEDプロシジャのものと異なる。

[OS]Windows UNIX
[リリース] 6.12
[キーワード] GLM,TTEST,MIXED,WELCH,SATTERTHWAITE,SATTERTH, APPROXIMATION

[質問]

Version6において、分散が不均一な時の2群における平均差を検定するために、TTESTプロシジャと、MIXED,GLMプロシジャでWelch検定 (自由度をSatterthwaite近似した検定)を実行しましたが、その結果が少し異なります。
何故でしょうか?

data data1;
  input g y;
cards;
1 14.5
1 13.4
1 12.5
2 12.1
2 10.8
;

proc ttest data=data1;
  class g;
  var y;
run;

******** PROC TTESTの結果(一部)*************
 Variances       T        DF      Prob>|T|
-----------------------------------------
 Unequal     2.3179      2.4      0.1272
*********************************************;

proc glm data=data1;
  class g;
  model y=g /nouni;
  means g /welch;
run;

proc mixed data=data1;
  class g;
  model y=g /ddfm=satterth;
  repeated intercept /group=g;
run;

******** PROC GLM,MIXEDの結果(一部)**********
   Source      NDF   DDF  Type III F  Pr > F
   G             1  2.44        5.37  0.1231

  (上記の結果はMIXEDのもの。GLMも同じ値)
*********************************************;

[回答]

p値を求める計算方法に、違いがあります。

Version6以前におけるTTESTプロシジャのWelch検定(Sattethwaite近似の自由度による検定)では、p値を求める時に線形近似(線形補間)を用いています。小数点の自由度に対応したp値を求める時に、それを含む2つの整数値のp値から、線形補間して計算を行っています。

一方、GLMプロシジャやMIXEDプロシジャでは、小数点自由度の時の累積分布関数の値をそのまま算出しています。

Version7,8からは、TTESTプロシジャでも、線形補間ではなく、小数点自由度に対応した累積分布関数の値を、直接、求めるようになります。