アナリティクス

医療分野におけるSPSSの活用法

記事をシェアする:

劉 寧(りゅう ねい LIU NING) 氏

株式会社 システム環境研究所

DPCデータを用いたDecision tree(決定木)分析のご紹介

情報通信技術の発達に伴い、今日の病院は医療情報システムの基盤を整備しつつ、その情報の利活用も加速している。その情報の一つが、急性期病院が毎月厚労省への情報提出を義務付けられているDPCデータである。DPCデータを分析することにより、入院から退院まで診療詳細のすべてが可視化できるだけではなく、ベンチマークと比較した自院の結果を評価することも可能になる。これに基づき、更なる統計的な分析手法を加えると、いろいろなシミュレーションが可能になり、病院の経営改善にも多大な価値を与えることができる。

本日はDPCデータを用いて、IBM SPSS ModelerのDecision tree(以下、決定木)モデルの活用方法をご紹介する。 IBM SPSS Modelerには、CHAID、QUEST、C&R Tree及びC5.0の決定木アルゴリズムがある。C5.0はエントロピー情報量に基づき、質的な目的変数を説明変数の特定の水準とそれ以外の水準に分割し、情報利得(information gain)を最大化するように説明変数を選択しながら逐次ツリーを成長させることにより、予測モデルを構築する手法である。

例えば、病院のICU(特定集中治療室)に入室する患者は様々な重篤症状を呈するが、一般的に呼吸、循環、代謝、栄養を中心とする医療行為を受けている。これらの医療行為からICU入室患者が受けられやすい医療行為のルールが分かれば、ICU入室の可能性が高い患者数を予測することができ、さらにICU病床数の推計も可能になる。もちろん、実際の病床の状況やドクターの判断等も考慮しなければならないが、自院の医療行為の方針から最低限のICU病床数を推計することによって、ICU病床数の効率化につながり、病院の運営改善に大きく寄与することができる。

上記の考え方に基づき、ICU入室の有無を目的変数、入院患者が入院期間中に受けられていた各医療行為の金額(出来高算定)を説明変数として決定木モデルを構築した。決定木モデルは、ICU入室患者がよく受けられる医療行為のルールに基づき、ICU入室有無の予測値を計算し、最終的にICU入室の可能性が高い患者数を予測することができた。

それでは、病院のDPCデータを利用して、どのように決定木モデルを構築していくかを紹介する。IBM SPSS Modelerを利用して分析するストリームが図1になる。最終段階のモデリングはそれほど難しくなく、ポイントは表1のように、DPCデータから分析用データに編集するプロセスである。表1の下の分析用データの中に、説明変数として医療行為の金額(出来高算定)がある。これは表1の上のDPCデータの中にある各レセプト電算コード及びその金額に代表される医療行為と同じである。

図1 全体のストリーム
z1

表1 DPCデータから分析用データへ編集
h1

データの入力からモデリングまでのプロセスについて下記の通りである。

  1. 12か月分のEFファイルと様式1を手元に用意する(もちろん1年間以上のデータがあれば、分析にも使える)。IBM SPSS Modelerのレコード追加ノードを使えば、12か月分のEFファイルを一つのテーブルにすることができる(図2)。次に、分析に必要な変数「RECID」を編集する。

図2 12か月分のEFファイルを1つのテーブルにレコード追加する
z2

  1. 診療明細情報を代表するEファイルを使用するため、その順序番号に対応する行為明細情報を削除する。今回は条件抽出ノードを用いて、変数「行為明細番号」=0という設定で条件抽出を行っている。また、各診療行為の金額を計算するため、フィールド作成ノードを使って、「円点区分」の規定により新しい変数の「金額」を作成する。その後、データ型ノードで各変数の尺度を確認してから、再構成ノードを使用する。ここまでの様子が図3である。
  1. 図4は再構成ノードの編集画面である。ここでは、まず左上の「利用可能なフィールド」に名義型の「レセプト電算コード」を選び、説明変数として必要な「レセプト電算コード」を右側の「再構成フィールドの作成」に移動する。また、画面下の「値フィールド」に、「金額」を選び、「OK」ボタンをクリックする。
  1. 上の編集により、各「レセプト電算コード」の金額をフラグ変数として横に引っ張ることができた。ヌル値があるため、置換ノードを使って、各「レセプト電算コード」のヌル値を「0」と置換する(図5)。

図3 条件抽出と「金額」の設定
z3

図4 再構成ノード設定の編集画面
z4

図5 置換の編集画面
z5

  1. 診療報酬情報提供サービスの医科診療行為マスターから、特定集中治療室管理料に相応するすべてのレセプト電算コードを条件抽出する。次に特定集中治療室管理料を算定したことがある患者を対象として、「RECID」をキーフィールドとしてレコード集計する。これにより、ICU入室患者を特定することができる。ここまでの編集は図6である。

図6 ICU入室患者の特定
z6

  1. フィールド作成ノードを使って、新しい変数の「ICU入室有無」を作成する。ICU入室有の患者の場合は「1」、ICU入室無の患者の場合は「0」と設定する。次に、レコード集計ノードを用いて、「RECID」をキーフィールドとして、各レセプト電算コードの合計金額を集計する。ここまでの編集を図7で示す。また、図8はレコード集計の詳細設定である。これにより、1患者1レコードの形で、ICU入室有とICU入室無の患者が入院期間中に受けていた医療行為の金額を1つのテーブルに表示することができた(図9)。

図7 ICU入室有とICU入室無の患者毎に医療行為金額の集計
z7

図8「RECID」をキーに、各レセプト電算コードの合計金額を集計する
z8

図9  患者毎に受けられた各医療行為の合計金額(円)
z9

  1. 上のテーブルを様式1のファイル(12か月分の様式をレコード追加した)とレコード結合し、キーをすべて「RECID」とする。レコード結合ノードからデータ型ノードへリンクする。データ型ノードの中で、名義型の変数「ICU有無」を「対象」とし、各レセプト電算コードの合計金額を「入力」と設定する。他の変数を「なし」とする。これで、C5.0モデルまでのデータ準備が完成した。

図10 患者毎の医療行為情報と様式1の結合
z10

  1. データ型ノードからC5.0ノードへリンクすると、C5.0ノードの名前が、「ICU有無」に変わる。C5.0ノードをダブルクリックする。出力形式に「ディシジョンツリー」にチェックが入っていることを確認してから、「ブースティング使用」にチェックを入れる。「エキスパート」にチェックを入れる。一番下にある「グローバル剪定を使用」と「属性による選別」にもチェックを入れて、実行をクリックする(図11)。

図11 C5.0ノードの編集画面
z11-1
z11-2

  1. 図12はC5.0の出力結果である。一番上の分岐条件は「レセプト電算コード_160074410_Sum」である。即ち、中心静脈圧(5回以上)の合計金額>0円の場合は、386人の入院患者がいるが、そのうちの381人(98.7%)がICU入室となる。次の分岐条件は「レセプト電算コード_150254910_Sum」である。即ち、中心静脈圧(5回以上)<=0円且つ脳血管内手術(一ヵ所)>0円の場合は、143人の入院患者がいるが、そのうちの139人(97.2%)がICU入室となる。その次に、「レセプト電算コード_150284510_Sum」である。即ち、中心静脈(5回以上)<=0円且つ脳血管内手術(1ヵ所)<=0円且つ頭蓋内腫瘍摘出術(その他)>0円の場合は、56人の入院患者がいるが、全員(100%)ICUに入室する。以下省略。

図12 C5.0の出力結果
z12

  1. 分析用ストリームに戻って、生成されたC5.0ノードからテーブルへリンクする。そのテーブルを実行すると、一番右側より二列目に「$C-ICU有無」という予測変数が新たにできた。これは上から算出したルールに基づき、Decision treeモデルが予測したICU入室有無の結果を示した。その隣の「$CC-ICU有無」は予測結果の確信度の点数である(表2)。

表2 C5.0で予測したテーブル
h2

表3 ICU有無と予測ICU有無のクロス集計表
h3

  1. 生成されたC5.0ノードからクロス集計ノードへリンクする。クロス集計ノードを右クリックし、行でICU有無を、列で$C-ICU有無を選択する。また、外観の「度数」と「行のパーセンテージ」にチェックを入れ、実行する。その結果は表3となる。このモデルは実際ICUに入室している患者の96.4%を正確に予測していることを分かった。また、実際ICUに入室していない患者の99.9%も正確に予測していた。実測値と観測値が一致していない部分に関して、現場の医療関係者に確認し、ICU入室となる医療行為以外の原因を確認する必要もある。

DPCデータを用いて決定木モデルを使うと、入院患者の受けられた医療行為からICU入室の可能性が高い患者数を高い精度で予測することができる。これは、ICU入室の可能性が高い患者は一定のルールに沿って医療行為を受けている事実を示している。また、この医療行為のルールは病院の医療方針の現状も反映している。したがって、現在の医療方針が変わらない前提の下で、決定木モデルで予測した患者数から最低限必要なICU病床数を推計することも可能になる。

More stories

ブログで学ぶSPSS_Modeler #08- パッと見地味でもベテラン推し!平均値ノードで示す施策の有効性

Data Science and AI, SPSS Modeler ヒモトク, アナリティクス...

  こんにちは、株式会社MAIの木暮です。   今回は、SPSS Modelerの平均値ノードで示す施策の有効性検証に活用するTipsを、具体例を交えながら掘り下げていきます。   SPSS ...続きを読む


身近な疑問をヒモトク#07-ニュースでよく見るイケてる地図グラフを自分でもサクッと描いてみたい

Data Science and AI, SPSS Modeler ヒモトク, アナリティクス...

  こんにちはIBMの角田です。ビジネス・インテリジェンス(BI)製品の担当をしています。 最近テレビでニュースを見ているとグラフの表現力が上がったと感心します。とりわけ地図による可視化はバリエーションも豊富に ...続きを読む


ブログで学ぶSPSS_Modeler #07- モデル評価に欠かせない予測変数の重要度!そのカラクリと存在意義

Data Science and AI, SPSS Modeler ヒモトク, アナリティクス...

  皆様こんにちはIBMの西牧です。   SPSS Modelerでモデルを作成すると大抵の場合、予測変数の相対重要度が出ます。     個々のフィールドがどの程度予測に影響を与え ...続きを読む