リアルワールドデータ(RWD)分析への機械学習適用

2020/06/10
執筆者:
· 推定読書時間 4  分

DataRobot でヘルスケア分野のお客様を担当しているデータサイエンスアソシエイトの鎌田です。

近年ヘルスケア分野ではリアルワールドデータ(Real World Data: 以下 RWD)を用いた研究が増えています。RWD には明確な定義はありませんが、大規模な患者レジストリーや保険データベース、電子カルテデータを含むデータベースなど、日々の臨床から収集した患者情報のデータベースの総称の意味合いで広く使われています[1]。臨床研究のゴールド・スタンダードはランダム化比較試験 (Randomized Controlled Trial: 以下 RCT)ですが、特に医療の世界では RCT が倫理的または費用的な面で実施困難であることが多く、また厳しく統制された RCT で得られた知見を実際の臨床に応用できるか保証されないという問題があるため(外的妥当性が保証されない)、近年 RWD を用いた分析の可能性に注目が集まっています。

機械学習を適切に用いることで素晴らしい知見が得られた論文や事例が報告されている中で、より多くの医療関係者や創薬研究者に機械学習の門戸が開かれることを願い、RWD 分析への機械学習適用をまとめるに至りました。本稿では機械学習を使用した RWD の分析で具体的にどういった点に気を付ける必要があるのかについての情報を提供することで、医療関係者や創薬研究者が RWD 分析で成功するためのヒントを得ていただくことを目的としております。なお、分析手法の詳細な説明は別に譲ります。

機械学習を使用した RWD 分析の概要

RWD の分析が行われる目的は多岐にわたると思いますが、主要な目的を4つに分類しました。

073 image 1
図1: RWDを使った分析の概要

過去の実績データからパターンを見つけて、そのパターンから主に予測や分類を行うために機械学習技術は使われますが、 予測・分類に限らず効果検証や要因分析にも機械学習の活用可能性があります。予測・分類の事例については、弊社ブログ「医療業界(病院や医療系研究機関)でのAI/機械学習の利用」をご覧ください。

RWD で効果検証を行う際、RWD は RCT のように理想的な状況で得られたデータではないので、介入の有無以外の背景因子を揃えるなど、交絡因子への対応が分析の鍵になります。傾向スコアマッチング法は介入の有無以外の背景因子を揃える方法の1つであり、ここに機械学習の1つの活用可能性があります。DataRobot を利用して傾向スコアを計算する具体的な分析方法は、弊社ブログ「機械学習を用いた要因分析-理論編 Part2」や「機械学習を用いた要因分析-実践編」の後半をご覧ください。

機械学習を使って要因分析を行うこともできます。重回帰モデル等を使用して、アウトカムの要因の候補を見つける分析をされた経験がある方も多いのではないでしょうか。機械学習の中には非線形性や多重共線性に対応することができる手法があるため、複雑な RWD から、重回帰分析では見えてこなかった新しい知見を見つけることができる可能性があります。具体的な分析方法は、弊社ブログ「機械学習を用いた要因分析-理論編 Part1」や「機械学習を用いた要因分析-実践編」の前半をご覧ください。

次章では、実際にこういった機械学習を活用し、RWD の分析を進める際に注意するべきポイントを紹介していきます。

RWD 分析では何に注意するべきか

RWD は分析のために用意されたデータではないため、なかなか所望の結果を得ることができないケースが決して少なくありません。機械学習を使用して RWD を分析する際に注意するべきポイントはいくつかありますが、筆者の DataRobot を使った RWD 分析経験も交えて代表的な注意点を紹介します。

073 image 2
図2: RWD分析における注意点

予測結果の適用範囲

RWD で得られたデータには偏り(バイアス)があるケースがほとんどです。例えば、ある疾患の重症化を予測するモデルを構築するケースを考えてみます。下図3のように、この疾患(例えば脳動脈瘤を想定してみてください)では医師の判断で重症化のリスクが少しでも高い患者さんにはすでに手術が行われていたとしましょう。すると「手術されていない患者のデータ」を使用して予測モデルを構築した場合、従来の判断基準で手術されていない患者さん(下図の四角で囲んだ患者群)に対してのみ適用される予測モデルとなる点に注意が必要です。このように RWD を分析する場合には、データの特性を理解し、予測結果がどこまで適用されるのか、分析を始める前にしっかり議論する必要があります。

073 image 3
図3: RWDで得られるデータの予測結果適用範囲例

前処理・補正・検証試験

RWD には欠測が多く含まれていることがあり、それらにいかに対応するかが課題となります。欠測値は適切に補間することが求められますが、そのためには取り扱うデータが欠測する機序(メカニズム)をしっかり理解する必要があります。欠測が生じるメカニズムとして、一般的に図4に示す3種類があります[1,2,3]。

73 Image 4
図4: 欠測の種類

MCAR は、ある日に来院した患者のデータが測定器の偶発的な故障によって記録できなかった時に発生するような欠測で、完全にランダムな欠測のことを意味します。MAR は、欠測の理由がその変数以外の既知の変数で説明できるような欠測です。例えば、ある疾患の方に対してある検査が実施され、そうでない患者にはあまり検査が実施されない場合に発生する欠測などがあげられます。該当の変数の大小に関わらず欠測があるため、ランダムな欠測と言われています。ランダムという名前がついているので少し混乱しますが、欠測に何かしらのルールが存在することに注意が必要です。MNAR はある一定の範囲に発生する欠測です。例えば、ある症状を持つ方であれば丁寧にその症状の情報が全て入力され、症状がない方はデータ入力自体がなされない場合があげられます。欠測には、こうしたタイプを理解しながら、対応することが必要となってきますが、モデル作成時に使用されるいくつかの代表的な対処方法を紹介します。

A. 記入パターンを理解して補間

例えば喫煙をされる方であれば喫煙年数が確実に入力される一方、喫煙されない方には0が入力されたり、されなかったりすることで発生する欠測があったとします。筆者はそうしたケースを実際に経験したことがあり、実際の記入パターンを理解した後、欠測は全て「0」で補間を行いました。これは MNAR の例に当たりますが、記入パターンを理解することで対応できるかどうかをまず考える必要があります。

B. 除外(完全ケース分析)

シンプルに欠測が含まれる行を除外する方法です。MCAR かつサンプルが多くある場合に使用することができますが、サンプルが少ない場合は使用することができません。臨床研究でこの方法は完全ケース分析と言われています[2]。統計的な解析においては手法の制約から欠測は除外されることが多いですが、機械学習による分析の場合は後述のような選択肢もあり、分析に使用できるデータの幅が広がります。

C. 平均値や中央値などで補間

欠測がある変数の平均値や中央値でその欠測を補間する方法です。MCAR と MAR に使用することができます。シンプルな方法で実行しやすい方法ですが、予測モデルの精度向上に向けた積極的な方法ではありません。

D. 多重代入法

単純に平均や中央値で欠測を補間するのではなく、欠測のないデータを用いて欠測値を予測するモデルを使用して補間する方法です。補間をする方法によって値が変わる可能性があるので、異なる補間方法を複数回検討します。MCAR と MAR に使用することができます。

E. 欠測していたかどうかを示す flag をつける

欠測を何かしらの方法で補間しつつ、欠測していたデータにはflagという形で新たに変数を追加する方法です。MARやMNARの場合、欠測には何か意味が含まれていることが多いですが、欠測も貴重な情報として捉えるという発想です。DataRobotではロジスティック回帰やElastic Netなどの回帰系のモデルを扱う際、自動的にこうした処理を試してくれます。

F. モデルの特性に合わせた補間(決定木系のモデルでは欠測を-9999で補間)

機械学習モデルの1つに決定木と呼ばれるものがあります。近年決定木から発展を遂げたモデル(ランダムフォレスト、Light GBM、XGBoost など)が多くの問題に対して高い性能を発揮しており、注目を集めています。決定木系のモデルは、「ある変数がある値以上なら+1」といった形で予測に有効な分岐を複数作成していくモデルです。そうした決定木系のモデルでは、欠測を-9999といった極端な数値で補間することで、欠測が有効な分岐になるかどうかをモデルの中で検討できるようになります。使用するモデルによって適切な処理が異なってきますが、DataRobot ではモデルを扱う際、自動的にこうした処理を行ってくれます。

欠測値だけではなく、記録されているデータの精査も必要となります。診療報酬明細書のデータベースを使用する場合、例えば「脳梗塞」という病名が付けられているにもかかわらず、その日に脳 CT や MRI が行われていなければ、診療報酬請求のための病名にすぎないのではないかと考えることができます。診療報酬の明細に記載された項目全てが、脳梗塞に矛盾しないかどうかを判断するこのような作業は検証試験と呼ばれています[4]。大量のデータを扱う場合は、1つ1つカルテを確認することが現実的ではないため、無作為抽出を行って何か一定のルールを見つけ、データを修正することができないかを考えていきます。筆者は無作為抽出とあわせて、一度簡単にモデルを作成した後に検討外れな結果が含まれていないかどうかを確認し、検討外れな結果の周辺からデータの精査を行う方法もとっています。

モデルの解釈性

機械学習による予測モデルを実際の医療現場で診断補助のために運用するのであれば「なぜそういった予測結果になるのか」を説明できることが特に重要になってきます。近年機械学習は解釈性に関心が集まり、どの変数が予測に重要なのかを確認できる様々な手法が提案されています。作成したモデルが臨床的な知見で信頼できるものか、そうした手法で検証しながら分析を進めていく必要があります。

一例としてCOVID-19感染患者が重症化するかどうかを予測するモデルをDataRobotで作成したケースを取り上げ、「モデルの解釈性も意識した分析」のイメージを紹介します。

73 Image 5
図5: モデルの精度に寄与する変数とその寄与度

図5の結果は、モデルの精度に寄与する変数とその寄与度を示しています。この例では、年齢や症状、症状自覚から受診までの時間、持病などが重症化と関係性が高いという結果が得られました。特に年齢や症状、持病は現在 COVID-19 について世界中で報告されている結果と合致しています。DataRobot から出力されるこのチャートの詳細については弊社ブログ「Permutation Importanceを使ってモデルがどの特徴量から学習したかを定量化する」を参照ください。

073 image 6
図6: 年齢と重症化の関係

図6は年齢(横軸)と重症化確率(縦軸)の関係性を表しています。この解析では年齢が50歳以上の患者の重症化確率が高く、70歳以上になると更に重症化確率が高くなる傾向が見られましたが、このようにどういったケースで重症化のリスクが高くなるのかを可視化できれば、医師などの専門家が臨床知識に基づいてモデルの妥当性を判断し易くなります。DataRobot から出力されるこのチャートの詳細については、弊社ブログ「特徴量ごとの作用を使ってモデルの中身を解釈する」を参照ください。

モデルに使用する特徴量(変数)の選択と特徴量エンジニアリング

臨床で使用されているドメイン知識(専門的知見)から新たな特徴量を作成してモデルに入れることで、モデルの精度がよくなる可能性があります。例えば、ある測定値を単体で判断せずに「ある症状を持った方で、ある測定値が高い方は特にリスクが高い」といった知見がある場合は、その測定値と症状の有無を組み合わせた変数(交互作用項)を作成することで予測精度が上がるケースがあります。

また、上述の通りヘルスケア領域の分析では特に使用した変数の説明可能性が求められるため、モデルに使用する変数やそのカットオフ値はドメイン知識をもとにしっかり吟味する必要があります。特にカットオフ値は必ず専門医がレビューを行って臨床的な根拠がある値のみを採用するべきで、データ分析結果から後付けで設定することがあってはいけません。なおドメイン知識の整理方法については、弊社ブログ「要因分析におけるドメイン知識整理の重要性」をご参照下さい。

効果検証における交絡因子への対応

RWD は RCT のように理想的な状況で得られたデータではないので、効果検証の際には介入の有無以外の背景因子を揃えるなど、交絡因子への対応が分析の鍵になります。傾向スコアマッチング法は介入の有無以外の背景因子を揃える方法として知られていますが、傾向スコアを用いた方法でも未測定の交絡因子には対応できないことに注意が必要です。特に研究計画に従って取得されていない RWD には交絡因子のデータが取り切れていない場合も多いため、未測定交絡因子(Unmeasured Confounding Factors)を慎重に検討する必要があります。

保険データベースの分析では、未測定交絡因子をその他の多くの因子で調整する高次元傾向スコア[2]という考え方が適用されることもあります。複数の入手可能な変数を可能な限り多く使用することで、間接的に未交絡因子についてもある程度調整することが可能になるという考え方です。実際に RCT により近い結果が得られたという報告がいくつかありますが、完全に未測定交絡因子に対応することはできないので、致命的な未測定交絡因子がないかどうか、他のデータベースから紐付けることができないか、やはり研究毎に十分検討する必要があります。

モデルと解析結果の頑健性

希少疾患を分析する際、どうしても分析に使用するサンプルサイズは小さくなってしまいます。また、患者数が多い疾患でも、実際には重篤化しないように治療が行われた結果、重篤化や死亡となるエンドポイントが少ないケースも多いです。サンプルサイズが数百や数千と少ない場合、そこに機械学習を適用するとモデルの学習のために使用するデータのサンプリング条件によって、大きく解析結果が変わってしまう問題が生じます。弊社ブログ「統計解析と機械学習:要因分析からの考察 Part 2」では、少量データによる解析結果の不安定性に対応するために、使用するサンプルのパーティショニングパターンを意図的に振りながら異なる素性の機械学習モデルを複数作成し、それらを組み合わせて解析結果の頑強性を高めていく手法を紹介しています。

機械学習モデルから得られる結果が本当に信頼できるものなのか様々な角度から検証する必要がありますが、このプロセスは感度分析と言われています[2]。例えば、6ヶ月以内にアウトカムが発生するかどうかを予測するモデルを作成する際、それを6ヶ月から12ヶ月に期間を伸ばした際に結果が大きく変わることがないか確認する方法などが挙げられます[2]。

73 Image 7
図7: 分析期間変更による感度分析のイメージ

まとめ

本稿では RWD に機械学習を適用して分析に成功するためのヒントになる情報を中心に紹介しました。弊社は今後も、国内の医療機関で働く医師や研究者が自らの手で効率良く予測精度の高い機械学習モデルを開発するためのプラットフォームや知見・ノウハウをご提供し、医療機関でのAI推進活動を強くご支援して参ります。

参考文献   

  1. 康永秀生, 田上隆, 大野幸子 (2018):「超入門! スラスラわかるリアルワールドデータで臨床研究」,金芳堂
  2. 康永秀生, 山名隼人, 岩上将夫(2019):「超絶解説 医学論文の難解な統計手法が手に取るようにわかる本」,金原出版 
  3. 康永秀生 (2017):「できる!臨床研究 最短攻略50の鉄則」,金原出版 
  4. 山下武志 (2017):「リアルワールドデータの真っ赤な真実」,南江堂
  5. 奥田千恵子 (2019): 「医療従事者のためのリアルワールドデータの統計解析 はじめの一歩」,金芳堂 
  6. 安井 翔太 (2020):「効果検証入門」,技術評論社
  7. 伊藤公一朗 (2017):「データ分析の力 因果関係に迫る思考法」,光文社新書
  8. 岩波データサイエンス刊行委員会 (2016):「岩波データサイエンス Vol.3」,岩波書店
オンデマンドビデオ
AI Experience Virtual Conference 2021

「DataRobot AI Cloud」に関する基調講演や、業界をリードするDX推進企業の取り組み、AIサクセスを実現するビジネスリーダーによるパネルセッションをオンデマンドビデオで確認

オンデマンドで見る
執筆者について
鎌田 啓輔(Keisuke Kamata)
鎌田 啓輔(Keisuke Kamata)

データサイエンティスト

主にヘルスケア業界や研究機関のお客様をサポートする DataRobot データサイエンティスト。民間企業の AI 活用支援をはじめ、健診データや日本最大の COVID-19 データベースを用いた解析も研究機関と進めている。前職では主に効果検証を業務としており、機械学習・効果検証を専門としている。

鎌田 啓輔(Keisuke Kamata) についてもっとくわしく