JMP によるオッズ比 リスク比 ( ハザード比 ) の算出方法と注意点 SAS Institute Japan 株式会社 JMP ジャパン事業部 2008 年 3 月改定 1. はじめに本文書は JMP でオッズ比 リスク比 それぞれに対する信頼区間を求める算出方法と注意点を述べたものです この後の 2 章では JMP でのオッズ比 オッズ比の信頼区間の算出方法について サンプルデータを用いて解説しております 3 章では リスク比 ( ハザード比 ) リスク比の信頼区間の算出方法について サンプルデータを用いて解説しております 4 章では 名義尺度を使用して JMP でオッズ比 リスク比を算出することについての注意点が記されており 5 章では 4 章に対する理論的な背景を説明しております とりあえずオッズ比 リスク比 それぞれに対する信頼区間を算出したいという目的であれば 2 章 ( オッズ比 ) 3 章 ( リスク比 ) のみご一読いただくことで十分です 尚 本文書の 2 章以降で示している図は JMP 7 での出力になります 2. オッズ比とその信頼区間の算出方法 この章では サンプルデータを用いて JMP でのオッズ比 その信頼区間の算出方法をご説明します 使用するサンプルデータ データファイル: odds1.jmp 出典:SAS/STAT LOGISTIC Procedure Example 42.2 のデータから一部の変数を抜粋 変数の詳細 変数名 ( 列名 ) 尺度 詳細 Pain 名義 目的変数 アウトカム (No, Yes) Treatment 名義 治療法 (A, B, P) Age 連続 調整因子 Duration 連続 調整因子 データテーブル( 一部 ) 分析内容 データファイル odds1.jmp を用いて 疾患 (Pain) の発生 (Yes) に対し Age Duration を調整因子として 治療法 P に対す る治療法 A( カテゴリ P A に変化 ) のオッズ比 治療法 P に対する治療法 B( カテゴリ P B に変化 ) のオッズ比を算出する 1
例えば 治療法 P はプラセボを投与 治療法 A はアウトカムとなる疾患に効果があると思われる薬剤を 10mg 投与 治療法 B は 治療法 A と同様の薬剤を 20mg 投与したとします このときのプラセボに対する治療薬 A のオッズ比 プラセボに対する治療 薬 B のオッズ比を求めると考えることができます 分析のステップ Step 0: Y( 目的変数 ) のカテゴリの順序を確認 Step 1: カテゴリの説明変数に対し ダミー変数の作成 Step 2: モデルのあてはめ を実行 適切なモデルの指定 Step 3: オプションを指定し オッズ比とその信頼区間を表示 以下 このステップに沿って JMP の操作をご説明します Step 0: Y( 目的変数 ) のカテゴリの順序を確認名義尺度に指定した変数には カテゴリに順番があります 順番を確認するには 該当の列を選択 ( 青く反転 ) し メニューから [ 列 ] > [ 値のチェック ] > [ リストチェック ] を選択します 図 2.1 はリストチェックの画面ですが カテゴリの順番は No, Yes の順です これでは 最初のカテゴリである No すなわち疾患がないという事象のオッズ比を求めることになります 目的は 疾患があるという事象のオッズ比を求めることなので リストの順番を変更します 図 2.1 リストチェックのウィンドウ : No, Yes の順番になっている リストチェックのウィンドウで No をクリックし [ 下に移動 ] ボタンを押すことによって順番を変更することができます 順番を変更すると データテーブルの列名の後ろの下向きの矢印マークが追加されます ( 図 2.2) 図 2.2 リストチェックのウィンドウ : Yes, No の順番に変更 順番を変更すると 列名の右側に矢印が表示される 2
Step 1: カテゴリの説明変数に対し ダミー変数の作成ロジスティック回帰を行う際 説明変数 Treatment は名義尺度のため これをダミー変数に変換します ここでのダミー変数とは 名義尺度の変数を条件ごとに 0 または 1 の 2 値に変換した変数のことで Treatment の各カテゴリに対し 3 つのダミー変数を表 2.1 のルールで作成します ダミー変数 ルール Treatment(A) Treatment の値が"A" であれば 1 そうでなければ 0 Treatment(B) Treatment の値が"B" であれば 1 そうでなければ 0 Treatment(P) Treatment の値が"P" であれば 1 そうでなければ 0 表 2.1 ダミー変数の作成ルール JMP では 計算式エディタを用いて以下の方法で作成します 計算式エディタでの操作方法 ------------------------------------------------------------------------------------------------------- 1. メニューより [ 列 ] > [ 新規作成 ] を選びます 列名を Treatment(A) に変更します その後 列プロパティのボタンをクリックし 計算式を選択します 2. 計算式パレットが開きますので 次の順序で計算式を入力します ( 図 2.3 参照 ) 関数から 条件付き > If を選択 テーブル列から Treatment を選択 関数から 比較 > a==b を選択 赤い太枠に A と入力 ( も入力する ) then 節の枠をクリックして赤い枠を移動し 1 と入力 else 節の枠をクリックして赤い枠を移動し 0 と入力 [OK] ボタンを押す 3. 列の新規作成ウィンドウを [OK] ボタンを押して閉じます これより データテーブルに新しい列が作成されます ------------------------------------------------------------------------------------------------------- 図 2.3 計算式の入力画面 3
以下 ダミー変数 Treatment(B) Treatment(P) も同様に作成します 図 2.4 はダミー変数作成後のデータテーブルになり ます 図 2.4 ダミー変数作成後のデータ データテーブル odds2.jmp は Step 0 Step 1 を行った後のデータテーブルになります 上記の操作でダミー変数を作成できますが 名義尺度のカテゴリ数が多い場合 作成には手間がかかります 弊社ではダミー変数を自動的に作成する JMP のスクリプトをサンプルとして提供しております このスクリプトを用いると ダミー変数を作成する名義変数を選択するだけで自動的にダミー変数を作成することができます 以下の Web ページにある 日本語のサンプルスクリプト 1 または 日本語のサンプルスクリプト 2 にある 0/1 のダミー変数作成 が該当するスクリプトになります https://www3.sas.com/jmp/japan/includes/scripts_lib_sysdep_j.html 注意 : このスクリプトは JMP のユーザ登録をされている方のみがリクエストすることができます Step 2: モデルのあてはめ を実行 適切なモデルの指定 目的変数のカテゴリ順序の確認 ダミー変数の作成を行った後 メニューより [ 分析 ] > [ モデルのあてはめ ] を選び 列を図 2.5 のように指定します 図 2.5 モデルの指定 ( 名義ロジスティック ) 4
この分析例では 治療法 P を基準にしているので ダミー変数 Treatment(P) をモデルに含めず 残りのダミー変数をモデルの効果に追加します ウィンドウ右上の [ モデルの実行 ] ボタンを押すと 名義ロジスティックのあてはめ の結果レポート画面が表示されます パラメータ推定値 のレポートの下に 推定値は次の対数オッズに対するものです : Yes/No と表示されます これは No に対する Yes のオッズ比を対数変換した値が ( パラメータ ) 推定値になることを意味します 先ほど Step 0 で行った 目的変数のカテゴリ順序の変換で変更したカテゴリ順が反映されています もし 事前にカテゴリ順序を変更しなかった場合は No/Yes と表示されます そのため この表示からでも正しいカテゴリ順序になっているかどうかをチェックすることができます Step 3: オプションを指定し オッズ比とその信頼区間の表示名義ロジスティック回帰のレポート画面の左上にある赤い三角ボタンから [ オッズ比 ] を選択するとオッズ比が出力されます さらにオッズ比の信頼区間は 赤い三角ボタンから [ 信頼区間 ] を選択し 信頼水準 ( デフォルトはα=0.05) を入力することにより表示されます ( 図 2.6) レポートには 単位オッズ比 と 範囲オッズ比 という 2 通りのオッズ比が出力されますが ダミー変数の列に関しては 双方のオッズ比 その信頼区間は等しくなります 図 2.6 オッズ比 信頼区間の表示 図 2.6 より 疾患の発生を事象としたときの治療法 P に対する治療法 A 治療法 B それぞれのオッズ比 オッズ比の 95% 信頼 区間 ( 信頼限界 ) は 表 2.2 のようにまとめられます 治療法 オッズ比 95% 信頼区間 A 0.069 [0.010, 0.337] B 0.039 [0.004, 0.237] 表 2.2 治療法 P をリファレンスとしたときの 治療法 A 治療法 B のオッズ比とその 95% 信頼区間 5
3. リスク比とその信頼区間の算出方法 この章では サンプルデータを用いて JMP でのリスク比 その信頼区間の算出方法をご説明します 尚 文献等ではハザード比という用語も用いられておりますが JMP ではリスク比という用語を用いているため 以下では リスク比 を用語として用います 使用するサンプルデータ データファイル: risk1.jmp 出典:JMP のサンプルデータ ラット.jmp に対して 一部の変数を抜粋 修正 データを追加 変数の詳細 変数名 ( 列名 ) 尺度 詳細 生存日数 連続 イベントまでの時間 打ち切りの有無 連続 打ち切りの変数 ( 打ち切りあり =1 打ち切りなし =0) グループ 名義 グループ (G1, G2, G3, G4) データテーブル( 一部 ) 分析内容 データファイル risk1.jmp を用いて グループ間の死亡リスクの比較 リスク比を用いて行う 比較は G1 を比較の対照 ( リファレ ンス ) として G2,G3,G4 の死亡リスクがどのぐらい高まるかをみる 例えば 変数 グループ の値 G1, G2, G3, G4 を癌のステージ ( ステージ Ⅰ からステージ Ⅳ) と想定すると ステージ Ⅰ に対して ステージ Ⅱ Ⅲ Ⅳ それぞれの死亡リスクをリスク比で評価すると考えることができます 分析のステップ Step 1: カテゴリの説明変数に対し ダミー変数の作成 Step 2: 比例ハザードのあてはめ を実行 適切なモデルの指定 Step 3: オプションを指定し リスク比とその信頼区間を表示 以下 このステップに沿って 操作をご説明します Step 1 : カテゴリの説明変数に対し ダミー変数の作成 ロジスティック回帰のときと同様に 変数 グループ に対するダミー変数を作成することになります ダミー変数 グループ (G1) グループ (G2) グループ (G3) グループ (G4) を追加したテーブルを図 3.1 に示します 6
図 3.1 データテーブルにダミー変数を追加 データテーブル risk2.jmp は ダミー変数作成後のデータテーブルになります Step 2: 比例ハザードモデルのあてはめ を実行 適切なモデルの指定 ダミー変数の作成を行った後 メニューより [ 分析 ] > [ 生存時間もしくは信頼性分析 ] > [ 比例ハザードのあてはめ ] を選び 列を 次のように指定します ( 図 3.2) 図 3.2 モデルの指定 ( 比例ハザード ) この分析例では グループ G1 を基準 ( リファレンス ) にしているので ダミー変数 グループ (G1) をモデルに含めず 残りのダ ミー変数をモデルの効果に追加します ウィンドウ右上の [ モデルの実行 ] ボタンを押すと 比例ハザードのあてはめ の結果レポート画面が表示されます Step 3: オプションを指定し オッズ比とその信頼区間の表示 左上にある赤い三角ボタンより [ リスク比 ] を選択しますとリスク比の推定値 95% 信頼区間が表示されます ( 図 3.3) ここでも ダミー変数に変換した列に関しての 単位リスク比 範囲リスク比 は同じ値になります 7
図 3.3 リスク比 ( 両側 95%) 信頼区間の表示 図 3.3 より グループ G1 に対する グループ G2 G3 G4 それぞれのリスク比 リスク比の 95% 信頼区間は 表.3.1 のようにま とめることができます グループ リスク比 95% 信頼区間 G2 1.875 [0.945, 3.707] G3 1.025 [0.517, 2.029] G4 3.435 [1.690, 7.002] 表 3.1 グループ G1 をリファレンスとしたときの グループ G2 G3 G4 のリスク比とその 95% 信頼区間 8
4. 説明変数に名義変数を指定したとき この章では 名義尺度の説明変数をダミー変数に変換せずに そのままモデルの効果として含めたときにどのような出力になる かを考察します さらに JMP 7 と JMP 6 とでは出力内容が異なりますので これらの違いも考察します 4.1 オッズ比 サンプルデータ odds1.jmp を用い モデルのあてはめ で図 4.1 のようにモデルを指定し 2 章の Step 3 まで ( オッズ比 信頼 区間の算出 ) 操作を行った結果を図 4.2 に示します 図 4.1 モデルの指定 図 4.2 分析結果の出力 JMP 7 JMP 6 JMP 7 の出力は 連続尺度と名義尺度 ( 順序尺度 ) とで異なります 名義尺度の列 Treatment に対しては 3 つの水準 (A, B, P) がありますので すべての組み合わせに対して オッズ比が出力されています 表示されるオッズ比の値は 水準 1 / 水準 2 の 9
順番に注意する必要があります 水準 1/ 水準 2 は 水準 2 に対する水準 1 のオッズ比を示します もし 水準 1 に対する水準 2 のオッズ比を知りたいのであれば 逆数の欄が該当します 2 章で算出したオッズ比は 2 行目 3 行目の 逆数 の値が該当します ただし JMP 7 では 名義尺度 ( 順序尺度 ) の説明変数に対し オッズ比の信頼区間が表示されません オッズ比のみであれば 上記のように名義尺度をそのままモデルの効果に含めることにより求めることができますが オッズ比に対する信頼区間まで必要であれば 2 章のようにダミー変数を作成して算出する必要があります 一方 JMP 6 での出力は 2 章の結果に一致する値が見つかりません この理由につきましては 5 章で説明します 4.2 リスク比 サンプルデータ risk1.jmp を用い 比例ハザードのあてはめ で 図 4.3 のようにモデルを指定し 2 章の Step 3 まで ( リスク比 信頼区間の算出 ) 操作を行った結果を図 4.4 に示します 図 4.3 モデルの指定 図 4.4 分析結果の出力 JMP 7 JMP 6 JMP 7 でのリスク比の出力も オッズ比と同様です 2 章で算出したリスク比は 出力の 1,2 行目 4 行目が該当します ただし JMP 7 では 名義尺度 ( 順序尺度 ) の説明変数に対し リスク比の信頼区間が表示されません リスク比の信頼区間につきましても ダミー変数を用いて算出することになります 一方 JMP 6 では リスク比の値が JMP 7 の出力と一致しません この理由につきましても 5 章で説明します 10
5. 理論的な背景 4 章では 説明変数に名義変数を指定した際 JMP 7 と JMP 6 では オッズ比 リスク比の値が異なりました さらに JMP 6 の 出力では 2 章でダミー変数を作成して求めたときと値が異なることが分かりました この章では これらの理由を説明します 5.1 ダミー変数について通常 名義尺度を説明変数に含めてロジスティック回帰や重回帰分析を行うとき 名義尺度の説明変数はダミー変数に変換します そして このダミー変数を説明変数に加えてパラメータの推定を行います JMP でもモデル効果に名義尺度を指定したときは 内部的に名義尺度の変数をダミー変数にし パラメータ推定値を計算します しかし 一般にダミー変数への変換方法は複数あり 2 章で説明したダミー変数への変換方法と JMP で内部的に行っているダミー変数への変換方法は異なります この節では これらの違いについて説明します 2カテゴリのときまずは 簡単のため2カテゴリの場合について説明します そのためにデータテーブル odds1.jmp で Treatment = B または P のみを抽出したデータを用いて説明します JMP である条件を満たすデータを抽出する方法は 文末の付録 A をご参照下さい 名義尺度 Treatment のリスト順は B, P です ここでは JMP で モデル効果に指定した名義尺度の変数 順序尺度の変数それぞれをダミー変数に変換する際の変換ルール (JMPの内部的な変換法でして ダミー変数の列が作られるわけではありません) 2 章で行ったダミー変数への変換方法を表 4.1 にまとめておきます 例えば1では 値が B のデータは 1 に 値が P のデータは -1 に変換されることを示します カテゴリ 1JMP 22 章で作成し名義尺度たダミー変数 B 1 1 P -1 0 表 4.1 ダミー変数への変換ルール (2カテゴリ) 図 4.1 は JMP 6 を用いて 1 2 それぞれの方法で求めた パラメータ推定値 ( 範囲 ) オッズ比を JMP のテーブルにまとめたも のです 図 4.1 それぞれの方法のパラメータ推定値 ( 範囲 ) オッズ比 図 4.1 より 1と2では 推定値は異なりますが オッズ比は等しくなります この違いは 表 4.1 のダミー変数の変換ルールの違いによるものです JMP では 名義尺度の変数で複数のカテゴリがあるとき 最後のカテゴリのパラメータ推定に関する情報は結果のレポートに表示されません 最後のカテゴリ (P) のパラメータ推定値は 表 4.1 の1のダミー変数の指定方法より 最初のカテゴリ (B) のパラメータ推定値を-1 倍したものになります 一方 2では 最後のカテゴリ (P) のパラメータ推定値は 0 になります 表 4.2 にこれらの値をまとめます これより 1 2 双方でパラメータ推定値は異なりますが 値の範囲は双方で等しく (P の推定値 )-(B の推定値 ) = 2.728 となります そのため 説明変数の値が最小値から最大値へ変化したときのオッズ比が何 11
倍になるかを示す 範囲オッズ比 では 1 と 2 双方でのオッズ比が等しくなります 尚 範囲オッズ比と単位オッズ比の違いにつ いては 文末の付録 B で説明します 1 の範囲オッズ比 : Exp((-1.364)-1.364) = Exp(-2.728) = 0.065 2 の範囲オッズ比 : Exp((-2.728)-0) = Exp(-2.728) = 0.065 カテゴリ 1JMP 22 章で作成し名義尺度たダミー変数 B -1.364-2.728 P 1.364 0 表 4.2 変数 Treatment のパラメータ推定値 3 カテゴリのとき 3 カテゴリの変数のとき パラメータ推定に用いるダミー変数は 2 つのダミー変数 D1, D2 を用い 表 4.3 のように示されます カテゴリ 1JMP 名義尺度 22 章で作成したダミー変数 D1 D2 D1 D2 A 1 0 1 0 B 0 1 0 1 P -1-1 0 0 表 4.3 ダミー変数への変換方法 (3カテゴリ) 3 の D1, D2 はそれぞれ 2 章で作成したダミー変数 Treatment(A) Treatment(B) に該当します ( 図 2.4 参照 ) 図 4.2 は JMP 6 を用いて 1 2 の方法で求めたパラメータ推定値 ( 範囲 ) オッズ比を JMP のテーブルにまとめたものです 図 4.2 それぞれの方法のパラメータ推定値 ( 範囲 ) オッズ比 1について 名義ロジスティックのあてはめ のレポートの左上の赤い三角ボタンから [ 確率の計算式の保存 ] を選択すると データテーブルにいくつかの列が追加されます その中の列 線形[Yes] の計算式を参照しますと Treatment のカテゴリ A, B, P のパラメータ推定値を確認することができます ( 図 4.3) JMP の名義尺度に対するパラメータ推定値は すべてのカテゴリの推定値を合計すると 0 になるよう設計されています 12
A B P (-0.7066) + (-1.2648) + 1.9714 = 0 図 4.3 線形 [Yes] の計算式 : 列名の + ボタンをクリックすることにより表示できる 1 で求めたパラメータ推定値 ( 図 4.2 参照 ) を用いて P に対する A のオッズ比 P に対する B のオッズ比を求めるには 以下のよ うな計算を行います ここで β(a) はカテゴリ A のパラメータ推定値を示します β(a) + β(b) + β(c) = 0 より P に対する A のオッズ比 Exp{β(A)-β(P)} = Exp[β(A)-{-(β(A)+β(B))}] = Exp{2 β(a) + β(b)} = Exp{(2 (-0.7066) + (-1.2648)} = Exp(-2.678) = 0.069 P に対する B のオッズ比 Exp{β(B)-β(P)} = Exp[β(B)-{-(β(A)+β(B))}] = Exp{β(A) + 2 β(b)} = Exp({(-0.7066)+ 2 (-1.2648)} = Exp(-3.2362) = 0.039 これらは 2 で求めたオッズ比の値に一致します このように ダミー変数を作成せずに 3 カテゴリの名義尺度を用いて あるカテゴリを基準 ( リファレンス ) としたオッズ比を求め る場合は 上記のような計算が必要になります 13
付録 A. 部分的にデータを抽出する方法 ここでは JMP 7 の新機能である データフィルタ を用いて ある条件を満たすデータを抽出する方法を説明します 例として データテーブル odds1.jmp で Treatment= B または P のデータのみを新しいデータテーブルに抽出することを考えます 操作方法 1. メニューより [ 行 ] > [ データフィルタ ] を選択します 2. データフィルタの設定パネルが表示されますので 列 Treatment を選択し [ 追加 ] ボタンを押します ( 図 A 左 ) 3. Treatment に対し B と P を選択します B を選択した後 Ctrl キーを押しながら P をクリックすることにより B と P を同時に選択することができます ( 図 A 中央 ) 4. 3の状態で 左上の赤い三角ボタンより [ サブセットの作成 ] を選択します ( 図 A 右 ) 図 A データフィルタによるサブセットの抽出 付録 B. 範囲オッズ比と単位オッズ比の違い JMP では オッズ比の選択項目として 範囲オッズ比 と 単位オッズ比 があります ここでは これらのオッズ比の違いにつ いて説明します 範囲オッズ比説明変数 (X) の値が 最小値 (Xmin) から最大値 (Xmax) へ変化したときにオッズ比が何倍になるかを示した値です たとえば 説明変数 X として年齢という変数を取り上げ その変数の値の範囲は 15( 歳 ) から 35( 歳 ) だとします このとき 範囲オッズ比は 年齢が 15 歳から 35 歳に上がったときに Y のオッズ比が何倍になるかということが求まります パラメータ推定値をβとしたとき 連続尺度のオッズ比は Exp{β (Xmax-Xmin)} で計算します 本文で説明した通り JMP で名義尺度の場合は パラメータ推定値を求める際に -1 と 1 にコード化されます このことから 名義尺度のオッズ比は Exp{β (1-(-1))} = Exp(2β) で計算されます 順序尺度の場合は 0 と 1 にコード化されますので 順序尺度のオッズ比は Exp(β) になります 単位オッズ比説明変数 (X) が 1 単位変化したときのオッズ比の変化を示します 例えば 年齢であれば 1 歳年を取ったときの Y のオッズ比が何倍になるかということが求まります このため 単位オッズ比の場合は 連続尺度 名義尺度 順序尺度ともに Exp(β) で計算されます 14
範囲オッズ比 単位オッズ比の計算式をまとめたものが表 B になります 尺度 ( 範囲 ) オッズ比 単位オッズ比 連続 Exp(β(Xmax-Xmin)) Exp(β) 名義 Exp(2β) Exp(β) 順序 Exp(β) Exp(β) 表 B 範囲オッズ 単位オッズ比の計算式 例 : データ odds1.jmp を用いて 次のようにモデルを指定してロジスティック回帰を行います [Y] : Pain [ モデル効果の構成 ]: Age Duration 結果のレポートで [ オッズ比 ] を選択した出力を図 B1 に示します 図 B1 範囲オッズ比と単位オッズ比 列 Age の最小値は 59 で最大値は 83 です 範囲は 24( =83-59) になります 同様に列 Duration は 1 から 50 までの値をと り 範囲は 49 (=50-1) です 範囲オッズ比を単位オッズ比と範囲から算出するには ( 単位オッズ比 ) を ( 範囲 ) 乗することにより 求まります Age : (1.1674) ^ (24) = 41.0530 Duration : (0.98104)^(49) = 0.3915 ここで (a)^(b) は a の b 乗を示します 15