5
5
.
.
判別
判別
分析
分析
5.1 判別分析の原理
判別分析は後ろ向き研究から得られたデータに適用する手法 (1) 判別分析 判別分析は多種類のデータに基いて被験者を特定の群に判別したり、判別に強い影響を及ぼ すデータを探索したりするための手法。後ろ向き研究から得られたデータに適用する。 (2) 判別分析の適用例 動脈硬化症患者10 名と正常者 15 名について、総コレステロールとトリグリセリドを測定したと ころ表5.1 のような結果になった。 <表5.1 動脈硬化症患者と正常者の TC と TG> No. 群 TC TG 1 動脈硬化症 220 110 2 動脈硬化症 230 150 3 動脈硬化症 240 150 4 動脈硬化症 240 250 5 動脈硬化症 250 200 6 動脈硬化症 260 150 7 動脈硬化症 260 250 8 動脈硬化症 260 290 9 動脈硬化症 270 250 10 動脈硬化症 280 290 医学分野では病気の診断を必要とする場面が多い ある検査項目を用いて被験者が疾患かどうかを判断したい または ある検査項目が疾患の診断に寄与するかどうかを検討したい 判別分析を適用11 正常 180 130 12 正常 180 150 13 正常 190 160 14 正常 190 180 15 正常 200 160 16 正常 200 170 17 正常 200 240 18 正常 210 160 19 正常 210 180 20 正常 210 250 21 正常 220 180 22 正常 220 260 23 正常 220 300 24 正常 230 250 25 正常 240 320 1) TC による群の判別つまり動脈硬化症の診断 2 群の平均値の中央を境界値にして 2 群を判別…図 5.1 の TC 軸の下の分布 正常群:例数=15 平均値=207 標準偏差=18 動脈硬化症群:例数=10 平均値=251 標準偏差=19 2) TG による群の判別 2 群の平均値の中央を境界値にして 2 群を判別…図 5.1 の TG 軸の左の分布 正常群:例数=15 平均値=206 標準偏差=59 動脈硬化症群:例数=10 平均値=209 標準偏差=65 境界値=(207+251)/2=229 TC>229→ 動脈硬化症と判別 TC<229→ 正常と判別 正判別:22 例 (88%) 誤判別: 3 例 (12%)
3) TC と TG を用いた判別分析による群の判別 2 群のプロットが最もきれいに分離できる軸で 2 群を判別…図 5.1 の左下の分布 境界値=(206+209)/2=207.5 TG>207.5→ 動脈硬化症と判別 TC<207.5→ 正常と判別 正判別:14 例 (56%) 誤判別: 11 例 (44%) 判別関数:z=-61.1636+0.3352×TC-0.0749×TG z>0→ 動脈硬化症と判別 z<0→ 正常と判別 正判別:25 例 (100%) 誤判別: 0 例 (0%) 理論的判別確率: 97% 1 0 00 2 0 0 3 0 0 4 0 0 2 5 0 5 0 0 TC TG 図 5.1 TC と TG の群別散布図 正常群 動脈硬化症群
5.2 群の判別と診断率
診断率を求める方法を多変量に拡張したものが判別分析 (1) 診断率 <表5.2 群と検査結果> 検査結果 計 陰性(Negative) 陽性(Positive) 群 正常群(Normal) TN FP nN 疾患群(Disease) FN TP nD 計 TN+FN FP+TP n ・陽性(Positive)…検査項目の値が境界値(カットオフポイント)以上になること→疾患と診断 ・陰性(Negative)…検査項目の値が境界値未満になること→正常と診断 ・正診(True)…診断結果が正しいこと ・誤診(False)…診断結果が間違っていること ・感度(sensitivity)…疾患群が陽性になる確率 SN = TP FN + TP= TP nD 図 5.2 診断率の模式図 正常群 疾患群 TP FN FP 陽性( 疾患と判定 ) 陰性( 正常と判定 ) 境界値 TN・特異度(specificity)…正常群が陰性になる確率 SP= TN TN + FP= TN nN ・正診率(accuracy)…正診の確率 AC=TP+ TN nN+nD= TP+ TN n 疾患の一般的な有病率πDを考慮する時は次式で計算 AC=πDSN +(1−πD)SP
・陽性尤度比(positive likelihood ratio)…真陽性確率と偽陽性確率の比(S/N 比)←値が大きい ほど検査項目が診断指標として有用
LR+= SN
1−SP=
TP⋅nN
FP⋅nD
・陰性尤度比(negative likelihood ratio)…偽陰性確率と真陰性確率の比←値が小さいほど検 査項目が診断指標として有用
LR-=1−SN
SP =
FN⋅nN
FN⋅nD
・陽性予測値または陽性適中度(positive predictive value)…検査結果が陽性の時に本当に疾 患である確率 PPV = 1 1+{(1−πD)/πD}{(1−SP)/ SN } 疾患群の割合nD/n がその疾患の一般的な有病率 πDを反映している時は次式で計算可能 PPV = TP TP+FP
・陰性予測値または陰性適中度(negative predictive value)…検査結果が陰性の時に本当に 正常である確率
NPV = 1 1+{πD/(1−πD)}{(1−SN )/SP} 疾患群の割合nD/n がその疾患の一般的な有病率 πDを反映している時は次式で計算可能 NPV = TN TN +FN 例:表5.1 の TC による動脈硬化の診断結果 <表5.3 TC による動脈硬化の診断結果> 検査結果 計 陰性(229 未満) 陽性(229 以上) 群 正常群 13 2 15 動脈硬化症群 1 9 10 計 14 11 25 ・感度: SN = 9 10=0.9(90 %) ・特異度: SP=13 15≒0.87(87%) ・正診率: AC=22 25=0.88(88 %) ・陽性尤度比: LR+=9×15 2×10=6.75 ・陰性尤度比: LR-= 1×15 13×10≒0.12 ・陽性予測値:例えば動脈硬化症の一般的な有病率を10%(0.1)とした時 PPV = 1 1+{(1−0.1)/0.1}×{(1−0.87)/0.9}≒0.43 ・陰性予測値:例えば動脈硬化症の一般的な有病率を10%(0.1)とした時 NPV = 1 1+{0.1 /(1−0.1)}×{(1−0.9)/0.87}≒0.99
(2) RCD(Relative Cumulative frequency Distribution、相対累積度数分布)曲線を利用した境界値 の推定方法 1) 特異度曲線を描く。 横軸にTC の値、縦軸に相対度数(度数の割合)を取った座標に、正常群の相対累積度数(累積 度数を群の例数で割った値)を 1 データ分だけ右にずらしてプロットする。1 データ分ずらすのは、 そのデータを境界値にすると特異度は増えず、次のデータを境界値にした時に特異度が増えるた め。 2) 感度曲線を描く。 次に疾患群の相対逆累積度数分布(相対累積度数分布を上下ひっくり返したもの)を 1 データ 分だけ右にずらしてプロットする。1 データ分ずらすのは、そのデータを境界値にすると感度は減ら ず、次のデータを境界値にした時に感度が減るため。 3) 特異度曲線と感度曲線の曲線の交点→境界値の推定値 4) 正常群のデータが正規分布すると仮定した時の理論的相対累積度数分布と、疾患群のデータ が正規分布すると仮定した時の理論的相対逆累積度数分布を描くと、理論的特異度曲線と理論 的感度曲線、そして境界値の理論的推定値を求めることができる。 図 5.3 相対累積度数分布法による境界値の推定 特異度曲線→ ( 正常群 ) ← 感度曲線 ( 動脈硬化症群 ) 境界値 感 度 / 特 異 度 160 200 240 280 0.2 0.4 0.8 1 TC ← 理論的特異度曲線 理論的感度曲線→ 0.6
(3) ROC 曲線(Receiver Operating Characteristic curve、受信機操作特性曲線) を利用した境界値 の推定方法
1) データを小さい順に並べ、境界値を最小値から最大値まで変化させた時の感度と特異度を計 算する。
これは図5.3 の感度曲線と特異度曲線から求めることが可能。
2) それらの感度と特異度を、横軸に(1-特異度)つまり偽陽性率(FPF:False Positive Fraction、ノイ ズ)を 、縦軸に感度つまり真陽性率(TPF:True Positive Fraction、シグナル) を取った座標にプロット する→ROC 曲線 この方法で求めた境界値の推定値は 「感度と特異度の平均値を最大にする」という基準で求めた値 この値を目安にし、例えば次のようなコンセプトで調整 特異度よりも感度を優先=疑わしきは罰する 感度よりも特異度を優先=疑わしきは罰せず 最終的に医学的な判断で最適境界値を決定 図 5.4 TC の ROC 曲線 境界値 感 度 特異度 1 0.8 0.6 0.4 0.2 0 0 0.2 0.4 0.6 0.8 1 ↑ 理論的ROC 曲線
3) ROC 曲線が左上隅(感度 100%、特異度 100%の点)に向かって膨らんでいるほど検査値が診 断に有用。 4) 左上隅に最も近い ROC 曲線上の点(S/N 比最大の点)の境界値→境界値推定値 5) 図 5.3 の理論的感度曲線と理論的特異度曲線を利用すれば、正常群のデータと疾患群のデー タがそれぞれ正規分布すると仮定した時の理論的ROC 曲線を描くことができる。 この方法で求めた境界値の推定値と最適推定値に関する注意点は、RCD 曲線を利用する方 法と同じ。ただしROC 曲線は境界値を直接表示しないため、境界値を推定するには RCD 曲線を 利用する方法の方が便利。
5.3 判別分析結果の解釈
判別関数は目的変数を有無にした重回帰式に相当する
(1) 計算結果
表5.1 のデータに判別分析を適用した結果。
=== 判別分析(discriminant analysis) === [DANS V7.0] データ名:表5.1 判別項目:群 (0:正常 1:動脈硬化症) 変数x 1:TC (mg/dl) 変数x 2:TG (mg/dl) ○群1:群 (0:正常 1:動脈硬化症)=1 ・各変数の基礎統計量 ---x 1:例数=10 平均値=251 標準偏差=18.5293 標準誤差=5.85947 x 2:例数=10 平均値=209 標準偏差=65.3962 標準誤差=20.6801 ---○群2:群 (0:正常 1:動脈硬化症)=1 以外 ・各変数の基礎統計量 ---x 1:例数=15 平均値=206.667 標準偏差=17.5933 標準誤差=4.54257 x 2:例数=15 平均値=206 標準偏差=58.7732 標準誤差=15.1752 ---○全体の共通相関行列 x 1 x 2 ---x 1 1 0.772 x 2 0.772 1 ---・全変数を選択した結果 標準 有意確率 変数 判別係数 標準誤差 exp(判別係数) 判別係数 偏F値 p値 ---定数 -61.1636 x 1 0.335192 0.0365878 1.39821 6.02184 83.9292 5.79687e-09*** x 2 -0.074889 0.0172048 0.927846 -4.60192 18.9469 0.000254845*** ---変数 判別係数 95%CI下限 上限 exp(判別係数) 95%CI下限 上限 ---x 1 0.335192 0.259313 0.41107 1.39821 1.29604 1.50843 x 2 -0.074889 -0.110569 -0.0392085 0.927846 0.895324 0.96155
---・HotellingのT^2検定 T^2=87.813 F=41.9975 第1自由度=2 第2自由度=22 有意確率p=3.0797e-08*** ・判別効率(Mahalanobisの汎距離)D^2=14.6355 相関比η^2=0.792443 D/2(正規分布z値)=1.91282 誤判別確率p=0.0278856(判別確率1-p=0.972114) (2) 各種パラメーターの意味 ・判別関数…群を判別するための判別スコアを求める式 z=-61.1636+0.335192x1-0.074889x2 一般化すると、 z=a0+a1・x1+…+bp・xp
z:判別スコア a0:定数 a1~ap:判別係数
・判別スコア…判別関数の変数に特定の値を代入して得られる値 z>0:群 1 と判別 z<0:群 2 と判別 (z=0 の時は判別保留または無理にどちらかの群に判別する) ・判別係数…判別関数の変数の係数、重回帰式の偏回帰係数に相当 ・標準誤差…判別係数の標準誤差 ・標準判別係数…変数を標準偏差単位にした時の判別係数、 重回帰式の標準偏回帰係数に相 当 ・Hotelling の T2検定…2 標本 t 検定を多変量に拡張した手法 図5.1 のような散布図を描いた時、2 群のプロットの重心が重なっているかどうかの検定。この 検定結果が有意ではない時は2 群のプロットがほぼ重なっていることになり、判別は不可能。 他の変数が一定という条件で各変数が1 増加した時 判別スコアがいくつ変化するかを表す値 他の変数が一定という条件で各変数が「1 標準偏差」増加した時 判別スコアがいくつ変化するかを表す値
・判別効率(Mahalanobis の汎距離)…2 群のプロットの重心間の距離 変数同士の相関を考慮した、2 群のプロットの重心間の距離。Hotelling の T2検定はこの汎距 離が0 かどうかの検定。 ・誤判別確率…判別関数を用いて全例を判別した時の誤判別率 1 からこの確率を引いた値は判別確率になり、正診率に相当する。 (3) 判別分析の注意点 i) 誤差の少ない信頼のおける多数のデータに適用したか? 目安:例数≧(変数の数☓10)または(変数の数の 2 乗)の大きい方 2 群の例数はできるだけ同じくらいにする ii) 判別分析に組み込んだ項目が適当か? iii) 組み込んだ項目は診断指標かリスクファクターか? iv) 高い判別確率が得られているか? 目安:判別確率>0.75 v) 判別関数が実質科学的に納得できるか?
5.4 変数の選択
変数選択法は重回帰分析と同様 (1) 変数選択法 できるだけ少ない変数で、できるだけ効率的に群を判別できる、簡便で実用的な判別関数を組 み立てるための手法。重回帰分析の変数選択法と同じ原理。 i) 変数指定方法…実質科学的な知見に基づいて適当な変数を指定 ii) 総当たり法…全ての変数の組み合わせを計算し、最良のものを選択 iii) 逐次選択法 …一定の規則に従って変数を逐次選択 変数増加法(前進的選択法)、変数減少法(後退的選択法)、変数増減法、変数減増法 (2) 変数増減法の手順 1) 最初の変数の取り込み 単独で判別効率を最大にする変数を取り込む。 2) 次の変数の取り込み 残りの変数から今取り込んだ変数と共有する情報を取り除き、その上で判別効率の増加が最 大のものを探す。そしてその変数が取り込み基準を満足するなら取り込む。 図 5.5 1つの変数を取り込んだ時 判別情報全体 判別誤差 自由度= n-2 x 1 判別効率 増加分・各種の取り込み基準 i) 偏 F 値(判別効率の増加分/判別誤差)が基準値以上 ii) 有意確率 p 値が基準値以下 3) 変数の追い出し これまでに取り込んだ変数のうち、判別効率に対する寄与分が最小のものを探す。そしてその 変数が追い出し基準を満足するなら追い出す。 図 5.6 次の変数を取り込んだ時 判別情報全体 判別誤差 自由度= n-3 x1 xj xjの判別寄与分 図 5.7 変数の追い出し 判別情報全体 判別誤差 x 1 x j xkを追い出す xk
・各種の追い出し基準 i) 偏 F 値が基準値未満 ii) 有意確率 p 値が基準値より大きい 4) 変数選択の終了 2)に戻って変数の取り込みを続け、取り込む変数も追い出す変数もなくなるまで 2)と 3)を繰り 返す。 (3) 変数選択の例
=== 判別分析(discriminant analysis) === [DANS V7.0] データ名:表5.1 判別項目:群 (0:正常 1:動脈硬化症) 変数x 1:TC (mg/dl) 変数x 2:TG (mg/dl) ○群1:群 (0:正常,1:動脈硬化症)=1 ・各変数の基礎統計量 ---x 1:例数=10 平均値=251 標準偏差=18.5293 標準誤差=5.85947 x 2:例数=10 平均値=209 標準偏差=65.3962 標準誤差=20.6801 ---○群2:群 (0:正常,1:動脈硬化症)=1 以外 ・各変数の基礎統計量 ---x 1:例数=15 平均値=206.667 標準偏差=17.5933 標準誤差=4.54257 x 2:例数=15 平均値=206 標準偏差=58.7732 標準誤差=15.1752 ---○全体の共通相関行列 x 1 x 2 ---x 1 1 0.772 x 2 0.772 1
---・前進的変数増減法(stepwise forward selection method)による変数選択結果 取り込み基準:偏F値≧Fin=2 追い出し基準:偏F値<Fout=2 標準 有意確率 変数 判別係数 標準誤差 exp(判別係数) 判別係数 偏F値 p値 ---定数 -61.1636 x 1 0.335192 0.0365878 1.39821 6.02184 83.9292 5.79687e-09*** x 2 -0.074889 0.0172048 0.927846 -4.60192 18.9469 0.000254845***
---変数 判別係数 95%CI下限 上限 exp(判別係数) 95%CI下限 上限 ---x 1 0.335192 0.259313 0.41107 1.39821 1.29604 1.50843 x 2 -0.074889 -0.110569 -0.0392085 0.927846 0.895324 0.96155 ---・HotellingのT^2検定 T^2=87.813 F=41.9975 第1自由度=2 第2自由度=22 有意確率p=3.0797e-08*** ・判別効率(Mahalanobisの汎距離)D^2=14.6355 相関比η^2=0.792443 D/2(正規分布z値)=1.91282 誤判別確率p=0.0278856(判別確率1-p=0.972114) ある変数が判別に寄与していないことを検証したい時は変数選択をしない方が良い 変数選択法で選択されなかった変数は判別に寄与していないとは限らない 変数選択法で得られた変数の組み合わせは実質科学的に最適なものとは限らない 実質科学的に解釈困難な結果または実用的ではない結果なら 特定の変数を強制的に取り込んだり追い出したりして色々な判別関数を検討した方が良い
5.5 ロジスティック曲線
判別スコアを群に属す確率に変換したものがロジスティック曲線 (1) ロジスティック曲線 ・ロジスティック曲線…判別スコアを群に属す確率に変換する曲線 p= 1 1+ {(1−π1)/π1}⋅exp(−z ) p:群 1 に属す確率 π1:群1 の事前確率(理論確率) z:判別スコア 群1 が疾患の場合、疾患の一般的な有病率を π1に代入する 図5.8 は、第 3 節で求めた判別関数について、群 1(動脈硬化症)の一般的な有病率を 10%とし て、π1=0.1 を代入した時のロジスティック曲線。p=1 のところにプロットされている点は、動脈硬化症 判別スコアによる判別は「All or Nothing 」の方法であり素っ気ない 最近の天気予報のように特定の群に属す確率を求めたい ロジスティック曲線を利用して判別スコアを確率に変換する 判別スコア(z) 図 5.8 判別スコアとロジスティック曲線 動 脈 硬 化 症 の 確 率 −10 0 10 0 0.5 1群について判別スコアを計算し、それをプロットしたもので、p=0 のところにプロットされている点は、 正常群について判別スコアを計算し、それをプロットしたもの。 例:動脈硬化症かどうか診断したい人のTC が 210、TG が 125 だった時 z=-61.1636+0.3352×210-0.0749×125=-0.1341<0 より正常と判別 p= 1 1+ {0.1/(1−0.1)}×exp(0.1341)≒0.0886< π1=0.1 (2) ロジットとロジスティック回帰分析 ・ロジット…対数オッズ この場合は群1 に属す確率 p と属さない確率(1-p)の比を対数変換したもの。 l=ln( p 1− p)=ln( π1 1−π1)+z =ln( π1 1−π1)+a0+a1x1+ ⋯+apxp l(エル):群 1 に属す確率のロジット 前向き研究から得られたデータを用いて、群1(疾患)の事前確率としてその研究から得られた 疾患の発症率を代入し、ロジットを目的変数にし、変数を説明変数にして、a0~apを重回帰分析の 原理を応用して求める手法をロジスティック回帰分析という。→第6 章参照 判別分析から求めたロジスティック曲線は事前確率を必要とするが、ロジスティック回帰分 析から求めたロジスティック曲線は事前確率を必要としない。 疾患が発症する前に、疾患が発症するかどうかをリスクファクターから予想したい ↓ ロジスティック回帰分析…前向き研究から得られたデータを用いる 疾患が発症した後で、疾患であるかどうかを診断指標とリスクファクターから診断したい ↓ 判別分析…後ろ向き研究から得られたデータを用いる