Upload
others
View
19
Download
0
Embed Size (px)
Citation preview
線形モデルにおける CLASSステートメントの機能
○吉田早織 1 魚住龍史 2 1 日本化薬株式会社 医薬データセンター
2 京都大学大学院医学研究科
The fascinating features for the CLASS
in the context of linear models
Saori Yoshida 1 and Ryuji Uozumi 2
1 Clinical Data Management and Biostatistics, Nippon Kayaku Co., Ltd 2 Kyoto University Graduate School of Medicine
社内でのある出来事
2
課題 ある応答変数(2値データ)に対して,説明変数を用いて
モデル化し,各薬剤群における推定を行いたい
カテゴリカルな
GENMODプロシジャ
オプションなし
LOGISTICプロシジャ
オプションなし
LOGISTICプロシジャ
オプションあり
結果は同じだけどWARNINGが
出てしまうみたい…
なぜか僕の結果と
合わないんだ…
Aさん
Bさん Cさん
CLASSステートメントの役割
3
MODELステートメント: モデルの推定結果の出力
モデル推定後のプロセス: LSMEANS,
CONTRAST, ESTIMATE, LSMESTIMATE
CLASSステートメント: 自動的にダミー変数を作成
プロシジャごとにダミー変数生成方法のデフォルト&オプションが異なる
自分での
設定が不要
多くのプロシジャで使える
線形モデルにおけるCLASSステートメント
4
REG, GLM
一般線形モデル
GLMSELECT V9.1.3~
HPREG V9.4~
浜田 (2000)
LOGISTIC
ロジスティックモデル
PHREG
比例ハザードモデル
V8~
V9.2~
今回のトピック
線形モデルにおけるダミー変数
LOGISTICプロシジャによるダミー変数の
指定例
CLASSステートメントのWARNING&ERROR
3人 (Aさん,Bさん,Cさん) のSASプログラム及び出力結果の検証
5
線形モデルにおけるダミー変数 (1)
カテゴリーを数値(0,1)で表したもの
ex) Treat がA,B,Pという値を持つとき
Treat Aの効果:
Treat A と P の効果の差
6
x1 x2 x3
A 1 0 0
B 0 1 0
P 0 0 1
3322110 xxx
103210 001
30 10
- )
31
ダミー変数行列1
Treat A:
Treat P:
線形モデルにおけるダミー変数 (2)
カテゴリーを数値(0,1,-1)で表したもの
ex) Treat がA,B,Pという値を持つとき
Treat Aの効果
Treat A と P の効果の差
7
x1 x2
A 1 0
B 0 1
P -1 -1
22110 xx
10210 01
ダミー変数行列2
210 10
- )
212
Treat A:
Treat P:
CLASSステートメントによる
ダミー変数の生成例
8
PARAM=EFFECT
分類 値 デザイン変数
A A1 A2 A5 1 1 0 0 2 0 1 0 5 0 0 1 7 -1 -1 -1
PARAM=GLM
分類 値 デザイン変数
A A1 A2 A5 A7
1 1 0 0 0
2 0 1 0 0
5 0 0 1 0
7 0 0 0 1
PARAM=REFRECT
分類 値 デザイン変数
A A1 A2 A5 1 1 0 0
2 0 1 0
5 0 0 1
7 0 0 0
PARAM=ORDINAL
分類 値 デザイン変数
A A1 A2 A5 1 0 0 0
2 1 0 0
5 1 1 0
7 1 1 1
PARAM=POLYNOMIAL
分類 値 デザイン変数
A A1 A2 A5 1 1 1 1
2 2 4 8
5 5 25 125
7 7 49 343
効果法 GLM法
参照法 累積順序法 多項式法
LOGISTICプロシジャによる
ダミー変数の指定
CLASSステートメントで PARAM=オプションを指定することでダミー変数の生成方法を指定できる
<SASデータにモデルを当てはめる>
SAS Helpに記載されているデータ ”Neuralgia”
Treatment(A,B,P),Sex(F,M)を説明変数,Pain
(Yes,No)を応答変数としたモデル
9
proc logistic data = Neuralgia ;
class Treatment Sex / param=effect ;
model Pain = Treatment Sex ;
run;
効果法(PARAM=EFFECT)
平均効果との違いを比較
Treatment A の推定
10
最尤推定値の分析
パラメータ 自由度 推定値 標準誤差 Wald カイ 2 乗
Pr >
ChiSq
Intercept 1 -0.4338 0.3224 1.8105 0.1785
Treatment A 1 -0.8676 0.4623 3.5219 0.0606
B 1 -0.8676 0.4623 3.5219 0.0606
Sex F 1 -0.8959 0.3568 6.304 0.012
分類変数の水準の情報
分類 値 デザイン変数
Treatment
A 1 0
B 0 1
P -1 -1
Sex
F 1
M -1
estimate "estimate A" int 1 Treatment 1 0 Sex 0;
推定 ラベル 推定値 標準誤差 z 値 Pr > |z|
estimate A -1.3013 0.5739 -2.27 0.0234
切片 Aを指定 平均を指定
GLM法(PARAM=GLM)
最後のレベルとの比較
Treatment A の推定
11
estimate “estimate A” int 1 Treatment 1 0 0 Sex 0.5 0.5 ;
最尤推定値の分析
パラメータ 自由度 推定値 標準誤差 Wald カイ 2 乗
Pr >
ChiSq
Intercept 1 2.1972 0.7566 8.4344 0.0037
Treatment A 1 -2.6027 0.8434 9.5237 0.002
B 1 -2.6027 0.8434 9.5237 0.002
P 0 0 . . .
Sex F 1 -1.7918 0.7136 6.304 0.012
M 0 0 . . .
分類変数の水準の情報
分類 値 デザイン変数
Treatment
A 1 0 0
B 0 1 0
P 0 0 1
Sex
F 1 0
M 0 1
切片 Aを指定 平均を指定
推定 ラベル 推定値 標準誤差 z 値 Pr > |z|
estimate A -1.3013 0.5739 -2.27 0.0234
参照法(PARAM=REF)
参照レベルとの比較
Treatment A の推定
12
最尤推定値の分析
パラメータ 自由度 推定値 標準誤差 Wald カイ 2 乗
Pr >
ChiSq
Intercept 1 -2.1972 0.7566 8.4344 0.0037
Treatment A 1 2.6027 0.8434 9.5237 0.002
B 1 2.6027 0.8434 9.5237 0.002
Sex F 1 1.7918 0.7136 6.304 0.012
分類変数の水準の情報
分類 値 デザイン変数
Treatment
A 1 0
B 0 1
P 0 0
Sex
F 1
M 0
estimate “estimate A” int 1 Treatment 1 0 Sex 0.5 ;
切片 Aを指定 平均を指定
推定 ラベル 推定値 標準誤差 z 値 Pr > |z|
estimate A -1.3013 0.5739 -2.27 0.0234
累積順序法(PARAM=ORDINAL)
順序のある効果間の比較
Treatment A の推定
13
最尤推定値の分析
パラメータ 自由度 推定値 標準 誤差
Wald カイ 2 乗
Pr >
ChiSq
Intercept 1 0.4055 0.5839 0.4822 0.4874
Treatment B 1 -2.6027 0.8434 9.5237 0.002
A 1 5.50E-17 0.7785 0 1
Sex F 1 1.7918 0.7136 6.304 0.012
分類変数の水準の情報
分類 値 デザイン変数
Treatment
P 0 0
B 1 0
A 1 1
Sex
F 0
M 1
estimate “estimate A” int 1 Treatment 1 1 Sex 0.5 ;
切片 Aを指定 平均を指定
推定 ラベル 推定値 標準誤差 z 値 Pr > |z|
estimate A -1.3013 0.5739 -2.27 0.0234
多項式法(PARAM=POLY)
2乗,3乗の効果を推定する
Treatment A の推定
14
最尤推定値の分析
パラメータ 自由度 推定値 標準 誤差
Wald カイ 2 乗
Pr >
ChiSq
Intercept 1 3.8191 2.4135 2.504 0.1136 Treatment POLY1 1 -6.5067 2.8429 5.2386 0.0221
POLY2 1 1.3013 0.6934 3.5219 0.0606 Sex POLY1 1 1.7918 0.7136 6.304 0.012
分類変数の水準の情報
分類 値 デザイン変数
Treatment
P 1.000 1.000
B 2.000 4.000
A 3.000 9.000
Sex
F 1.000
M 2.000
estimate “estimate A” int 1 Treatment 3 9 Sex 1.5 ;
切片 Aを指定 平均を指定
推定 ラベル 推定値 標準誤差 z 値 Pr > |z|
estimate A -1.3013 0.5739 -2.27 0.0234
CLASSステートメントの詳細設定
変数の順序設定
ORDER=DATA|FORMATED|FREQ|INTERNAL
• DATA:データセットに出力した順
• FORMATTED:FORMAT順(デフォルト)
• FREQ:数が多い順
• INTERNAL:フォーマットされていない値順
DESCENDING
•降順にする
基準値の設定
REF=‘label’|FIRST|LAST
• ‘label’で基準変数値の選択
• FIRST,LASTで最初の変数か最後の変数を選択
15
PARAM=EFFECT
PARAM=REF
のときのみ
CLASSステートメントの
WARNING&ERROR(1)
REF=オプションは,EFFECT法 or REF法でしか使えないが,他の手法で基準を指定するには?
ex) ordinal法
– Descendingで順番を変える
16
A 0 0
B 1 0
P 1 1
P 0 0
B 1 0
A 1 1 プラセボ基準にしたい
class TREATMENT / param=ordinal descending ;
Q
A
CLASSステートメントの
WARNING&ERROR(2) LSMEANSステートメントを使うとWARNINGが出力される
LSMEANSステートメント,SLICEステートメントはGLM法のみ
17
WARNING: The model does not have a GLM parameterization. This
parameterization is required for the LSMEANS, LSMESTIMATE,
and SLICE statement. These statements are ignored.
Q
A
proc logistic data = data ;
class Treatment Sex ;
model Pain = Treatment Sex ;
lsmeans Treatment ;
run;
class Treatment Sex / param=glm ;
CLASSステートメントの
WARNING&ERROR(3) – REF=‘label’でエラーが出力される
ex) TREATMENT=’B’ を基準としたい
– 変数ごとに個別に設定する
18
Treatment A 1 0
B 0 1
P 0 0
Sex F 1
M 0
class TREATMENT SEX / param=ref ref = ‘B’ ;
ERROR 22-322: 構文エラーです。次の1つを指定してください: FIRST, LAST.
class TREATMENT(ref = ‘B’ ) SEX(descending) / param=ref ;
Treatment A 1 0
B 0 0
P 0 1
Sex F 0
M 1
Q
A
CLASSステートメントの
WARNING&ERROR(4)
GLIMMIXプロシジャでORDER=を用いるとエラーが出力される
– ORDER= (順序)の指定は,PROCステートメント内で記述できる(詳細な指定はできない) • GLM法のみのプロシジャはPROCステートメント内となる
19
Q
A
proc glimmix data=data ;
class Treatment Sex / order=first ;
model Pain = Treatment Sex ;
run ;
ERROR 22-322: 構文エラーです。次の1つを指定してください: ;, TRUNCATE.
ERROR 202-322: オプションまたはパラメータを認識できません。無視します。
proc glimmix data=data order=internal;
各プロシジャにおける
ダミー変数生成法のサポート
PARAM= GLM GLM
SELECT LOGISTIC GEMNOD PHREG MIXED GLIMMIX FMM
EFFECT ○ ☆ ○ ○
GLM ☆ ☆ ○ ☆ ○ ☆ ☆ ☆
ORDINAL
THERMOMETER ○ ○ ○ ○
POLYNOMIAL
POLY ○ ○ ○ ○
REFERENCE
REF ○ ○ ○ ☆
ORTHEFFECT ○ ○ ○ ○
ORTHORDINAL
ORTHOTHERM ○ ○ ○ ○
ORTHPOLY ○ ○ ○ ○
ORTHREF ○ ○ ○ ○
20
☆:デフォルト
3人のプログラムを検証
21
Aさん
GENMODプロシジャ
オプションなし
LOGISTICプロシジャ
オプションなし
LOGISTICプロシジャ
オプションあり
Bさん Cさん
結果の不一致 WARNING
3人のプログラムを検証
22
対比推定の結果
ラベル 平均 推定値
平均 信頼限界
L'Beta 推定値
標準誤差 アルファ L'Beta 信頼限界
カイ 2 乗 値
Pr
> ChiSq
estimate A 0.2139 0.081 0.456 -1.3013 0.5739 0.05 -2.4261 -0.1766 5.14 0.0234
推定
ラベル 推定値 標準誤差 z 値 Pr > |z|
estimate A -1.7493 0.647 -2.7 0.0069
proc logistic data=Neuralgia;
class Treatment Sex ;
model Pain(EVENT='Yes') = Treatment Sex;
estimate “estimate A“
int 1 Treatment 1 0 0 Sex 0.5 0.5;
run;
proc genmod data=Neuralgia descending;
class Treatment Sex ;
model Pain = Treatment Sex / link=logit dist=bin;
estimate "estimate A" int 1 Treatment 1 0 0 Sex 0.5 0.5;
run;
Bさん proc logistic data=Neuralgia;
class Treatment Sex / param=ref;
model Pain(EVENT='Yes') = Treatment Sex;
estimate "estimate A"
int 1 Treatment 1 0 0 Sex 0.5 0.5;
run;
Aさん
Cさん
推定
ラベル 推定値 標準誤差 z 値 Pr > |z|
estimate A -1.3013 0.574 -2.27 0.0234
Aさんの方法
23
GLM法 x1 x2 x3
Treatment A 1 0 0
B 0 1 0
P 0 0 1
Sex F 1 0
M 0 1
◆ Treatment Aの効果を見るため他の効果(Sex)は平均とする
2110 5.05.0 SexSexTreatAy
GENMODプロシジャ オプションなし
proc genmod data=Neuralgia descending;
class Treatment Sex ;
model Pain = Treatment Sex / link=logit dist=bin;
estimate "estimate A" int 1 Treatment 1 0 0 Sex 0.5 0.5;
run; GENMODプロシジャの
デフォルトはGLM法
Bさんの方法
24
EFFECT法 x1 x2
Treatment A 1 0
B 0 1
P -1 -1
Sex F 1
M -1
proc logistic data=Neuralgia;
class Treatment Sex ;
model Pain(EVENT='Yes') = Treatment Sex;
estimate “estimate A“ int 1 Treatment 1 0 0 Sex 0.5 0.5;
run;
◆ Treatment Aの効果を見るため他の効果(Sex)は平均とする(0)
10 TreatAy
estimate “estimate A“ int 1 Treatment 1 ; 参
More coefficients than levels specified for effect
Treatment. Some coefficients will be ignored. WARNING:
LOGISTICプロシジャの
デフォルトはEFFECT法
LOGISTICプロシジャ オプションなし
Cさんの方法
25
REF法 x1 x2
Treatment A 1 0
B 0 1
P 0 0
Sex F 1
M 0
proc logistic data=Neuralgia;
class Treatment Sex / param=ref;
model Pain(EVENT='Yes') = Treatment Sex;
estimate "estimate A" int 1 Treatment 1 0 0 Sex 0.5 0.5;
run;
◆ Treatment Aの効果を見るため他の効果(Sex)は平均とする(0)
SexTreatAy 5.010
More coefficients than levels specified for effect
Treatment. Some coefficients will be ignored. WARNING:
REF法を指定
estimate “estimate A“ int 1 Treatment 1 0
Sex 0.5 ;
参
LOGISTICプロシジャ PARAMオプションあり
まとめ
26
ある応答変数(2値データ)に対して,説明変数を用いて
モデル化し,各薬剤群における推定を行いたい
カテゴリカルな
GLM法
GLM法 x1 x2 x3
Treatment A 1 0 0
B 0 1 0
P 0 0 1
Sex F 1 0
M 0 1
LSMEANS, CONTRAST, ESTIMATE, LSMESTIMATE
参考文献
1. Carpenter AL. Programming With CLASS: Keeping Your Options Open. Proceedings of the SAS Global
Forum. Cary, NC: SAS Institute Inc., 2014. Available at
http://support.sas.com/resources/papers/proceedings14/1270-2014.pdf.
2. Pasta DJ. Parameterizing Models to Test the Hypotheses You Want: Coding Indicator Variables and
Modified Continuous Variables. Proceedings of the 30th Annual SAS Users Group International
Conference. Cary, NC: SAS Institute Inc., 2005. Available at
http://www2.sas.com/proceedings/sugi30/212-30.pdf.
3. Pritchard ML, Pasta, DJ. Head of the CLASS: Impress your colleagues with a superior understanding of
the CLASS statement in PROC LOGISTIC. Proceedings of the 29th Annual SAS Users Group
International Conference. Cary, NC: SAS Institute Inc., 2004. Available at
http://www2.sas.com/proceedings/sugi29/194-29.pdf.
4. SAS Institute Inc. SAS/STAT(R) 9.3: User’s Guide. Cary, NC, USA: SAS Institute Inc., 2011.
5. SAS Institute Inc. SAS/STAT(R) 12.3: User’s Guide: High-Performance Procedures. Cary, NC, USA:
SAS Institute Inc., 2013.
6. 魚住龍史. LS-Means 再考 GLM と PLM によるモデル推定後のプロセス . SASユーザー総会 論文集 2014.
7. 竹内啓, 高橋行雄, 大橋靖雄, 芳賀敏郎. SASによる実験データの解析. 東京大学出版会, 1989.
8. 浜田知久馬. V.8におけるLOGISTICの機能拡張. 日本SASユーザー会(SUGI-J) 論文集 2000, 1338.
9. 浜田知久馬. SAS生存時間解析プロシジャの最新の機能拡張. SASユーザー総会 論文集 2013, 185–
199.
27