3. ロジスティック回帰分析とノモグラム

三浦(医療情報技師)

はじめに

今回は教科書にも出てくるロジスティック回帰分析のおはなしです。

教科書で説明されているロジスティック回帰分析は、単に説明変数と目的変数の数学的な関係やその解き方が中心です。そのため、結果が出たらそれだけで良いのか、他に何に気をつけながら処理を行うのかなど、実際にいろいろと困ります。

今回は、こういった処理を専門とする人達の処理の流れについてご説明します。教科書の中の世界とは異なり、ロジスティック回帰自体はシンプルな解析方法ですが、実際には、それなりに手数が必要です。

ロジスティック回帰分析の手順

ロジスティック回帰分析の手順の大まかな流れは以下のとおりです。

(1)はじめはなんといっても「データをよく見る」ことからはじめます。外れ値やコードの相違、分布を確認、相関の確認などを行って、問題ないことが分かったら、次のステップに進みます。

(2)データに3つ以上のカテゴリーデータが含まれている場合は、ダミー変数への置き換えが必要です。また、対象が連続変数であっても直線性が悪い場合は、カテゴリー化することがあります。 カテゴリー化の方法は省略しますが、カテゴリー化したときに線形に近づくように処理するのが、一般的な手法です。

(3)変数選択法を使って、目的変数をよく説明できるものを探します。AIC(赤池情報量規準)などを用いて変数選択をします。 この処理も変数を単調に増加させたり減らしたりといった方法や、確率的な分布をシミュレーションして、もっとも頻度の高い組み合わせが得られる変数を選択する確率的変数選択法などがあります。

(4)その結果から尤度比検定やWald検定値、あるいはオッズ比の信頼区間などを読み取り、選択された変数の有意性を検証します。

(5)さらに、それらを対象に、ROC( Receiver operating characteristic)カーブを作成します。各説明変数のROCカーブと総合的なROCカーブを作成し、それらのAUC(Area Under the Curve)を求めます。 さらに必要に応じてブートストラップ法でROCカーブを数千回作成して、ROCカーブの信頼区間を求めます。

(6)クロスバリデーションを行い、判定精度を評価します。

(7)キャリブレーションプロットを作成して、予測された結果と実際のデータの分布が一致しているかどうかを確認します。

図1 キャリブレーションプロットの例(R言語に付属しているデータを使用)

(8)必要に応じてノモグラムなどを作成します。 ノモグラムは図2に示すようなものです。

同図では、age, cholesterol, blood.pressureといった3つの検査項目がありますが、それぞれの計測値の場所にマークをして、その上部にあるPointsに垂線を引き、点数に置き換えます。得られたポイントをすべて加算して下から3段目のTotal Pointsにマークします。

さらに、その位置から下に垂線を引いて、Linear PredictorやRisk of Deathの予測値を得ることができます。パソコンがすぐに使えないような現場では、便利な方法です。

tech003_02

図2 ノモグラムの例

ときどき発生する問題点

コンプリートセパレーションなどの問題が起こります。これは、完全に予測可能なデータで構成されているときに発生するトラブルです。具体的には、ロジスティック関数の傾斜が無限大になってしまい、計算が困難になるために発生するものです。

他に擬似コンプリートセパレーションというものもあります。これは、複数のデータの組み合わせで計算不能になる場合で、いくつかのケースがあります。いずれにしても統計的なフラつきを持つデータ数が多くなれば、これらの問題は起こりにくくなります。

補足の話題

モデルの評価にROCカーブとAUCをご紹介しましたが、比例ハザードモデル(propotional hazards model)のように将来の再発を予測するような場合には、AUCではなく、Concordance Index(CIまたはc-indexとも呼ばれる)を利用します。

両者はかなり近い値ですが、時間軸を伴うデータの場合はCIの方がより正確に評価できます。CIは、得られているデータで順序関係を持っているものを対象にして、それらが予測値を用いても同じ順序関係になるかどうかの評価を行い、正しい結果が得られる確率を求める方法です。