JMP によるオッズ比 リスク比 ( ハザード比 ) の算出と注意点 SAS Institute Japan 株式会社 JMP ジャパン事業部 2011 年 10 月改定 1. はじめに 本文書は JMP でロジスティック回帰モデルによるオッズ比 比例ハザードモデルによるリスク比 それぞれに対する信頼区間を求める操作方法と注意点を述べたものです 本文書は JMP 7 以降のバージョンに対応しております この後の 2 章では JMP9 でのオッズ比 オッズ比の信頼区間を求める方法について ロジスティック回帰のサンプルデータを用いて説明します 3 章では JMP 9 でのリスク比 ( ハザード比 ) リスク比の信頼区間を求める方法について 比例ハザードモデルのサンプルデータを用いて説明します JMP 7, JMP 8 では 名義 ( 順序 ) 尺度の説明変数に対し オッズ比 リスク比の信頼区間は表示されません そのため 4 章では ダミー変数を作成して信頼区間を算出する方法を説明しています 最後の 5 章では 2 章から 4 章で説明した事項に関連するいくつかのトピックについて Q&A 形式で説明します 2.JMP 9 を用いたオッズ比とその信頼区間の算出方法 この章では サンプルデータを用いて JMP 9 でのオッズ比 その信頼区間の算出方法をご説明します 使用するサンプルデータ データファイル: sample_odds1.jmp 変数の詳細 変数名 ( 列名 ) 尺度 詳細 Pain 名義 目的変数 アウトカム (No, Yes) Treatment 名義 治療法 (A, B) Age 連続 調整因子 Duration 連続 調整因子 データテーブル( 一部 ) 分析内容データファイル sample_odds1.jmp を用いて 疾患(Pain) の発生 (Yes) に対し Age Duration を調整因子としてロジスティック回帰を行い 治療法 A の治療法 B に対するオッズ比 ( カテゴリ B A に変化 ) のオッズ比 とその信頼区間を算出する 1
分析のステップ Step 1: Y( 目的変数 ) に対する値の順序を確認 Step 2: モデルのあてはめ を実行 適切なモデルの指定 Step 3: オプションを指定し オッズ比とその信頼区間を表示 以下 このステップに沿って JMP の操作をご説明します Step 1: Y( 目的変数 ) の 値の順序 を確認 JMP では 名義尺度や順序尺度の変数に対し 値にはあらかじめ順序がついています 分析を実行する前に Y に指定する名義尺度について 値の順序を確認します ここで 目的の事象 ( この例では 疾患があるという事象なので Yes ) を 1 番目に変更する必要があります 値の順序を確認 1. データテーブルで 列 Pain を選択 ( 列を青く反転 ) し メニューから [ 列 ] > [ 列情報 ] を選択します 2. 列情報のウィンドウの 列プロパティ のボタンをクリックし [ 値の順序 ] を選択します 図 2.1 を参照すると 値の順序は No, Yes の順序になっています この順番だと No つまり疾患がないという事象のオッズ比 を求めることになり 今回の目的とは異なります 目的は 疾患があるという事象 Yes のオッズ比を求めることですので 値の 順序を変更します 図 2.1 値の順序 : No, Yes の順番になっている 3. Yes を選択し [ 上へ移動 ] をクリックします 値の順序を変更すると データテーブルの列パネルの列名にアスタリスク (*) のアイコンが追加されます ( 図 2.2) 2
図 2.2 値の順序 : Yes, No の順序に変更 順序を変更すると 列名の右側にアスタリスクが表示さ れる アスタリスクをクリックすることにより 列プロパティ として [ 値の順序 ] が設定されていることが確認できる Step 2: モデルのあてはめ を実行 適切なモデルの指定 目的変数の値の順序を確認後 メニューバーより [ 分析 ] > [ モデルのあてはめ ] を選択し 列を図 2.3 のように指定します モデルを指定後 右上の [ 実行 ] をクリックします 図 2.3 モデルの指定 ( 名義ロジスティック ) 名義ロジスティックのあてはめ のレポートが出力されます 図 2.4 のように パラメータ推定値 のレポートの下に 推定値は次の対数オッズに対するものです : Yes/No と表示されます これは Yes の No に対するオッズ比を対数変換した値が ( パラメータ ) 推定値になることを意味します 先ほど Step 1 で行った 目的変数のカテゴリ順序の変換で変更した値の順序が反映されています もし 事前に値の順序を変更しなかった場合は No/Yes と表示されます そのため この表示からでも正しい値の順序になっているかどうかをチェックすることができます 3
図 2.4 名義ロジスティックのあてはめのレポート Step 3: オプションを指定し オッズ比とその信頼区間を表示名義ロジスティック回帰のレポート画面の左上にある赤い三角ボタンから [ オッズ比 ] を選択すると オッズ比とその 95% 信頼区間 ( 下側 95% 上側 95%) が出力されます 説明変数が連続尺度のときは 単位オッズ比 と 範囲オッズ比 が出力されます 単位オッズ比は説明変数が 1 単位変化した場合のオッズ比を 範囲オッズ比は 説明変数がデータの範囲全体 ( 最大値 - 最小値 ) 変化したときのオッズ比を示します 単位オッズ比と範囲オッズ比の詳細につきましては 5 章の Q&A をご参照ください 説明変数がカテゴリ ( 名義尺度 順序尺度 ) のときは 水準 1 の 水準 2 に対するオッズ比 p 値 95% 信頼区間が表示されます ( 図 2.5) 図 2.5 オッズ比 95% 信頼区間の表示 疾患の発生を事象としたとき 治療法 A の治療法 B に対するオッズ比は 図 2.5 の Treatment のオッズ比 水準 1=A 水準 2 =B の欄を参照します このときのオッズ比は 6.19 であり その 95% 信頼区間は [1.14, 45.20] であることがわかります 4
3.JMP 9 を用いたリスク比とその信頼区間の算出方法 この章では サンプルデータを用いて JMP 9 でのリスク比 その信頼区間の算出方法をご説明します 尚 文献等ではハザード比という用語も用いられておりますが JMP ではリスク比という用語を用いているため 以下では リスク比 を用語として用います 使用するサンプルデータ データファイル: sample_risk1.jmp 出典:JMP のサンプルデータ ラット.jmp に対して 一部の変数を抜粋 修正 データを追加 変数の詳細 変数名 ( 列名 ) 尺度 詳細 生存日数 連続 イベントまでの時間 打ち切りの有無 連続 打ち切りの変数 ( 打ち切りあり =1 打ち切りなし =0) グループ 名義 グループ (G1, G2, G3, G4) データテーブル( 一部 ) 分析内容 データファイル sample_risk1.jmp を用いて グループ間の死亡リスクの比較をリスク比を用いて行う 比較は G1 を比較の対照 ( リファレンス ) として G2,G3,G4 の死亡リスクがどのぐらい高まるかをみる 分析のステップ Step 1: 比例ハザードのあてはめ を実行 適切なモデルの指定 Step 2: オプションを指定し リスク比とその信頼区間を表示 以下 このステップに沿って JMP での操作を説明します 5
Step1: 比例ハザードモデルのあてはめ を実行 適切なモデルの指定 メニューバーより [ 分析 ] > [ 信頼性 / 生存時間分析 ] > [ 比例ハザードのあてはめ ] を選び 列を次のように指定します ( 図 3.1) 図 3.1 モデルの指定 ( 比例ハザード ) [ 実行 ] をクリックすると 比例ハザードのあてはめ のレポートが表示されます ( 図 3.2) 図 3.2 比例ハザードモデルのあてはめのレポート Step 2: オプションを指定し リスク比とその信頼区間を表示左上にある赤い三角ボタンより [ リスク比 ] を選択すると リスク比の推定値 95% 信頼区間が表示されます ( 図 3.3) このように 説明変数がカテゴリ ( 名義尺度 順序尺度 ) の場合 水準 1 水準 2 の考えられるすべての場合について リスク比 p 値 95% 信頼区間が表示されます 6
図 3.3 リスク比 95% 信頼区間の表示 図 3.3 より グループ G2 G3 G4 のグループ G1 に対するそれぞれのリスク比とその 95% 信頼区間は 表.3.1 のようにまとめ ることができます グループ リスク比 95% 信頼区間 レポート参照行 G2 1.875 [0.945, 3.707] 1 行目 G3 1.025 [0.517, 2.029] 2 行目 G4 3.435 [1.690, 7.002] 4 行目 表 3.1 グループ G1 をリファレンスとしたときの グループ G2 G3 G4 のリスク比とその 95% 信頼区間 7
4.JMP 7, JMP 8 でカテゴリ変数に対するオッズ比 リスク比の信頼区間を表示 2 章 3 章では JMP 9 を用いたときの操作方法を説明しました JMP 7, JMP 8 では カテゴリ変数 ( 名義尺度 順序尺度 ) に対し オッズ比の信頼区間 リスク比の信頼区間は表示されません オッズ比の推定値 リスク比の推定値のみであれば 2 章 3 章で説明した操作方法で表示できますが それぞれの信頼区間まで必要であれば 名義 ( 順序 ) 尺度の変数をダミー変数に変換します ここでのダミー変数とは 名義 ( 順序 ) 尺度の変数を条件ごとに 0 または 1 に変換した連続変数のことを示します この章では JMP 8 を用いて説明しています (JMP 7 を用いても同様の操作になります ) 説明変数が 2 カテゴリのとき 2 章で用いたサンプルデータ ( sample_odds1.jmp ) の列 Treatment は A, B の 2 つの値をとります 治療法 A の治療法 B に 対するオッズ比を求める場合 次のようなルールでダミー変数を作成します < ルール > Treatment = A のとき ダミー変数 = 1 Treatment = B のとき ダミー変数 = 0 JMP では 計算式エディタを用いて ダミー変数 Treatment(A) を次の方法で作成します 計算式エディタでの操作方法 ------------------------------------------------------------------------------------------------------- 1. メニューより [ 列 ] > [ 列の新規作成 ] を選びます 列名を Treatment(A) に変更します その後 列プロパティのボタンをクリックし 計算式を選択します 2. 計算式エディタが開きますので 次の順序で計算式を入力します ( 図 4.1 参照 ) 関数から 条件付き > If を選択 テーブル列から Treatment を選択 関数から 比較 > a==b を選択 赤い太枠に A と入力 ( も入力する ) then 節の枠をクリックして赤い枠を移動し 1 と入力 else 節の枠をクリックして赤い枠を移動し 0 と入力 [OK] ボタンを押す 3. 列の新規作成ウィンドウを [OK] ボタンを押して閉じます これより データテーブルに新しい列が作成されます ------------------------------------------------------------------------------------------------------- 図 4.1 計算式の入力 8
図 4.2 は ダミー変数作成後のデータテーブルです ダミー変数を追加したテーブルは sample_odds1_withdummy.jmp という 名前で保存しています 図 4.2 ダミー変数 ( Treatment(A) ) を作成 [ モデルのあてはめ ] では モデル効果の構成 ( 説明変数 ) として Treatment(A) を Treatment の代わりに指定します このモデルの指定に対する名義ロジスティックのあてはめのレポートの赤い三角ボタンより [ オッズ比 ] を選択し さらに [ 信頼区間 ] (1-αの信頼水準を指定はデフォルトの 0.05 を指定 ) を指定すると 図 4.3 のように オッズ比とその 95% 信頼区間 ( 下側信頼限界 上側下側限界 ) が表示されます ダミー変数 (1/0) を説明変数として指定している場合は 単位オッズ比と範囲オッズ比の値は一致します 図 4.3 オッズ比とその信頼区間 Treatment(A) に対するオッズ比は 6.19 その 95% 信頼区間は [1.14, 45.20] であり この結果は 2 章での Treatment を 指定したときの結果に一致します 9
説明変数が 3 カテゴリ以上のとき 3 章で用いたサンプルデータの列 グループ は G1,G2,G3,G4 と 4 つの値をとります 3 章と同じように G2,G3, G4 の G1 に対するそれぞれのリスク比とその信頼区間を算出したいということでしたら 列 グループ に対し 3 つのダミー変数を表 4.1 のルールで作成します ダミー変数 ルール グループ(G2) グループ の値が"G2" であれば 1 そうでなければ 0 グループ(G3) グループ の値が"G3" であれば 1 そうでなければ 0 グループ(G4) グループ の値が"G4" であれば 1 そうでなければ 0 表 4.1 ダミー変数の作成ルール 図 4.4 は ダミー変数作成後のデータテーブルです ダミー変数を追加したデータテーブルは sample_risk1_withdummy.jmp という名前で保存しています 図 4.4 ダミー変数 ( グループ (G2) グループ (G3) グループ (G4) ) を作成 上記で説明した通り ダミー変数は計算式により作成できますが 名義尺度のカテゴリ数が多い場合 作成には手間がかかります 弊社ではダミー変数を自動的に作成する JMP のスクリプトをサンプルとして提供しております このスクリプトを用いると ダミー変数を作成する名義変数を選択するだけで自動的にダミー変数を作成することができます 以下の Web ページにある 日本語のサンプルスクリプト 1 または 日本語のサンプルスクリプト 2 にある 0/1 のダミー変数作成 が該当するスクリプトになります https://www3.sas.com/jmp/japan/includes/scripts_lib_sysdep_j.html 注意 : このスクリプトは JMP のユーザ登録をされている方のみリクエストすることができます [ 比例ハザードのあてはめ ] では モデル効果の構成 ( 説明変数 ) として グループ (G2) グループ (G3) グループ (G4) を グループ の代わりに指定します 10
このモデルの指定に対する比例ハザードのあてはめのレポートの赤い三角ボタンより [ リスク比 ] を選択すると 図 4.5 のよう に リスク比とその 95% 信頼区間 ( 下側信頼限界 上側下側限界 ) が表示されます 図 4.5 リスク比とその信頼区間 ここで表示される グループ (G2) グループ (G3) グループ (G4) のリスク比 その 95% 信頼区間は 3 章で求めた G1 に 対する G2, G3,G4 のそれぞれのリスク比と一致します 11
5.Q & A 2 章から 4 章で説明した内容に関連する Q&A を 3 つほど掲載します 以下は オッズ比に対しての説明になっていますが 特に 断りがない限り リスク比に置き換えていただいても構いません Q1.JMP でのパラメータ推定値とオッズ比との関係 名義尺度の説明変数に対して 表示されるパラメータ推定値から Exp( パラメータ推定値 ) で計算したときのオッズ比と レポー トに表示されるオッズ比が一致しません なぜですか? A1. JMP の採用している名義尺度のダミー変数化が影響しています 通常 名義尺度を説明変数に含めてロジスティック回帰や比例ハザードモデルを行うとき 名義尺度の説明変数は連続尺度のダミー変数に変換します そして このダミー変数を説明変数に加えてパラメータの推定を行います JMP でもモデル効果に名義尺度を指定したときは 内部的に名義尺度の変数をダミー変数に変換し パラメータ推定値を計算しています しかし 一般にダミー変数への変換方法はさまざまな方法があり 4 章で説明したような 1/0 に変換する方法と JMP で内部的に行っているダミー変数の変換方法は異なります データテーブル sample_odds1.jmp の列 Treatment の値の順序は A,B の順です このとき JMP では内部的に A は 1 に B は -1 に変換されます 一般に M 単位増加したときのオッズ比は Exp (M パラメータ推定値 ) で計算できます B に対する A を考えるとき -1 から 1 まで 2 単位上昇したことになります そのため JMP で出力されるパラメータ推定値を用いると 2 カテゴリのときは exp(2 パラメータ推定値 ) で計算できます この例では Exp(2 0.9114) = 6.189 となり Treatment のオッズ比 に出力されているオッズ比に一致します ( 図 5.1) 図 5.1 パラメータ推定値とオッズ比との関係 A の B に対するオッズ比 Exp(2 0.9114) = 6.189 ( 参考 ): JMP の内部的なダミー変数の作成方法によりパラメータ推定値を求めると パラメータ推定値をすべてのカテゴリにおいて足し算した値は 0 になります そのため データテーブル sample_risk1.jmp の列 グループ のそれぞれの値におけるパラメータ推定値をそれぞれ β(g1), β(g2), β(g3), β(g4) とすると 例えば G4 の G1 に対するリスク比は 次の式で求めることができます β(g1) + β(g2) + β(g3) + β(g4) = 0 より Exp(β(G4) -β(g1) ) = Exp(-(β(G1) + β(g2) + β(g3)) -β(g1) ) = Exp(-2β(G1) -β(g2) - β(g3)) = Exp(-2 (-0.41717) 0.156759 (-0.44732)) = 3.4353 この値は 3 章で表示された G4 の G1 に対するリスク比の値に一致します 12
Q2. 単位オッズ比と範囲オッズ比の違いについて 連続尺度に対しては 単位オッズ比 と 範囲オッズ比 の 2 通りのレポートが表示されますが これらのオッズ比の違いは何で すか? A2. 単にオッズ比と範囲オッズ比の説明を以下に記載します 単位オッズ比説明変数 (X) が 1 単位変化したときのオッズ比の変化を示します 例えば 年齢であれば 1 歳年を取ったときの Y のオッズ比が何倍になるかということが求まります このため 単位オッズ比の場合は 連続尺度 名義尺度 順序尺度ともに Exp(β) で計算されます 範囲オッズ比説明変数 (X) の値が 最小値 (Xmin) から最大値 (Xmax) へ変化したときにオッズ比が何倍になるかを示した値です たとえば 説明変数 X として年齢という変数を取り上げ その変数の値の範囲は 15( 歳 ) から 35( 歳 ) だとします このとき 範囲オッズ比は 年齢が 15 歳から 35 歳に上がったときに Y のオッズ比が何倍になるかということが求まります パラメータ推定値をβとしたとき 連続尺度のオッズ比は Exp{β (Xmax-Xmin)} で計算します Q1 で説明した通り JMP で名義尺度の場合は パラメータ推定値を求める際に -1 と 1 にコード化されます このことから 名義尺度のオッズ比は Exp{β (1-(-1))} = Exp(2β) で計算されます 順序尺度の場合は 0 と 1 にコード化されますので 順序尺度のオッズ比は Exp(β) になります 単位オッズ比 範囲オッズ比の計算式をまとめたものが表 5.1 になります 尺度 単位オッズ比 範囲オッズ比 連続 Exp(β) Exp(β(Xmax-Xmin)) 名義 Exp(β) Exp(2β) 順序 Exp(β) Exp(β) 表 5.1 範囲オッズ 単位オッズ比の計算式 : パラメータ推定値をβとする 例 : データ sample_odds1.jmp を用いて 2 章で求めた連続尺度 Age と Duration に対するオッズ比の出力を再掲します 併せて [ 表の作成 ] コマンドで作成したそれぞれの変数の範囲 最小値 最大値を示します ( 図 5.2 ) 13
図 5.2 単位オッズ比と範囲オッズ比 変数の範囲 最小値 最大値 Age の範囲は 21 ( =80-59) Duration の範囲は 49 (=50-1) です 範囲オッズ比を単位オッズ比と範囲から算出するには ( 単位オッズ比 ) を ( 範囲 ) 乗することにより 求まります Age : (1.220875) ^ (21) = 66.084 Duration : (1.017456)^(49) = 0.4283 ( (a)^(b) は a の b 乗を示します ) Q3.95% 以外の信頼区間の算出 JMP では オッズ比に対する 95% 信頼区間が表示されますが 99% 信頼区間など 信頼区間のパーセントを任意に設定すること は可能ですか? JMP 9 では [ モデルのあてはめ ] における モデルの指定 の左にある赤い三角ボタンにより [ 有意水準の設定 ] を選択することができます 選択すると (1-α) 信頼水準を 0~1 の間で指定することができます または 名義ロジスティックのあてはめ のレポートでは Shift キーをクリックしながら 赤い三角ボタンをクリックし [ 信頼区間 ] を選択すると 同様に (1-α) の信頼水準を指定するウィンドウが表示されます ( 図 5.3) 図 5.3 オッズ比の 99% 信頼区間の表示 JMP 7,JMP 8 では 名義ロジスティックのあてはめ の赤い三角ボタンより [ 信頼区間 ] のオプションを指定して 信頼水準 を変更することができます 比例ハザードモデルのあてはめ では 信頼水準を変更するオプションはありません 14