はじめに
こんにちは、この記事に興味を持ってくださりありがとうございます。この記事では疫学研究で行われる診断検査とその妥当性評価について紹介をしたいと思います。
診断というのは、研究を行う上で実はとても身近な問題として、たくさん登場します。最近は、ありとあらゆる分野で機械学習によって「〇〇の推定ができるようになった」なんて言う研究が発表されていますが、ここで出てくる推定の精度も、この診断がベースになります。
他にも、例えばCOVID-19感染の有無を確認するPCR検査も診断ですね。COVID-19の診断については、下記の記事を以前に書きましたので、興味がある方は読んでみてください。
この記事では、できるだけ分かりやすく、この診断、そして診断の精度の評価について紹介をしたいと思います。
この記事を書いている私の紹介を簡単にさせてください食品会社で働く、企業研究員です。病気の原因を調べる疫学を大学で学ぶ、社会人大学院生でもあります。詳しいプロフィールはこちらに載せています。 |
診断の例
初めに、診断ってどんな感じのこと?という例を紹介したいと思います。先ほども少し例をあげましたが、
- PCR検査でCOVID-19の判定を行う
- 機械学習で1年後の認知症になるリスクが高い人を判定する
- 空腹時の血糖値の値から糖尿病の診断を行う
などです。なんとなくイメージできればと思いますが、こういった診断は多くの場合、既に一般的に用いられている基準(通称ゴールドスタンダード)を用いて病気にかかっている人(陽性の症例)とかかっていない人(陰性の症例)に分類されたデータを使って診断方法の開発を行います。
PCRによるCOVID-19の判定であれば、事前にX線による確定診断を基準にしてPCRでどの程度の値であれば陽性、どの程度の値であれば陰性になるかの分布を調べ、そこからカットオフ値を設定して診断に用いるという流れです。
この時の、分布がどうなっているかで、診断の精度というのは大きく変わります。例えば、下のグラフを見てください。下のグラフは診断に用いた検査の測定値をX軸、それぞれの値での人数をY軸に表しています。また、青色は陰性、赤色は陽性の人の分布を示しているとします。
この時、一番左の図のようにキレイに二つの山に分かれたら、診断は点線の値でキレイに分かれていますので、明確に診断ができますね。
ですが、実際には、このようにある境界線で明確に分類できることなんてまずあり得ないと言うことは想像できると思います。実際に見られるデータは、真ん中の図のように陽性、陰性の分布が一部重なっていたり、右の図のようにそもそも山なんて分かれないということが多いです。
真ん中の図のような分布の場合には、ある程度の精度で診断はできそうですが、どうしても一部の人は間違えてしまいます。右の図の場合には、例えば空腹時血糖値から糖尿病を診断する場合などのように、そもそも陽性、陰性という全く異なる2つの特性がある人が集まっているのではなく、ある値よりも高い場合に様々な合併症などのリスクが上がるために便宜的に設定した診断が基準となっていることもたくさんあります。
この場合には、たまたま高い値が出てしまった、たまたま低い値が出てしまったなどの誤分類という現象が起こってしまいます。この誤分類の割合というのが、検査の妥当性、信頼性と言うことになりますが、次の章から、診断の妥当性、信頼性の評価について詳しく紹介したいと思います。まずは、次章の中で、診断とその評価に用いられる用語を解説したいと思います。
診断結果の比較の仕方(真陽性、偽陽性、偽陰性、真陰性)
診断に用いられる用語として、まず知って欲しいのが、真陽性、偽陽性、偽陰性、真陰性。そして、感度、特異度、陽性的中率、陰性的中率などです。用語が多いだけでなく、似ていることもあり、厄介ですが、これらの言葉が診断の話では空気のようにそこらじゅうを漂っているので、分からないと、話についていけなくなってしまいます。
初めに真陽性、偽陽性、偽陰性、真陰性について紹介をします。これは、教科書などにもよく出てくる、下記の2×2の表で頭に入れておくと良いです。ちなみに、グラフの列と行、そしてその順番もいつも下記の並び方になっているので、本質的な話ではないと思いますが、順番を変えてしまうのもおすすめしません。
検査結果 | 実際に疾患あり | 実際は疾患なし |
陽性 | 真陽性true positive | 偽陽性false positive |
陰性 | 偽陰性false negative | 真陰性true negative |
この4つの用語は言葉からもなんとなく想像できるかもしれませんが、意味は下記の通りです。
真陽性:疾患があり、検査結果も陽性
偽陽性:疾患がなく、検査結果は陽性
偽陰性:疾患があり、検査結果は陰性
真陰性:疾患がなく、検査結果も陰性
真陽性、真陰性はそれぞれ、検査結果が正しかったケースです。そして、偽陽性、偽陰性が検査結果が間違っているケースです。検査の目標は、真陽性、真陰性の数を上げ、偽陽性、偽陰性の数を減らしたい所ですが、この偽陽性、偽陰性はどちらかを減らすと、どちらかが増える、トレードオフの関係にあるのです。
このことについては、後で説明しますが、その前に、偽陽性、偽陰性はそれぞれどんな問題があるのかを簡単に紹介します。
偽陽性は本当は疾患が無かったのに疾患ありと検査結果を受けてしまった人です。この場合の問題は、二次検査や精密検査などの余計な負担が増えるだけでなく、精神的な負担や病気によっては社会的な差別にもつながります。
最近の例でいえば、体操の内村選手がCOVID-19で偽陽性と報じられましたが、これによって練習時間の制限など、余計な負担を負ったことは確実だと思いますし、もしも重要な大会の直前などに検査を受けて、偽陽性になってしまったら、大会を欠場しなければいけなくなります。
一方で偽陰性も大変大きな問題となります。早期診断ができていれば助かった命が、診断が遅れたために助けられないというのは、よくある話で、言うまでもなくこれも大きな問題となります。
感度(sensitivity)、特異度(specificity)
それでは、次に感度(sensitivity)と特異度(specificity)という二つの言葉を紹介したいと思います。感度は疾患がある人の中で陽性と判定された人の割合。特異度は疾患なしの人の中で陰性と判定された人の割合です。つまり検査が正しかった人の割合を疾患あり、疾患なしそれぞれで算出しているということです。
感度=真陽性÷(真陽性+偽陰性) 特異度=真陰性÷(偽陽性+真陰性) |
感度と特異度はトレードオフの関係
先ほど、偽陽性、偽陰性はどちらかを減らすとどちらかが増える、トレードオフの関係にあると書きましたが、同じく、この感度、特異度もトレードオフの関係にあります。これは下記の図を見ると分かりやすいと思います。
上の図は、説明が分かりやすいように、陰性と陽性で2つの山に分かれる場合の例をあげましたが、図にも示した通り、カットオフ値を調節することで偽陰性、偽陽性の割合を変えることができます。
偽陰性を減らすと偽陽性が増え、偽陽性を減らすと偽陰性が増えてしまいこれらのバランスをどのように考えるかが診断方法の開発における、開発者の意図となります。
例えば、COVID-19のPCR検査では偽陽性が少なくなるようにしていますが、これは偽陰性つまり本当は感染しているけれども検査で陰性だった場合の命に係わる重大な損失よりも、偽陽性つまり本当は感染していないのに検査で陽性が出てしまった場合の、医療機関への負担、それによって生じる医療崩壊や偽陽性と診断された方の社会的な損害が大きいと見積もられてのことになります。
診断の精度を評価する一つの指標:ROC曲線
このように診断の精度は感度、特異度の二つが高いことが望まれますが、感度、特異度という二つの指標はトレードオフの関係にあり、同時に評価することは難しいのが現状です。
そこで、一般的にはROC曲線というもので感度特異度の両方を図示し、曲線化面積(AUC)を算出してその診断の精度を評価します。下記の図では中国の研究でアルツハイマー有無を腸内細菌の構成から推定したモデルをのROC曲線を例として示しました。
ROC曲線はX軸に(1ー特異度)、Y軸に感度を示しています。つまり、左に行くほど偽陽性が少なく、上に行くほど偽陰性が少ないモデルであり、カットオフ値偽陽性がゼロになる値から、偽陰性がゼロになる値までずらした時の1-特異度と感度をプロットした図になります。
詳しいことはここでは省略しますが、検査の精度を評価する方法の一つとして、このROC曲線を図示し、曲線下の面積(AUC:area under the curve)で診断の精度を評価するという方法がよく使われます。AUCが高いほど診断の精度が高いことを意味し、上の例でいえば、主要な腸内細菌で推定したモデルでは、AUC=0.94と、Enterobacteriaceaeのみで推定した場合よりも高い値を示しています。
AUCの値は0~1の範囲を取りますが、サイコロを振っても50%の確率では正解が出ますので、AUC=0.5というのは、実質最低ラインと考え、上の図のように45度線を引いたりします。また、AUCの値がどの程度であれば実用化のレベルに耐えられるかという話がありますが、これは時と場合によるとしか言えません。AUCが0.7程度でも良いモデルと言える場合もあれば、それでは全然ダメと言われることもあります。
陽性的中率(true positive rate)、陰性的中率(true negative rate)
最後に、感度、特異度に比べて使用頻度が少ないのですが、陽性的中率(true positive rate)、陰性的中率(true negative rate)というものを紹介します。
これは陽性と判定されたケースの中で実際に疾患がある人の割合を陽性的中率、陰性と判定されたケースの中で実際に疾患がない人の割合を陰性的中率のこと言います。式で表すと下記の通りです。
陽性的中率=真陽性÷(真陽性+偽陽性) 陰性的中率=真陰性÷(偽陰性+真陰性) |
この陽性的中率、陰性的中率と感度、特異度は一見似ていますが、それぞれ特徴がありますが、一番の特徴は、感度、特異度は理論上、病気の有病率に影響を受けないため、診断の精度をそのまま示すことができますが、陽性的中率、陰性的中率は有病率の影響を受けます。有病率は集団によっても異なるので、どんな集団で検査を実施したかで、同じ検査であっても精度が変わるということです。
次の章で例を使って、この説明をしたいと思います。
陽性的中率、陰性的中率は有病率の影響を受ける(集団によって精度が異なる)
まず、有病率が1%の集団Aと有病率が30%の集団Bがあったとします。1000人の集団で考えると、集団Aは10人、集団Bは300人が感染していますね。この集団A、Bについて、感度0.9、特異度0.8の診断で検査を行うと下記のような結果になります。
集団A(有病率1%)の場合
検査結果 | 実際に疾患あり (合計10人) | 実際は疾患なし (合計990人) |
陽性 | 9 | 198 |
陰性 | 1 | 792 |
集団B(有病率30%)の場合
検査結果 | 実際に疾患あり (合計300人) | 実際は疾患なし (合計700人) |
陽性 | 270 | 140 |
陰性 | 30 | 560 |
ではここから、集団A、Bの陽性的中率を算出すると、Aは9÷(9+198)=0.04、Bは270÷(270+140)=0.66となり、陽性的中率は全然違う値をとってしまいます。同じように陰性的中率を計算すると、Aは792÷(1+792)=0.999、Bは560÷(30+560)=0.949となります。
診断方法自体が集団によって変わるものではありません。でも、異なる集団では病気の有病率は全然違うことがあるので、先ほども述べましたが、陽性的中率、陰性的中率に違いが出ることがあります。
こういったことから、検査の精度を評価するのに陽性的中率、陰性的中率を用いることは通常ありません。ただ、考えて欲しいのは実際に私たちが検査の精度の話をしたときには、陽性と言われた場合にそれがどれだけ正しい確率なのか。そして、陰性と言われた場合にそれが正しい確率なのかを知りたいですよね。
つまり、陽性的中率や陰性的中率は、その検査を受ける人にとっては、その検査の精度を正しく評価できる感度、特異度よりも気になる値なのかもしれないということです。
まさにCOVID-19で陰性証明にPCR検査を行うことがこの議論になります(くわしくはこちらの記事で)。ですので、この陽性的中率、陰性的中率というのは私たちの実生活に直結するデータとして有用性が高いと言えます。
さいごに
ここまで読んで下さりありがとうございました。もう少し詳しく知りたい方は、下記の書籍などを参考にするとよいと思います。この記事では用語が沢山出てきて、しかも似ているということで混乱が多かったかもしれませんが、何度か読み直して、言葉に慣れてくると機械学習やコロナのPCR検査など様々な場面で応用ができると思います。
この記事では、診断精度の妥当性、信頼性検証については少しざっとした感じになってしまいましたので、また別の機会にもう少し詳しく述べたいと思います。
少しでもこの記事が参考になったら嬉しいです。それでは。