For Higher Customer Satisfaction, We Bridge the SAS System Between Customer s World. AUTUMN 2011
02 AUTUMN 2011
AUTUMN 2011 03 SAS 9.2ではGENMODプロシジャにてZEROMODEL ステートメントが追加され ゼロ強調モデル (Zero Inflated Model) の推定ができるようになりました このモデルは 2 つの分布 Poisson 分布 ( もしくは負の二項分布 ) と退化分布 (degenerate distribution) に基づいています SAS 9.3 では これらのモデルを包括する 有限混合モデルに対し FMM プロシジャが追加されています Yes Noなどの2 値データに対する二項分布 カウントデータに対する Poisson 分布などを用いたモデルは 一般化線形モデル (Generalized Linear Model) と言及され LOGISTIC プロシジャ GENMODプロシジャ GLIMMIXプロシジャなどが対応しています これらのモデルでは 平均と分散が互いに依存するため 実際のデータに対し 分析を行った場合 過分散 (overdispersion) が生じ 検定結果が正しくないなどの問題が生じるケースがあります 過分散が生じる一つの例としては カウントデータにおいて 0 の値が多く含まれていることが挙げられます 観測した際の値がたまたま 0であったこと以外に 必然的に値 0であったなど 異なる起因にて生じていることがあります このようなケースにおけるモデルの一つとして ゼロ強調モデルがあります カウントに対する分布を Poisson 分布と仮定した場合 このモデルは以下のように記述できます Y S Poisson(λ) Y=0 で観測されているカウントは 12 となりますが Poisson 分布に基づくカウントは 3 となっており そのほか (9) は退化分布に基づき 0 として観測されています つまり 2つの分布が混合しているため 一つの分布 Poisson 分布のみを用いて分析を行った場合 推定結果が正しくなく 検定結果に基づく判断に誤りが生じてしまうかもしれません Poisson 分布を用いたゼロ強調モデルとして ( モデル1) の式を記述しましたが より一般的には密度関数を用います Poisson 分布 退化分布をそれぞれ f 1 (y S=1) f 2 (y S=0) とし 二項分布を Pr(S=j) とした場合 以下のように記述できます f(y)f f 簡略な記述とするため 2つの分布を混合したモデル ゼロ強調モデルをここまでご紹介してきました 新たなFMMプロシジャでは 有限であればより多くの分布を混合したモデルの推定ができ より一般的なモデル式としては 以下のようになります k f(y;αβ)σ j (Sj)f j (y;α j, β j S j) 各分布 f j に対して説明変数 分布の指定が必要となるため FMM プロシジャでは複数のMODEL ステートメントを記述します 分布に関しては DIST= オプションを用い 二項分布 (BINOMIAL) Poisson 分布 (Poisson) ガンマ分布(GAMMA) 正規分布(Gaussian) 退化分布 (CONSTANT) などを指定できます リンク関数については LINK= オプションを用います また 潜在的な変数 Sの分布 Pr(S=j) に関してはPROBMODEL ステートメントにて指定することができます 変数 Sの分布は二項分布 ( 試行数 1 確率 p) であると仮定します 多くの場合 変数 S の値は観測されないため 潜在変数ともいわれます Poisson 分布のパラメータλ( 平均 ) を 4 二項分布のパラメータ p ( 確率 ) を0.9とした場合 疑似的なサンプルに基づく ヒストグラムは以下のようになります 前節のモデル式にあるように 有限混合モデルは複数の一般化線形モデルに基づいています このため 一つのみの一般化線形モデルにも対応しており モデルの推定ができます つまり CATMODプロシジャ GLM プロシジャ LOGISTICプロシジャ GENMODプロシジャ GLIMMIXプロシジャ REGプロシジャにて対応しているモデルに対しても推定が行えます モデルの推定を行った後 カテゴリカル変数の各水準に対するLS 平均 LS 平均の差 (LSMEANS ステートメント ) また 推定可能であるパラメータ線形式の推定 (ESTIMATE ステートメント ) 対比に対する検定 (CONTRAST ステートメント ) が必要となる場合があります しかしながら 線形モデルにおける推定可能性などの理論が直接 有限混合モデルに適用することができないため FMMプロシジャではこれらのステートメントはサポートされていません 図 3 : シミュレーション結果に基づくヒストグラム
04 AUTUMN 2011 DATA catch; INPUT gender $ age count @@; DATALINES; F 54 18 M 37 0 F 48 12 M 27 0 M 55 0 M 32 0 F 49 12 F 45 11 M 39 0 F 34 1 F 50 0 M 52 4 M 33 0 M 32 0 F 23 1 F 17 0 F 44 5 M 44 0 F 26 0 F 30 0 F 38 0 F 38 0 F 52 18 M 23 1 F 23 0 M 32 0 F 33 3 M 26 0 F 46 8 M 45 5 M 51 10 F 48 5 F 31 2 F 25 1 M 22 0 M 41 0 M 19 0 M 23 0 M 31 1 M 17 0 F 21 0 F 44 7 M 28 0 M 47 3 M 23 0 F 29 3 F 24 0 M 34 1 F 19 0 F 35 2 M 39 0 M 43 6 ; PROC FMM DATA=catch; CLASS gender; MODEL count = gender*age / DIST=Poisson ; MODEL + / DIST=Constant; RUN; PROC FMM DATA=catch; CLASS gender; MODEL count = gender*age / DIST=Poisson; RUN;
AUTUMN 2011 05 PROC FMM DATA=catch; CLASS gender; MODEL count = gender*age / DIST=Poisson ; MODEL + / DIST=Constant; BAYES; RUN;
06 AUTUMN 2011 EFFECT test = COLLECTION(x1 x2); CLASS treatment; EFFECT lag = LAG(treatment / WITHIN=subject PERIOD=period); CLASS teacher1 teacher2; EFFECT teacher = MULTIMEMBER(teacher1 teacher2); EFFECT mypol = POLYNOMIAL(x1-x3 / degree=2); PROC GLIMMIX DATA=one; CLASS a b sub; EFFECT spl = SPLINE(x); MODEL y= a b spl a*spl; RANDOM a*b / SUBJECT=sub; RUN; EFFECT spl = SPLINE(x);
AUTUMN 2011 07
08 AUTUMN 2011 SAS Academic News
AUTUMN 2011 09 有意差があるかをみたいと思います このように2 群 ( グループ ) 間に違いがあるかどうかを知りたい場合に t 検定を使用します t 検定は 分析 メニューの 分散分析 から t 検定 を選択します t 検定 分散分析 で t 検定 を選択すると t 検定の種類を選択する画面になります 2 標本に対する検定 2 つのグループ間で平均値に違いがあるかというようなときに使います 対応のある検定例えば同じ人たちに 2 回調査を行って変化をみるなど 俗にペアのデータの場合の検定です 2 標本のt 検定は 分析している集団の分散が等しい場合と等しくない場合の2 種類の分析があります EGでは両方のt 検定と 等分散性の検定結果を出力します 一番下に表示されている 等分散性 が等分散の検定の結果です この結果から t 検定の結果のどちらを見るかを判断します 今回は 等分散性 の Pr>F が 0.5899と5%(0.05) より大きいので 分散が等しい という帰無仮説が棄却されません つまり 今回の男女の学生の時給データは分散が等しいと仮定できます 等分散が仮定される場合は 上の出力 で手法が Pooled のところを見ます 等分散が仮定できない場合は下の Satterthwaite を見ます 今回は Pooled の Pr> t が 0.5452 と 5%(0.05) より大きいので 男女で時給の平均が等しい という帰無仮説が棄却されません つまり今回のデータでは 性別では時給に違いがないことがわかりました では 履修している授業の学生ごとで 時給が違うかどうかを見てみるとどうなるでしょうか 今度は 分類変数 を 授業 にして 分析変数 は 時給 のままで実行します 1 標本に対する検定得られたデータが特定の集団から得られるデータと同じと判断できるかどうかを調べるものです 今回は 男子学生と女子学生の違いなので 2 標本に対する検定 を選択します 先ほどの記述統計量と同様に 分類変数 に 性別 分析変数 に 時給 を指定して実行します 今回は 等分散性 の Pr>F が <.0001 と非常に小さく 分散が等しい という帰無仮説が棄却されます つまり 授業ごとの時給データは分散が等しいとは仮定できないことになります 等分散が仮定できないので 上の出力で手法が Satterthwaite のところを見ます 今回は Satterthwaite の Pr> t が 0.0002 と小さいので 基礎を履修している学生と演習を履修している学生では 時給の平均が等しくないということになります その上の表に授業ごとの時給の平均値が算出されており これを見ると基礎の学生よりも演習の学生の方が時給が高いことがわかります
10 AUTUMN 2011
AUTUMN 2011 11
12 AUTUMN 2011
AUTUMN 2011 13 { Z α 2P(1 P )+Z β P 1 (1 P 1 )+ P 2 (1 P 2 )} 2 n = P = P 1 + P 2 ( P 1 P 2 ) 2 2 proc power; twosamplefreq test=pchi groupproportions = (.55.35) 34 55135 groupns = 80 120 34 80 1 120 power =.; run;
14 AUTUMN 2011 proc power; twosamplefreq test=pchi proportiondiff = 0.20,0.25,0.30,0.35 1 35 refproportion = 0.35 1 35 groupns = 120 80 power =.; run; proc power; twosamplefreq test=pchi groupproportions = (.55.35) npergroup = 120 120 power =.; run;
AUTUMN 2011 15 Q&A Q A A DATA _NULL_; var1=" "; var2=" "; var3=" "; x1=whichc(' ',of var1-var3); /* WHICHC */ x2=whichc(' ',of var1-var3); x3=whichc(' ',of var1-var3); PUT x1=; PUT x2=; PUT x3=; RUN; x1=1 x2=3 x3=0 Q PROC IMPORT DATAFILE="c: temp tst_space1.xls" OUT=out DBMS=EXCEL REPLACE; RUN; Q A ERROR: DBMS EXCEL import Q
16 AUTUMN 2011 A Q OPTIONS DLCREATEDIR ; LIBNAME sample "c: new"; A Q A C: ProgramFiles SAS deploymntreg sas.tools.viewregistry.jar ODS HTML STYLE=htmlbluecml; C: Program Files SAS deploymntreg
AUTUMN 2011 17 SAS Training
18 AUTUMN 2011 proc format ; value dayfmt 1='Sunday' 2='Monday' 3='Tuesday' 4='Wednesday' 5='Thursday' 6='Friday' 7='Saturday' ; run ; proc report data=diary ; column subject day var1 var2 ; run ; define day / order 'Day' ; define day / order order=data 'Day' ; define day / order noprint 'Day' ; define day / order order=internal 'Day' ;
AUTUMN 2011 19
20 AUTUMN 2011 Latest Releases AUTUMN 2011 SAS Institute Japan www.sas.com/jp