💉
[論文メモ] Causal Machine Learningによる医学的診断の精度向上
因果推論ネタが好きなのでCaucal MLを医学的診断に取りいれた論文を読んだ。Babylon Health社メンバーによる論文。 Richens, Jonathan G., Ciarán M. Lee, and Saurabh Johri. "Improving the accuracy of medical diagnosis with causal machine learning." Nature communications 11.1 (2020): 3923.
Abstract
- 医療診断では医師は患者の症状を説明するためその原因となっている病気を特定する
- しかし既存の機械学習による診断アプローチは相関に基づいている
- 患者の症状と強く相関する病気を特定する、そのため最適ではない診断や危険な診断が行なわれる可能性がある
- 診断を反実仮想推論タスクとして定式化し、反実仮想診断アルゴリズムを導出した。
- 提案手法と従来の相関ベース手法と44人の医師の性能を臨床ビネットで比較を行なった
- 相関ベース手法は医師の上位48%の精度、提案手法は医師の上位25%の精度を達成した
提案手法
- ある疾患を治療したときにどれだけの症状が消えるかの反実仮想介入効果を表わす指標を導入
- 既存の診断のための構造的因果モデル上で上記指標を計算して利用する
結果
1,671件の臨床ビネットを使って、44人の医師と従来のアルゴリズムと提案手法の比較をした
- 相関ベース手法は医師の上位48%の精度、提案手法は医師の上位25%の精度を達成した
- 医師の平均Accuracyは 71.40%, 相関ベース手法 72.52%
- これらの性能改善は特に希少疾患で顕著だった
- 希少疾患の 29.7%, 超希少疾患で 32.9% で良い結果
感想
- 既に運用されているモデルはそのまま利用して予測性能を強化できるアプローチなので産業応用的な側面でも嬉しい人は多そう
- 機械学習でも人が作ったモデルでも両者に適用できる
- 臨床ビネット上での性能向上は示されていたが、彼らのビジネスへのインパクトはどうだったかも知りたい
- 再現用の実装コードを公開していて凄い (医療系ではあまり見ないので)
- https://github.com/babylonhealth/counterfactual-diagnosis
- 疾患と症状がUUIDになっていてモデルやビネットの内容は見ても何もわからないが、アルゴリズムの性能は再現できるようにしていてなるほどなと
以下はメモ
メモ
Notations
-
: 疾患D -
: 症状,S : 有症状の集合,S_{+} : 否定症状の集合S_{-} -
: Risk factorR -
: 症状疾患の有無\{T, F\} -
: 症状Sが存在するS = T -
: 介入により疾患Dを無い状態にする (治療)do(D=F)
-
-
: Evidence. 症状や検査結果や病歴\mathcal E
Introduction
- 世界中の医療システムにとって正確で利用しやすい診断を提供することは基本的な課題
- 米国だけでも推定で毎年5%の外来患者が誤診されている
- このような誤診は重篤な病状の患者で特に多くみられる
- 人工知能と機械学習がヘルスケア領域で期待されている
- 診断アルゴリズムは患者の症状の原因が複数ある可能性のある鑑別診断において医師の精度を越えるのに苦戦している
- なぜか
- ベイズモデルベース、ディープラーニングアプローチを含む既存の診断アルゴリズムは全て相関に基づく推論をしている
- 原因を探っていく医師の診断とは対照的
- 最適でない診断や危険な診断が行なわれる、この問題を解決するために反事実的アプローチによる診断アルゴリズムを開発した
- 医学以外のベンジアンモデルに適用できる
- モデルベース診断
P(D|{\mathcal E}; \theta)
- 医師の診断は患者の病歴から、その症状を引き起こしている可能性が最も高い疾患を特定すること
- 因果分析技法を取りいれたモデルベース診断への既存アプローチは存在しない
- 医療診断における交絡
- 疾患(D)が症状(S)の直接の原因になっている場合と、共通のリスク因子(R)が症状(S)と疾患(D)の原因になっている場合、事後確率 P(D|S) では区別ができない
提案手法
- 相関アプローチの代替手法
- causal responsibility (or causal attribution)
- 結果Sの発生が実際に原因Dによってもたらされた確率について推論
- ↑ を実現するのに必要な尺度として
を導入M(D, {\mathcal E}) - 疾患Dが患者の症状を引き起している尤度は患者がその病気に罹患している事後確率に比例
M(D, {\mathcal E}) \propto P(D=T|{\mathcal E})
- 疾患Dがどの症状も引き起さないときゼロ
M(D, {\mathcal E}) = 0
- 患者の症状をより多く説明する疾患はより尤もらしい
- 疾患Dが患者の症状を引き起している尤度は患者がその病気に罹患している事後確率に比例
- 反実仮想診断の考え方
- ある疾患が患者の症状の原因となっている可能性を定量化するために反実仮想推論を採用
-
P({\mathcal E} = e\prime | {\mathcal E} = e, do(X = x)) - 結果 E = e が観測された時に仮想的な介入 X = x が行なわれていた時に E = e' を観測できる確率
-
do(D=F) - 介入して疾患Dを治療すること
-
P(S = F ∣ S = T, do(D = F)) - 症状Sが観測されている時に疾患Dを介入により治療したときに症状Sが無くなる反実仮想確率
- この確率が高ければ仮説
は症状の良い因果的説明となるD=T
- 提案する尺度
-
Expected disablement
E_{\text{dis}}(D; {\mathcal E}) := \sum_{S^+}|S_{+} \setminus S'_{+}| P(S' | {\mathcal E}; do(D = F)) - 病気Dだけで患者の症状をどの程度説明できるか、Dを治療するだけで患者の症状が緩和される可能性
-
は反実仮想症状と実際の症状が同じときにゼロなので、治療した結果症状が何も減らなければ|S_{+} \setminus S'_{+}| E_{\text{dis}}(D; {\mathcal E}) = 0
-
Expected sufficiency
E_{\text{suff}}(D; {\mathcal E}) := \sum_{S'} |S'_{+}|P(S' | {\mathcal E}, do({\text Pa}(S^+) \setminus D = F)) - 患者の症状の他の可能な原因をすべて断つように介入した場合に、持続すると予想される陽性症状の数
-
は疾患{\text Pa}(S^+) \setminus D 以外のすべての直接的原因の集合D -
は疾患do({\text Pa}(S^+) \setminus D = F)) 以外のすべての直接的原因の集合を治癒したという反実仮想介入D
-
Expected disablement
- 実験で仕様するモデル
- Bayesian Networks (BNs)
- 病気、症状、危険因子を 1, 0 かのバイナリノードとして表現
- 古くから診断システムに使われている、疾患・症状の2層が多かった
- 最近はリスク因子を追加した3層BN疾患モデルが台頭
- BNsの表現としてパラメータ(条件付き確率)を減らせる Noisy-OR CPT を採用
- 3-layer Noisy-ORモデルにおける Expected disablement と Expected sufficiency
- Theorem 2: For 3-layer noisy-OR BNs
- 証明は Supplementary Note 4 and by Theorem 4 in Supplementary Note 6.
実験
- 著者らの既存の病気予測モデルのランキング出力そのままの場合と、同じモデルで計算した Expected disablement と Expected sufficiency を利用した場合で比較を行なった
- 著者らのモデル
- three-layer noisy-OR diagnostic BNs
- The BNs is parameterised by a team of doctors and epidemiologists
- テストデータとは独立して開発
- Expected disablement と Expected sufficiency は定理2の式
- 疾患とリスク要因の事前確率は疫学データから導出した
- 条件付き確率は複数の独立した医学的情報源と医師からの聞き取りで得た
評価データセット及び結果
電子カルテのデータを使うのはミスラベルの影響を避けられないので、専門医が作成した臨床ビネットを使う
- 1,671件の臨床ビネット
- 44人の医師と従来のアルゴリズムと提案手法の比較をした
- 関連ベース手法は医師の上位48%の精度、提案手法は医師の上位25%の精度を達成した
- 疾患のレア度合いでグルーピングして比較
- 医師は単純なビネットにおいて高い診断精度
- アルゴリズムは難易度の高いビネットにおいて高い精度を達成する傾向
Discussion