僕の頁 <SASと臨床試験と雑談と>

徒然なるままにSAS暮らし

0224

IMLプロシジャによる2標本t検定の実行  

IMLプロシジャで2標本t検定を実行してみます。何でこんなことを
する必要があるかと言いますと、何万回もシミュレーションをする
必要がある際にttestプロシジャでは時間がかかるからです。今日は
シミュレーションではなく、単純にデータが与えられたもとで、IML
プロシジャで2標本t検定を実行します。

sashelp.BWeightというデータから、母親の喫煙の有無で乳児の
出生時体重に違いがあるかを2標本t検定で検証してみます。

useとreadで各群のデータをそれぞれ読み込んでX1とX2という行列に
格納します。標本平均およびvar関数で不偏分散を算出し、t統計量と
P値を算出します。

・t統計量(m,nは各群の症例数)
t統計量2

実際のプログラムは以下になります。
proc iml ;
use sashelp.Bweight ;
read all var{WEIGHT} where(MOMSMOKE=0) into X1 ; *--- 喫煙無し群 ;
read all var{WEIGHT} where(MOMSMOKE=1) into X2 ; *--- 喫煙有り群 ;
m = nrow(X1) ; *--- 喫煙無し群の症例数 ;
n = nrow(X2) ; *--- 喫煙有り群の症例数 ;
DF = m + n - 2 ; *--- 自由度 ;
DIFF = X1[:] - X2[:] ; *--- 平均値の差 ;
SE = sqrt( ((m-1)*var(X1) + (n-1)*var(X2))/(m + n - 2)*(1/m + 1/n) ) ; *--- SE ;
T = DIFF/SE ; *--- t統計量 ;
if T < 0 then P = 2*probt(T,DF) ;
else P = 2*(1-probt(T,DF)) ;
*--- 両側P値 ;
print T P ;
quit ;

実行結果は以下になります。
IML結果

ちなみにttestプロシジャの実行結果は以下になります。
ttestプロシジャの結果

後日シミュレーションプログラムも紹介したいと思います。
スポンサーサイト

Posted on 2014/02/24 Mon. 23:56 [edit]

CM: 0
TB: 0

プロフィール

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

訪れた人

▲Page top