玄関雑学の部屋雑学コーナー統計学入門

第9章 判別分析

この章では判別分析の原理と結果の解釈方法、診断率との関係、そして各種の変数選択手法とロジスティック曲線について解説します。

9.1 判別分析の原理

(1) 群の判別

判別分析(discriminant analysis)は重回帰分析と並んで利用頻度の高い多変量解析手法です。 この手法は各種のデータに基いて人や物などを特定の群に判別したり、判別に影響を及ぼすデータを探索したりする時に用いられます。 例えば虚血性心疾患患者群と正常群について各種のデータが測定されている時、そのデータに基いてある人が虚血性心疾患であるかどうか診断したり、虚血性心疾患の診断に影響を与える検査項目を探索したりする時がこれに相当します。 そのため病気の診断を必要とする医学分野では、重回帰分析よりもむしろ有用性の高い手法と言えるでしょう。

第6章 表6.1.1の脂質異常症患者についてのTCとTGのデータを動脈硬化症患者についてのデータとし、これに新しく正常者のTCとTGのデータを加えて動脈硬化症患者と正常者を判別する方法を考えてみましょう。

表9.1.1 動脈硬化症患者と
正常者のTCとTG
No.TCTG
1動脈硬化症220110
2動脈硬化症230150
3動脈硬化症240150
4動脈硬化症240250
5動脈硬化症250200
6動脈硬化症260150
7動脈硬化症260250
8動脈硬化症260290
9動脈硬化症270250
10動脈硬化症280290
11正常180130
12正常180150
13正常190160
14正常190180
15正常200160
16正常200170
17正常200240
18正常210160
19正常210180
20正常210250
21正常220180
22正常220260
23正常220300
24正常230250
25正常240320

まず、例によってデータをグラフ表示してみましょう。 このデータの場合、幸いなことに項目が2つしかないので2次元の散布図にプロットすることができます。

図9.1.1 TCとTGの群別散布図

最初にTCの値だけで動脈硬化症患者と正常者を判別すると、単純に考えれば両群の平均値の中央を境界値にして次のように判別することができます。

正常群:例数=15 平均値=207 標準偏差=18
動脈硬化症群:例数=10 平均値=251 標準偏差=19
境界値=(207 + 251)×0.5=229 → TC>229 なら動脈硬化症と判別  TC<229 なら正常と判別

この方法で表9.1.1の患者を判別すると、動脈硬化症群の1例(No.1)と正常群の2例(No.24、25)が間違って判別され、残りの22例は正しく判別されます。 この時、正しく判別される確率を判別確率、間違って判別される確率を誤判別確率といい、この場合はそれぞれ88%と12%になります。 全く無作為に判別した時の理論上の判別確率は50%なので、TCのデータを知ることによって判別確率が38%ほど高くなるわけです。

次に同じようにしてTGの値だけで動脈硬化症患者と正常者を判別すると次のようになります。

正常群:例数=15 平均値=206 標準偏差=59
動脈硬化症群:例数=10 平均値=209 標準偏差=65
境界値=(206 + 209)×0.5=207.5 → TG>207.5 なら動脈硬化症と判別  TG<207.5 なら正常と判別

この方法で表9.1.1の患者を判別すると、動脈硬化症群の5例(No.1、2、3、5、6)と正常群の6例(No.17、20、22、23、24、25)が間違って判別され、残りの14例は正しく判別されます。 この時の判別確率と誤判別確率はそれぞれ56%と44%になり、TGのデータを知ることによって判別確率は6%しか高くなりません。 このことは図9.1.1において、動脈硬化症患者群と正常者群のTGの分布がほぼ重なってしまっていることからも理解できると思います。

(2) 複数の項目を利用した群の判別

ではTCとTGのデータを両方とも利用し、動脈硬化症患者と正常者を効率良く判別する方法を考えてみましょう。 TCだけ、TGだけで群を判別するということは、図9.1.1で各症例のプロットをTC軸方向とTG軸方向から見て2群に判別している、すなわち各症例のプロットをそれぞれの軸に正射影していることに他なりません。

しかし図9.1.1からわかるように2群のプロットが最も分離して見える方向が必ずあるので、その軸に各症例のプロットを正射影すれば2群を効率良く判別することができるはずです。 そこでその軸に第6章のデータの要約で説明したような方法でTCとTGを正射影し、どちらの群に判別される確率も等しくなる点、つまり2群の中間点を0にするように調整した要約値zを作れば、それを利用して次のように判別することができます。 (→6.2 データの要約と多変量解析)

z=a0 + a1×TC + a2×TG
z>0 なら動脈硬化症と判別  z<0 なら正常と判別

この時、zを判別スコア(discriminant score)、係数a1とa2判別係数(discriminant coefficient)、zに関する関数を(線形)判別関数(discriminant function)と呼びます。 判別関数を計算する方法は後から詳しく説明しますが、例題について実際に計算すると次のようになります。

z=-61.1636 + 0.3352×TC - 0.0749×TG

この判別関数を用いて表9.1.1の患者を判別すると、何と全例を正しく判別することができます(実はそうなるようにわざわざ作ったデータですから、驚くことではありません(^_-))。 この場合の理論的な判別確率は約97%になり、TCまたはTG単独で判別した時よりも判別確率をかなり上げることができます。

数学的には、判別分析は重回帰分析において目的変数が分類データになったものに相当し、各種の測定データが説明変数に、群の分類が目的変数になります。 しかし重回帰分析とは反対に目的変数である群が原因で、説明変数である各種の測定データが結果という因果関係を想定し、与えられたデータに基いて最も効率的に群を判別することを目的にしています。 そのため判別関数の解釈については注意が必要です。

表9.1.1の例題では脂質代謝が異常になることによって血液中のTCとTGが高くなり、同時に動脈硬化症になると考えられます。 つまり群がTCとTGの値を決定するというよりも、脂質代謝異常という潜在的な因子が群とTCとTGを決定するという方向の因果関係があると考えられるわけです。 そのため「TCとTGのデータによって動脈硬化症患者と正常者を判別することができる」ということは、「TCとTGは脂質代謝異常の診断指標として重要な意味を持っていて、脂質代謝異常は動脈硬化症のリスクファクターとして重要な意味を持っている」と解釈できます。 そのためどちらかと言えば「TCとTGは動脈硬化症のリスクファクターとして重要な意味を持っている」と解釈した方が良いことになります。

ところが表9.1のデータがTCとTGではなく、収縮期血圧と拡張期血圧だったとしたらどうでしょう(数値的にはかなり無理がありますが、まあ大目に見てください(^_-))? その場合、動脈硬化によって血圧が上昇すると考えられるので、群がデータの値を決定するという方向の因果関係があることになります。 そのため「収縮期血圧と拡張期血圧のデータによって動脈硬化症患者と正常者を判別することができる」ということは、「収縮期血圧と拡張期血圧が動脈硬化症の診断指標として重要な意味を持っている」と解釈した方が良いことになります。 肝機能障害におけるAST(GOT)やALT(GPT)などもこれと同様の意味を持つデータであり、病気の診断指標になるデータはほとんどがこのような方向の因果関係を持っています。

そのため説明変数が原因つまりリスクファクターで群がその結果という因果関係を想定する時は、厳密に言えばリスクファクターの有無を研究者が指定して行う研究つまりコホート研究のような前向き研究を行い、ロジスティック回帰分析を適用する必要があります。

ロジスティック回帰分析は判別分析の親類であり、両者の解析結果はほぼ一致します。 そしてどちらの手法でも、診断指標とリスクファクターを混合して解析しても結果は変わりません。 しかし判別分析は疾患が発症した後で、ある被験者が疾患であるかどうかを診断するための手法です。 そのため説明変数は原則として診断指標ですが、リスクファクターを混ぜてもかまいません。 そしてそのようなデータは原則として後ろ向き研究から得られます。

それに対してロジスティック回帰分析は疾患が発症する前に、ある被験者が疾患を発症するかどうかを予測するための手法です。 そのため説明変数は原則としてリスクファクターだけを用い、診断指標を混ぜるのは不適切です。 そしてそのようなデータは原則として前向き研究から得られます。 したがって後ろ向き研究で得られたデータには判別分析を適用し、前向き研究で得られたデータにはロジスティック回帰分析を適用するというのが本来です。 ロジスティック回帰分析については第10章で説明します。 (→第10章 ロジスティック回帰分析)