9.
Cox比例ハザード回帰モデルによる交絡因子調整の実際前回まで、筆者らが出版した臨床研究の事例論文をもとに、Cox比例ハザード回帰モデルによる交絡因子の調整の考え方を解説しました。今回からは、われわれのResearch Question(RQ)をCox比例ハザード回帰モデルの数式(連載第57回参照)に当てはめて考えてみます。アウトカムは「末期腎不全(透析導入)」であり(連載第49回参照)、生存時間分析においては、打ち切りの概念を含んだイベント発生の有無のデータに加え、at riskな観察期間のデータが必要でした(連載第37回、第41回参照)。Censor:イベント発生の有無(イベント発生=1、打ち切り=0)Year:at riskな観察期間(連続変数)検証したい要因は、推定たんぱく質摂取量0.5g/kg標準体重/日未満(連載第49回参照)、すなわち「厳格低たんぱく食の遵守」です。交絡因子は以下の要因を挙げています(連載第49回参照)。年齢、性別、糖尿病の有無、血圧、ベースラインeGFR、蛋白尿定量、血清アルブミン値、ヘモグロビン値これらの要因をCox比例ハザード回帰モデルの数式に当てはめると、次のようになります。h(t|treat、age、sex、dm、sbp、eGFR、Loge_UP、albumin、hemoglobin)=h(t)×exp(β1treat)×exp(β2age)×exp(β3sex)×exp(β4dm)×exp(β5sbp)×exp(β6eGFR)×exp(β7Loge_UP)×exp(β8albumin)×exp(β9hemoglobin)=h(t)×exp(β1treat+β2age+β3sex+β4dm+β5sbp+β6eGFR+β7Loge_UP+β8albumin+β9hemoglobin)treat:厳格低たんぱく食の遵守の有無(あり=1、なし=0)age:年齢(連続変数)sex:性別(男性=1、女性=0)dm:糖尿病の有無(あり=1、なし=0)sbp:収縮期血圧(連続変数)eGFR :ベースラインeGFR(連続変数)Loge_UP:蛋白尿定量_対数変換(連続変数)(連載第48回参照)albumin:血清アルブミン値(連続変数)hemoglobin:ヘモグロビン値(連続変数)βn:各説明変数に対応する回帰係数ここで求めたいのは、検証したい要因である厳格低たんぱく食の遵守の有無を示す変数treatに対応する回帰係数β1の指数変換値exp(β1)です。exp(β1)は、上述のようにモデルに投入したすべての説明変数(交絡因子)の影響を多変量解析で調整したハザード比(adjusted hazard ratio:aHR)を表します。すなわち、交絡因子を調整した後の厳格低たんぱく食遵守群と非遵守群のHRを示します。実際には、これらの回帰係数やaHRはEZR(Eazy R)などの統計解析ソフトを用いて、データ・セットから点推定値と95%信頼区間を推定します。さて、Cox比例ハザード回帰モデルを適用するためには「比例ハザード性」の仮定が必要であることはすでに説明しました(連載第55回参照)。まずはKaplan-Meier曲線を描いて、生存曲線が交差していないことを確認することも解説しました。しかし、「比例ハザード性」の検証には、二重対数プロット(log-log plot)を評価することが必須とされています。それでは、仮想データ・セットからEZRを使用して二重対数プロットを描いてみます。仮想データ・セットをダウンロードする※ダウンロードできない場合は、右クリックして「名前をつけてリンク先を保存」を選択してください。まず、仮想データ・セットをダウンロードし、下記のデータが格納されていることを確認してください。A列:IDB列:Treat(1;厳格低たんぱく食遵守群、0;厳格低たんぱく食非遵守群)C列:Censor(1;アウトカム発生、0;打ち切り)D列:Year(at riskな観察期間)次に、以下の手順でEZRに仮想データ・セットを取り込みましょう。「ファイル」→「データのインポート」→「Excelのデータをインポート」仮想データ・セットがインポートできたら、下記の手順で二重対数プロットを描画します。「統計解析」→「生存期間の解析」→「生存曲線の記述と群間の比較(Logrank検定)」を選択下記のウィンドウが開いたら、以下のとおりにそれぞれの変数を選択してください。観察期間の変数:Yearイベント(1)、打ち切り(0)の変数:Censor群別する変数を選択:Treat層別化変数は選択なし、その他の設定はとりあえずデフォルトのままで、「OK」ボタンをクリックします。画像を拡大するここまでのEZRのGraphic User Interface(GUI)操作ではKaplan-Meier曲線だけが出力されますが、その際に自動生成されるRスクリプトに少し手を加えて、二重対数プロットを出力するという手順になります。Rスクリプトのウィンドウに表示されたコードから、以下の行を探してください。plot(km, bty="l", col=1:32, lty=1, lwd=1, conf.int=FALSE, mark.time=TRUE, xlab="Year", ylab="Probability")このコードの末尾に、二重対数プロットを描画するオプションのコード(fun="cloglog")を加え、またY軸ラベル(ylab)も、わかりやすいようにlog(-log(Probability)に変更します。plot(km, bty="l", col=1:32, lty=1, lwd=1, conf.int=FALSE, mark.time=TRUE, xlab="Year", ylab=" log(-log(Probability))", fun="cloglog")修正したコードをRスクリプトのウィンドウにコピペし、下図のようにカーソルを合わせた状態で「実行ボタン」をクリックします。画像を拡大する下図のような二重対数プロットが描けましたか。各群の曲線を視覚的に確認し、この図のようにおおむね平行であれば「比例ハザード性」の仮定は成立すると判断でき、Cox比例ハザード回帰モデルの適用の妥当性が担保されます。