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

第9章 判別分析

この章では判別分析の原理と診断率の関係、そして各種の変数選択手法について解説します。

9.1 判別分析の原理

(1) 群の判別

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

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

表9.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 TCとTGの群別散点図

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

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

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

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

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

しかし図9.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の患者を判別すると、何と全例を正しく判別することができます(実はそうなるようにわざわざ作ったデータですから、驚くべきことではありません(^_-))。 この場合の理論的な判別確率は約97%になり、TCまたはTG単独で判別した時よりも判別確率をかなり上げることができます。

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

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

ところが、表9.1のデータがTCとTGではなく、最高血圧と最低血圧だったとしたらどうでしょう(数値的にはかなり無理があるのですが、まあ大目に見てください(^_-))? その場合、動脈硬化によって血圧が上昇すると考えられますから、どちからといえば、群がデータの値を決定するという方向の因果関係があることになります。

したがって「最高血圧と最低血圧のデータによって、動脈硬化症患者と正常者を判別することができる」ということは、「両者が動脈硬化症の診断指標として重要な意味を持っている」と解釈しなければならないことになります。 肝機能障害におけるAST(GOT)やALT(GPT)などもこれと同様の意味を持つデータであり、病気の診断指標になるデータは、ほとんどがこのような方向の因果関係を持っています。

説明変数が原因つまりリスクファクターで、群がその結果という因果関係を想定する場合、判別分析を適用するデータは、ケースコントロール研究のような後ろ向き研究で得られたものになります。 しかし厳密に言えば、そのような場合はコホート研究のような前向き研究を行い、ロジスティック回帰分析を適用する必要があります。

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

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