以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
本実施形態は、変数最適化システムを説明する。変数最適化システムは、複数の説明変数候補から、目的変数に対応する1以上の説明変数を選択する。当該複数の説明変数候補それぞれは、1以上の階層を有する木構造のノードのいずれかとして定義されている。
<システム構成>
図1は、本実施例の情報システムの構成例を示すブロック図である。本実施例は、変数最適化システムが、病院情報に適用された例を説明する。本実施例の情報システムは、例えば、ネットワーク140を介して、互いに接続された、変数最適化システム100、病院情報システム120、及び入出力端末130、を含む。
ネットワーク140は、LAN(Local Area Network)ケーブルによる有線通信、又は無線LANによる無線通信を利用する。また、ネットワーク140は、インターネット、VPN、携帯電話通信網、PHS通信網など、他の広域ネットワークを利用することもできる。
変数最適化システム100は、蓄積された目的変数及び説明変数候補の測定値を用いて、各説明変数候補と目的変数との関連度を算出し、関連度に基づいて説明変数候補から抽出対象の説明変数を決定する。また、抽出対象の説明変数に基づいて選択した説明変数候補を再生成する。
病院情報システム120は、例えば、患者情報データベース121、検査情報データベース122、及び処方情報データベース123、を格納する記憶装置を有する計算機である。病院情報システム120に含まれる各データベースは、変数の測定値を格納する。
患者情報データベース121は、病院の患者毎の基本情報等を格納する。検査情報データベース122は、患者毎の検査情報を格納する。処方情報データベース123は、患者毎の処方情報を格納する。病院情報システム120に含まれるデータベースに格納される情報は、ネットワーク140を介して、変数最適化システム100に提供される。
入出力端末130は、例えば、キーボード、マウス、又はタッチパネルなどの入力装置(図示省略)と、ディスプレイなどの出力装置(図示省略)と、変数最適化システム100などと通信する通信部(図示省略)と、を含む1又は複数のパーソナルコンピュータである。また、入出力端末130は、例えば、ボタン又はタッチパネルなどの入力装置と、ディスプレイなどの出力装置と、変数最適化システム100などと通信する通信部とを含むPDA、PHS、携帯電話、スマートフォン、又はタブレット端末などの可搬型端末であってもよい。
入出力端末130は、例えば、病院又は診療所などの医療機関(ヘルスケアプロバイダ)に設置される。変数最適化システム100は、例えば、データセンターに設置される。変数最適化システム100がデータセンターに設置されることで、患者の個人情報及び患者から収集されるデータなどのプライバシー情報を一元管理できるので、情報漏洩防止等のセキュリティ管理を簡易化できる。変数最適化システム100は、運用の形態によってはヘルスケアプロバイダに設置されてもよい。
医療機関の医師、分析担当者、薬剤師、管理者及び経営責任者は、入出力端末130の利用者(以下ユーザと記載する)の一例である。変数最適化システム100は、ユーザからの入出力端末130からの指示に従って、目的変数に対応する説明変数を抽出し、抽出した説明変数と目的変数の測定値を含むデータセットを出力する。
変数最適化システム100は、例えば、相互に接続された、制御部101、出力部102、メモリ103、通信部104、補助記憶装置116を含む計算機によって構成される。制御部101は、例えばメモリ103に格納されたプログラムを実行するプロセッサであり、変数最適化システム100を制御する。
メモリ103は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、制御部101が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
補助記憶装置116は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、制御部101が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置116から読み出されて、メモリ103にロードされて、制御部101によって実行される。なお、補助記憶装置116に格納されるデータの一部又は全部がメモリ103に格納されてもよい。また、メモリ103に格納されているデータの一部又は全部が補助記憶装置116に格納されてもよい。
補助記憶装置116は、例えば、統合データベース113、概念構造データベース114、及び分析データ格納データベース115を格納する。統合データベース113は、病院情報システム120に含まれるデータベースから取得された情報を格納する。
具体的には、統合データベース113は、例えば、抽出対象の説明変数の候補となり得る変数、及び当該変数の測定値を格納する。以下、抽出対象の説明変数の候補を説明変数候補と呼ぶ。なお、本実施形態において、測定値は、実測値、予測値、及び推定値等を含む概念である。概念構造データベース114は、当該変数が属する階層構造を示すデータを格納する。分析データ格納データベース115は、例えば、変数最適化処理の処理結果を示すデータを格納する。
制御部101は、例えば、それぞれ変数最適化システム100の機能を実現するための処理を実行する処理部である、表示画面生成部105、データ抽出部106、目的変数生成部107、説明変数生成部108、データセット作成部109、関連度算出部110、説明変数再生成部111、概念構造編集部112、及び蓄積データ取得部119を含む。
例えば、制御部101は、メモリ103にロードされた表示画面生成プログラムに従って動作することで、表示画面生成部105として機能し、メモリ103にロードされたデータ抽出プログラムに従って動作することで、データ抽出部106として機能する。制御部101に含まれる他の部についても同様である。なお、制御部101に含まれる部それぞれが専用のハードウェアによって実現されてもよい。
表示画面生成部105は、後述する分析オプション及び分析処理結果を出力部102に表示するための情報を生成し、生成した情報を、出力部102を介してディスプレイ装置等に、又は通信部104を介して入出力端末130等に出力する。
データ抽出部106は、補助記憶装置116に格納されたデータベースからデータを抽出する。目的変数生成部107は、例えばユーザからの指示と概念構造データベース114に格納されている情報とに基づいて、目的変数を生成する。説明変数生成部108は、例えばユーザからの指示と概念構造データベース114に格納されている情報とに基づいて、抽出対象の説明変数の候補を生成する。
データセット作成部109は、分析データ格納ベースに格納されるデータセット格納テーブルを作成する。データセット格納テーブルの詳細は後述する。関連度算出部110は、変数間の関連度を算出する。説明変数再生成部111は、抽出された説明変数の上位概念である説明変数候補を再生成する。概念構造編集部112は、概念構造データベース114に格納される概念構造テーブルを編集する。概念構造テーブルの詳細は後述する。
蓄積データ取得部119は、患者情報データベース121、検査情報データベース122、処方情報データベース123、に格納されたデータを取得し、取得したデータを統合データベース113に含まれる後述する各テーブルに格納する。蓄積データ取得部119は、例えば、入出力端末130からの指示に従って、又はユーザが予め指定した時刻に自動的に、当該データを取得する。また、病院情報システム120が、患者情報データベース121、検査情報データベース122、又は処方情報データベース123、のデータを更新した時に、例えば病院データベースからの通知に従って、蓄積データ取得部119は、データを取得してもよい。
出力部102は、ディスプレイ装置やプリンタなどが接続され、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースである。なお、変数最適化システム100は、さらに入力部を含んでもよい。入力部は、キーボードやマウスなどが接続され、オペレータからの入力を受けるインターフェースである。
通信部104は、ネットワーク140に接続され、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信部104は、例えば、USB等のシリアルインターフェースを含む。
制御部101が実行するプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワークを介して変数最適化システム100に提供され、非一時的記憶媒体である不揮発性の補助記憶装置116に格納される。このため、変数最適化システム100は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
なお、変数最適化システム100、入出力端末130、及び病院情報システム120は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
以下、統合データベース113を構成するテーブルの一例を説明する。なお、本実施形態において、変数最適化システム100が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。以下では、テーブルが情報を格納する例を示しているが、例えば、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。
統合データベース113は、例えば、患者毎の基本情報等を管理する患者情報テーブル、患者毎の検査情報を格納する検査情報テーブル、及び患者毎の処方情報を格納する処方情報テーブルを格納する。なお、本実施形態における複数のテーブルに含まれる情報は1つのテーブルに含まれてよい。例えば、統合データベース113は、患者情報テーブル、検査情報テーブル、及び処方情報テーブルを統合した1つのテーブルを用いて情報を管理してもよい。
図3は、患者情報テーブルの例である。患者情報テーブル300は、例えば、患者を識別する患者IDを格納するフィールド301と、患者の性別を格納するフィールド302と、対応するレコードが入院のデータであるか又は外来のデータであるかを示す入院フラグを格納するフィールド303と、医療機関への外来の診断日を格納するフィールド304と、医療機関への入院年月日を格納するフィールド305と、医療機関からの退院年月日を格納するフィールド306と、罹患した疾患名を格納するフィールド307〜309と、を含む。
入院フラグが「1」であるレコードは入院患者のデータであり、診断日を示すフィールド304には「0」が格納される。入院年月日を示すフィールド305と退院年月日を示すフィールド306それぞれには当該入院患者に入院年月日及び退院年月日それぞれが格納される。なお、未退院の患者の退院年月日を示すフィールド306には「0」が格納される。一方、入院フラグが「0」であるレコードは外来患者のデータであり、診断日を示すフィールド304には当該外来患者に対応する値、入院年月日を示すフィールド305と退院年月日を示すフィールド306には「0」が格納される。
患者情報テーブル300の各レコード(患者情報レコード)に、一人の患者の1入院ないし1診断に関する情報が格納される。つまり、1人の患者の1回の入院又は1回の外来の診断、が1レコードに対応する。
例えば、図3の例では、患者情報レコード310は、患者ID「#1」の患者が、性別「男」、入院フラグ「1」、診断日「0」、入院年月日「2014/04/01」、退院年月日「2014/04/26」であり、病名1が「病名A」、病名2が「病名B」、病名3は何も情報が登録されていない事を示す「NULL」であることを示す。即ち、患者情報レコード310は、患者ID「#1」で識別される男性の患者が、病名Aと病名Bのために2014年4月1日から2014年4月26日まで入院したことを示す。また、患者情報テーブル300は、病名を格納するフィールドを4つ以上含んでもよい。
なお、患者情報テーブル300に含まれるフィールドは図面に例示したものに限られない。また、患者情報テーブル300は、図面に例示したフィールドの一部を含まなくてもよい。その他のテーブルについても同様である。
図4は、検査情報テーブル400の例である。検査情報テーブル400は、例えば、患者IDを格納するフィールド401と、検査項目を識別する情報を格納するフィールド402と、検査日を格納するフィールド403と、検査結果(例えば検査値)を格納するフィールド404と、を含む。
図4の例は、患者ID「#1」の患者の「検査項目X」の値が、「2014/04/1」に「41」、「2014/04/7」に「62」、「2014/04/13」に「180」、「2014/04/15」に「220」、「2014/04/18」に「196」、及び「2014/04/25」に「120」であったこと、かつ検査項目「検査項目Y」の値が「2014/04/1」に「38」であったことを示す。
また、検査値を格納するフィールド404は、例えば、画像検査(例えばCT画像検査)による検査結果である画像情報を格納してもよい。また、フィールド404は、例えば、「吐き気」又は「嘔吐」といった患者の自覚症状に関する情報等の文字列を格納してもよい。
図5は、処方情報テーブル500の例である。処方情報テーブル500は、例えば、患者IDを格納するフィールド501と、薬剤を識別する情報(例えば薬剤名)を格納するフィールド502と、各薬剤の処方開始日を格納するフィールド503と、各薬剤の処方終了日を格納するフィールド504と、を含む。
図5の例は、患者ID「#1」の患者に、薬剤名「薬剤A」が「2014/04/01」から「2014/04/07」まで及び「2014/04/08」から「2014/04/14」まで処方され、薬剤名「薬剤B」が「2014/04/03」から「2014/04/8」まで処方され、薬剤名「薬剤D」が「2014/04/16」から「2014/04/20」まで処方され、かつ薬剤名「薬剤T」が「2014/04/14」から「2014/04/18」まで処方されたことを示す。
また、処方情報テーブル500は、例えば、各薬剤の処方の用法を格納するフィールド、及び各薬剤の処方の用量を格納するフィールドをさらに含んでもよい。以下、概念構造データベース114を構成するテーブルの一例を説明する。概念構造データベース114は、例えば、概念構造の名称と概念構造に対応する概念レベルを管理する概念構造テーブルを含む。
図2は、概念構造テーブルの例である。概念構造テーブル200は、1以上の木構造、及び当該1以上の木構造それぞれのノードである概念を特定する情報を格納する。概念構造テーブル200に格納された各概念は、いずれも説明変数候補となり得る。
概念構造テーブル200は、例えば、概念構造の名称の情報を格納するフィールド201と、概念構造名称に対応する概念構造の最上位の階層である概念レベル1に属する概念の情報を格納するフィールド202と、概念レベル1の1つ下の階層である概念レベル2に属する概念の情報を格納するフィールド203と、概念レベル2の1つ下の階層である概念レベル3に属する概念の情報を格納するフィールド204と、を含む。
概念構造テーブル200は、予め定められていてもよいし、概念構造編集部112による後述する処理によって作成されてもよい。ある概念の(親ノードを含む)先祖ノードに相当する概念は、当該ある概念の上位概念である。また、ある概念の(子ノードを含む)子孫ノードに相当する概念は、当該ある概念の下位概念である。
図2における概念構造テーブル200のレコードである概念構造レコード200A、概念構造レコード200B、及び概念構造レコード200Cは、概念構造「病名概念1」の概念レベル1に「病名群1」が属し、概念レベル2に属する「病名群α」は「病名群1」の下位概念であり、概念レベル3に属する「病名A」、「病名B」、及び「病名C」が「病名群α」の下位概念であることを示す。
概念構造テーブル200は、概念レベル3のさらに下位の概念レベル、即ち概念レベル4以下に属する概念の情報を格納するフィールドをさらに含んでもよい。即ち、概念構造は、4つ以上の階層を含んでもよい。
また、1つの概念が、複数の概念構造に含まれていてもよい。図2の例において、概念構造レコード200D及び概念構造レコード200Eは、「薬剤群θ」が概念構造「薬剤概念1」と概念構造「知識概念1」の双方に含まれることを示す。また、図2の例のように、複数の概念構造に1つの概念が属する場合において、当該複数の概念構造に含まれる概念構造において当該1つの概念が属する概念レベルと、当該複数の概念構造に含まれる他の概念構造において当該1つの概念が属する概念レベルと、は互いに異なってもよい。
以下、分析データ格納データベース115を構成するテーブルの一例を説明する。分析データ格納データベース115は、例えば、説明変数候補テーブルと、データセット格納テーブルと、関連度テーブルと、を含む。
図6は、説明変数候補テーブルの例である。説明変数候補テーブル600は、例えば、説明変数候補の名称を格納するフィールド601と、説明変数候補が抽出対象の説明変数となったか否かを示す抽出フラグを格納するフィールド602と、説明変数候補が再生成対象となったか否かを示す再生成フラグを格納するフィールド603と、説明変数候補が再生成の対象となった際に当該説明変数候補から除外すべき下位概念の変数情報を格納するフィールド604と、説明変数候補が抽出の対象外となったか否かを示す対象外フラグを格納するフィールド605と、を含む構成される。
フィールド602と、フィールド603と、フィールド605と、に格納される初期値は「0」であり、フィールド604に格納される初期値は「NULL」である。説明変数候補が抽出対象の説明変数に決定された場合、フィールド602の当該説明変数候補に対応するセルの値が「1」に変更される。
説明変数候補が再生成の対象となった場合、フィールド603の当該説明変数候補に対応するセルの値が「1」に変更され、フィールド604の当該説明変数候補に対応するセルの値が再生成の原因となった説明変数を示す値に変更される。説明変数候補が抽出の対象外となった場合、フィールド605の当該説明変数候補に対応する値が「1」に変更される。
図6の例は、説明変数候補「病名B」及び「病名Zの治療薬剤」が抽出対象の説明変数に決定され、概念構造において、抽出対象となった説明変数「病名B」を下位概念に含む説明変数候補「病名群α」が再生成対象であることを意味する。また、図6の例は、説明変数「病名群α」は、病名Bを含まない説明変数として再生成されることを意味する。
また、図6の例は、抽出対象に決定された説明変数「病名Zの治療薬剤」の下位概念である説明変数候補「薬剤群θ」が抽出対象外となり、抽出対象外となった説明変数候補「薬剤群θ」の下位概念である説明変数候補「薬剤A」も抽出対象外となったことを示す。
図7は、データセット作成部109により作成されたデータセットを格納するデータセット格納テーブル700の例である。データセット格納テーブル700は、例えば、レコードの識別子を格納するフィールド701と、説明変数生成部108により生成された1以上の説明変数の値を格納するフィールド702と、目的変数生成部107により生成された目的変数の値を格納するフィールド703と、を含む。図7の例における、レコード識別子は患者IDであり、説明変数は「病名A」、「病名B」、「病名C」、「病名群α」、及び「病名Zの治療薬剤」を含む。
図8は、説明変数候補の再生成処理及び説明変数の抽出処理が実施された後のデータセットを格納するデータセット格納テーブル700の例である。図8において、フィールド702は抽出対象に決定した1以上の説明変数の値を格納する。図8における、説明変数「病名群α(病名Bを除く)」は、概念構造テーブル200が示す病名群αから病名Bを除いた病名群を示し、説明変数再生成部111により「病名群α」から再生成された説明変数である。
図9は、関連度算出部110により算出された説明変数間の関連度を格納する関連度テーブル900の例である。関連度テーブル900は、例えば、未抽出の説明変数候補の名称を格納するフィールド901と、未抽出の説明変数候補と目的変数との関連度を格納するフィールド902と、未抽出の説明変数候補と既抽出の説明変数との関連度を格納するフィールド903と、を含む。なお、既抽出の説明変数が存在しない場合には、図9の例のように、フィールド903は「NULL」を格納する。
図10は、説明変数再生成部111により説明変数「病名B」が抽出され、「病名B」の上位概念である説明変数候補が「病名群α」が「病名群α(病名Bを除く)」として再生成された後に、関連度算出部110が算出した関連度を格納する関連度テーブル900の例である。
図10の例において、関連度テーブル900は、既抽出の説明変数「病名B」に対応するレコードを含まない。また、図10の関連度テーブル900の例は、説明変数候補「病名群α」が、再生成された説明変数候補「病名群α(病名Bを除く)」に変更されている点において、図9の関連度テーブル900の例と異なる。図10の例において、フィールド903は、関連度算出部110により算出された、各説明変数候補と既抽出の説明変数「病名B」との関連度を格納する。
以下、本実施例の変数最適化システム100の動作例を説明する。図11は、本実施例の変数最適化システム100の動作例を示すフローチャートである。まず、データ抽出部106は、統合データベース113に蓄積された患者データをメモリ103に読み出す(S1101)。患者データとは、例えば、患者を識別する情報、患者に対応する処方薬の情報、及び患者に対応する検査結果の情報等の患者に関するデータの総称である。
なお、以下、データ抽出部106は、患者情報テーブル300、検査情報テーブル400、及び処方情報テーブル500を患者データとして用いる例を説明する。データ抽出部106は、ステップS1101において、統合データベース113に含まれる全患者データを読み出してもよいし、ユーザによって指定された患者の患者データのみを読み出してもよい。
次に、データ抽出部106は、概念構造データベース114から概念構造データとして、例えば、概念構造テーブル200を読み出し、メモリ103に記憶する(S1102)。データ抽出部106は、ステップS1102において、概念構造データベース114に含まれる全データを読み出してもよいし、一部の概念構造を読み出してもよい。次に、表示画面生成部105は、例えば、通信部104を介して入出力端末130に分析オプション受付画面を表示し、各種分析オプションの入力を受け付ける(S1103)。
図14は、分析オプション受付画面の例である。分析オプション受付画面1400は、例えば、使用する概念構造を選択するためのエリア1401と、抽出対象に含まれる説明変数をユーザが指定するためのエリア1402と、関連度の算出方式を設定するためのエリア1403と、説明変数の抽出・再生成方式を設定するためのエリア1404と、目的変数の作成方式を設定するためのエリア1405と、抽出する説明変数の数を設定するためのエリア1406と、知識データを用いた概念構造を作成するためのボタン1407と、概念構造を編集するためのボタン1408と、分析実行ボタン1409と、を含む。
エリア1401内のチェックボックスは、エリア1401に表示される複数の概念構造から使用する概念構造を選択するために用いられる。エリア1402内のラジオボタンは、関連度の値に関わらず、再生成後のデータセットに強制的に含める説明変数の有無を指定するために用いられる。エリア1401内のプルダウンリスト14021は、「あり」のラジオボタンが選択された場合において、ユーザが指定したい説明変数が含まれる概念構造を選択するためのプルダウンリストである。
エリア1401内の説明変数検索ボックス14022は、検索対象の説明変数名の入力を受け付け、検索された説明変数を指定するための検索ボックスである。エリア1402内の説明変数リスト表示エリア14023のチェックボックスは、指定する説明変数を決定するために用いられる。図14に示した例は、「病名A」と「病名群β」が抽出対象の説明変数として指定されていることを示す。なお、例えば、エリア1402においてある説明変数が指定された場合、当該説明変数の下位概念である説明変数は選択不可能になるよう、エリア1402は構成されている。
エリア1403内のプルダウンリスト14031は、関連度の算出方法を選択するためのプルダウンリストである。図14の例は、相関係数を用いて関連度が算出されることを示す。エリア1403内のラジオボタンは、既抽出の説明変数との関連度の算出及び既抽出の説明変数との関連度が閾値以上となった説明変数を除外する処理、の実施有無を指定するために用いられる。エリア1403に含まれるエリア14032内のアップダウンボタンは、ラジオボタン「あり」が選択された場合において、除外処理を実施する際の関連度の閾値を設定するために用いられる。また、エリア14032は、に閾値の入力を直接受け付けてもよい。
エリア1404内のチェックボックスそれぞれは、「抽出された説明変数の下位概念を対象外とする」処理を実施するか否か、及び「抽出された説明変数の上位概念は再生成された説明変数のみを対象とする」処理を実施するか否か、それぞれを指定するために用いられる。
「抽出された説明変数の下位概念を対象外とする」のチェックボックスが有効である場合、抽出された説明変数の下位概念に属する説明変数候補は抽出対象外となる。例えば、「病名群Zの治療薬剤」が抽出された場合、「病名群Zの治療薬剤」の下位概念である「薬剤群θ」及び「薬剤群ψ」、「薬剤群θ」の下位概念である「薬剤A」及び「薬剤B」、並びに「薬剤群ψ」の下位概念が抽出対象外となる。
「抽出された説明変数の上位概念は再生成された説明変数のみを分析対象とする」のチェックボックスが有効でない場合、抽出された説明変数を含む上位概念の説明変数と、抽出された説明変数を含まない説明変数候補として再生成された説明変数候補と、の両方が説明変数候補に含まれる。
例えば、説明変数「病名B」が抽出されたとき、再生成された説明変数「病名群α(病名Bを除く)」と、もとの説明変数「病名群α」、の両方が説明変数候補となる。一方、当該チェックボックスが有効である場合に、説明変数「病名B」が抽出されたとき、説明変数候補群は「病名群α」を含まない。
エリア1404内のラジオボタンは、説明変数の抽出優先度を選択するために用いられる。「目的変数との関連度」に対応するラジオボタンが選択された場合、目的変数との関連度が高い説明変数が優先的に抽出される。「既抽出の説明変数との関連度」に対応するラジオボタンが選択された場合、既抽出の説明変数との関連度が低い説明変数が優先的に抽出される。
エリア1406内のアップダウンボタンは、抽出対象の説明変数の数を設定するために用いられる。なお、エリア1406が、抽出対象の説明変数の数の入力を直接受け付けてもよい。なお、エリア1406で指定される抽出対象の説明変数の数は、エリア1402で指定された説明変数の数を含む数であってもよいし、含まない数であってもよい。
エリア1405内のラジオボタンは、作成する目的変数の種類を指定するために用いられる。目的変数の種類は、例えば、2値変数、カテゴリ変数、及び量的変数等である。2値変数は、例えば、分析目的のイベントの発生有無を「0」又は「1」で表す変数のように、2つの値のいずれかをとる変数である。
カテゴリ変数は、例えば、分析目的のイベントの重要度などを「低」、「中」、「高」又は「1」、「2」、「3」で表す変数のように、複数のカテゴリ値をとり得る変数である。量的変数は、分析目的のイベントに関する量的な情報を「1」、「10」、「100」等の値で表す変数である。例えば、カテゴリ変数は順序尺度又は名義尺度であり、カテゴリ変数を目的変数としたとき、カテゴリ変数の値域は3つ以上の値を含む。また、例えば、量的変数は間隔尺度又は比例尺度であり、量的変数を目的変数としたとき、量的変数の値域は3つ以上の値を含む。
カテゴリ変数又は量的変数が目的変数として指定された場合、関連度算出部110は、説明変数と目的変数の関連度を算出する際に、例えば値域が0以上1以下である所定の関数を用いて、目的変数の値を「0」から「1」の範囲に標準化してもよい。
エリア1405内の複数のプルダウンは、作成する目的変数の種類が指定された後に、作成する目的変数の詳細な設定を行うために用いられる。図14の例では、3つのプルダウンを指定することで、「退院後の30日以内におけるイベントXXの有無」を示す目的変数を作成する例を示しており、イベントXXがある場合には目的変数として「1」を、それ以外の場合には目的変数として「0」を格納する事を示している。
なお、エリア1405内のプルダウン14051において選択可能な項目は、エリア1405内のラジオボタンで指定された目的変数の種類に対応する。つまり、例えば、2値変数に対応するラジオボタンが選択された場合、プルダウン14051において、2値変数を示す項目のみが選択可能である。また、2値変数に対応するラジオボタンが選択された場合のみ、エリア1405内の入力エリア14052は「イベントあり時」の状態を示す値の入力を受け付ける。
ボタン1407は、概念構造編集部112に、知識データを用いた概念構造テーブル200の作成を実行させるためのボタンである。医学論文、薬剤の添付文書、薬剤や病名などのマスタ情報、及び各種ガイドラインは、いずれも知識データの例である。知識データは、例えば、補助記憶装置116、病院情報システム120、又は変数最適化システム100に接続された外部のデータベース等に格納されている。
以下、「病名Zの治療行為として薬剤Zを使用した」という記述が含まれる医学文献を知識データとして用いた、概念構造編集処理の一例を説明する。概念構造編集部112は、例えば、当該記述に対して所定のルールに基づく構文解析を実行して、当該記述中の名詞句を特定する。概念構造編集部112は、例えば、所定の辞書に含まれる表現が当該記述に含まれるか否か等の所定のルールに基づいて、当該記述中の複数の名詞句が上位概念と下位概念の関係にあるかを判定する。当該所定の辞書及び当該所定のルールは、例えばメモリ103又は補助記憶装置116に予め格納されている。概念構造編集部112は、当該記述の例においては、「病名Zの治療行為」が「薬剤Z」の上位概念であると判定する。
概念構造編集部112は、例えば、概念構造名称を、例えば、ユーザからの指示に従って決定し、決定した概念構造名称をフィールド201に、概念「病名Zの治療行為」をフィールド202に、概念「病名Zの治療行為」をフィールド203に、概念「薬剤Z」をフィールド204に、それぞれ格納する。当該処理により、概念構造テーブル200において、「病名Zの治療行為」の下位概念として「病名Zの治療薬剤」、「病名Zの治療薬剤」の下位概念として「薬剤Z」が生成される。
また、概念構造編集部112は、例えば、概念構造テーブル200を参照して、「薬剤Z」が特定の薬剤群に属すると判定した場合、「病名Zの治療薬剤」と「薬剤Z」の間に、例えば概念「薬剤群Z」を含む概念構造を作成してもよい。知識データとして添付文書を用いた場合には、概念構造編集部112は、例えば、添付文書から薬効分類名と薬剤の名称を抽出することにより、「薬効分類XX」の下位概念として「薬剤名XX」を生成する。
なお、例えば、概念構造テーブル200において、例えば「病名Zの治療行為」が「薬剤Z」の下位概念として既に登録されている場合のように、知識データが示す概念の上位下位の関係と、概念構造テーブル200が示す概念の上位下位の関係と、が異なる場合、概念構造編集部112は、例えば、ユーザの指示に従って概念構造テーブル200を編集してもよいし、「薬剤Z」が「病名Zの治療行為」の下位概念となるように概念構造テーブル200を編集してもよい。
図14の説明に戻る。ボタン1408は、例えば、概念構造テーブル200の内容を含む概念構造編集画面を、表示画面生成部105に作成させ、入出力端末130等に表示させるためのボタンである。ユーザは、例えば、概念構造編集画面を介して、概念構造中の各概念レベルに含まれる概念の編集や、概念構造の追加及び削除などを行う。
図11の説明に戻る。目的変数生成部107は、入出力端末130から分析実行ボタン1409が選択された旨の通知を受信すると、ステップS1103で受け付けた各種分析オプションにと、ステップS1101で読み出した患者データとに基づいて、目的変数を生成する(S1104)。
エリア1405において、「退院後の30日以内におけるイベントXXの有無」を示す2値変数である目的変数を作成すること、及びイベントXXがある場合の当該2値変数の値が「1」であることが指定されている場合における、ステップS1104の処理の例を説明する。
まず、目的変数生成部107は、患者情報テーブル300から退院経験のある患者の退院日の情報を取得する。次に、目的変数生成部107は、患者情報テーブル300、検査情報テーブル400、及び処方情報テーブル500などを参照して、各患者の退院日から30日以内にイベントXXの発生の有無を検証することにより、各患者の目的変数の値を決定する。
なお、エリア1405で指定され得る目的変数それぞれに対する、各患者における当該目的変数の値を決定するために目的変数生成部107が参照する患者データの情報、及び当該目的変数の値の決定方法は、例えば、予め定められている。
目的変数生成部107は、各患者の患者IDをフィールド701に格納する。また、目的変数生成部107は、各患者について、当該患者の退院日から30日以内にイベントXXが発生している場合には当該フィールド703の当該患者に対応するセルに「1」を、当該患者の退院日から30日以内にイベントXXが発生していない場合にはフィールド703の当該患者に対応するセルに「0」を格納する。目的変数の作成において、前述したテーブル以外の情報が利用されてもよい。
次に、説明変数生成部108は、説明変数候補を生成する(ステップS1105)。具体的には、例えば、説明変数生成部108は、エリア1401において選択された概念構造に含まれる概念を概念構造テーブル200から取得する。説明変数生成部108は、取得した概念のうち、ステップS1101で読み出した患者データの項目に含まれる各概念を説明変数候補に決定する。説明変数生成部108は、説明変数候補の名称を、説明変数候補テーブル600のフィールド601、及び関連度テーブル900のフィールド901にそれぞれ格納する。
次に、データセット作成部109は、データセットを作成し、データセット格納テーブル700に作成したデータセットを登録する(S1107)。具体的には、例えば、データセット作成部109は、説明変数候補の変数の名称それぞれをデータセット格納テーブルのフィールド702の項目名欄に格納する。データセット作成部109は、当該変数それぞれに対応する各患者の値を患者データから取得し、フィールド702の対応するセルに格納する。
次に、関連度算出部110は、ステップS1104で作成した目的変数と、ステップS1105で作成した説明変数候補それぞれと、の関連度を算出する(S1107)。
図12は、関連度算出部110による関連度算出処理、即ちステップS1107の処理の詳細の一例を示すフローチャートである。関連度算出部110は、データセット格納テーブル700、説明変数候補テーブル600、をメモリ103上に読み出す(S1201)。次に、関連度算出部110は、全ての説明変数候補について目的変数との関連度を算出したか否かを判定する(S1202)。
関連度算出部110は、目的変数との関連度が算出されていない説明変数候補があると判定した場合(S1202:未処理あり)、当該説明変数候補から1つの説明変数候補を選択し、選択した説明変数候補と目的変数との関連度を算出する(S1203)。
関連度算出部110は、例えば、データセット格納テーブル700から当該選択した説明変数候補に対応する列の値をそのまま抽出することにより生成した列ベクトルと、データセット格納テーブル700から目的変数に対応する列の値をそのまま抽出することにより生成した列ベクトルと、の相関係数を、関連度として算出する。また、関連度算出部110は、例えば、当該2つの列ベクトルの非線形相関係数(Maximum information coefficient)等を、関連度して算出してしてもよい。
次に、関連度算出部110は、ステップS1203において選択した説明変数候補と、ステップS1203にて算出した関連度と、を紐付けて、関連度テーブル900のフィールド901及びフィールド902に格納する(S1204)。関連度算出部110は、全ての説明変数候補について目的変数との関連度を算出と判定した場合(S1202:全て終了)、図12の処理を終了し、図11のステップS1108に遷移する。
図11の説明に戻る。説明変数再生成部111は、作成したデータセットと、ステップS1104で作成した目的変数と、ステップS1105で作成した説明変数候補と、ステップS1107で算出した関連度と、ステップS1102で読み出した概念構造と、に基づき、説明変数候補の抽出及び再生成を行う(S1108)。
図13は、説明変数再生成部111による、説明変数抽出及び再生成処理、即ちステップS1108の処理の詳細、の一例を示すフローチャートである。説明変数再生成部111は、概念構造テーブル200、データセット格納テーブル700、及び関連度テーブル900をメモリ103に読み出す(S1301)。
次に、説明変数再生成部111は、ステップS1103の各種分析オプションの受付において、エリア1402の説明変数の抽出指定があるか否かを判定する(S1302)。説明変数再生成部111は、説明変数の抽出指定があると判定した場合(S1302:Yes)、エリア1402で指定された説明変数を抽出対象に設定し(S1303)、ステップS1308に遷移する。
説明変数再生成部111は、説明変数の抽出指定がないと判定した場合(S1302:No)、既抽出の説明変数があるか否か、即ちステップS1308の処理が少なくとも1回行われたか否かを判定する(S1304)。以下、説明変数候補テーブル600において、抽出フラグ及び対象外フラグが共に0である説明変数候補を、抽出説明変数候補と呼ぶ。
説明変数再生成部111は、既抽出の説明変数がないと判定した場合(S1304:No)、説明変数候補テーブル600と関連度テーブル900とを参照して、例えば、ステップS1107で算出した目的変数との関連度が最大の抽出説明変数候補を抽出対象の説明変数に決定し(S1305)、ステップS1308に遷移する。
ステップS1305において関連度が最大の複数の抽出説明変数候補が存在した場合、説明変数再生成部111は、例えば、当該複数の抽出説明変数候補からランダムに選択した1つの抽出説明変数候補を抽出対象に決定する。また、表示画面生成部105が、当該複数の抽出説明変数候補を、入出力端末130に出力し、ユーザに抽出対象を選択させてもよい。
説明変数再生成部111は、既抽出の説明変数があると判定した場合(S1304:Yes)、既抽出の説明変数と抽出説明変数候補それぞれとの関連度を算出し、フィールド903に格納する(S1306)。複数の既抽出の説明変数が存在する場合には、説明変数再生成部111は、例えば、各既抽出の説明変数と抽出説明変数候補との関連度の総和を、当該複数の既抽出の説明変数と当該抽出説明変数候補との関連度として算出する。また、総和の代わりに、平均、中央値、などの統計値が用いられてもよい。
次に、説明変数再生成部111は、ステップS1306で算出した関連度が所定の閾値以下であり、かつ目的変数と関連度が最大である抽出説明変数候補を、抽出対象の説明変数に決定する(S1307)。なお、ステップS1307において、ステップS1306で算出した関連度が所定の閾値以下である抽出説明変数候補が存在しない場合、説明変数再生成部111は、例えば、処理を終了する。
ステップS1307において、ステップS1306で算出した関連度が所定の閾値以下であり、かつ関連度が最大である、複数の抽出説明変数候補が存在した場合、説明変数再生成部111は、例えば、当該複数の抽出説明変数候補からランダムに選択した1つの抽出説明変数候補を抽出対象に決定する。また、表示画面生成部105が、当該複数の抽出説明変数候補を、入出力端末130に出力し、ユーザに抽出対象を選択させてもよい。
なお、エリア1403内の「なし」に対応するラジオボタンが選択されている場合は、説明変数再生成部111は、ステップS1306における関連度を算出せず、ステップS1307において、目的変数と関連度が最大である抽出説明変数候補を、抽出対象の説明変数に決定する。
次に、説明変数再生成部111は、説明変数候補テーブル600の、抽出対象に決定した説明変数の抽出フラグの値を「1」に変更する、即ち抽出対象に決定した説明変数を抽出説明変数候補から除外する(S1308)。このとき、説明変数再生成部111は、関連度テーブル900から、抽出対象に決定した説明変数の情報を除外してもよい。また、説明変数再生成部111は、抽出対象に決定した説明変数の、抽出された順番を示す情報を説明変数候補テーブル600に格納してもよい。
次に、説明変数再生成部111は、説明変数候補の再生成処理を実行する(S1309)。具体的には、説明変数再生成部111は、例えば、概念構造テーブル200を参照し、抽出対象の説明変数の上位概念である全ての説明変数候補を再生成対象の説明変数候補に決定し、説明変数候補テーブル600の再生成対象の説明変数候補に対応する再生成フラグの値を1に変更する。
説明変数再生成部111は、再生成対象の説明変数候補それぞれを、抽出対象の説明変数を含まない説明変数として再生成する。具体的には、説明変数再生成部111は、関連度テーブル900のフィールド901における再生成対象の説明変数候補の名称を、再生成された説明変数の名称に変更する。また、説明変数再生成部111は、説明変数候補テーブル600のフィールド604の、再生成対象の説明変数候補に対応するセルに抽出対象の説明変数の名称を格納する。
また、説明変数再生成部111は、データセット格納テーブル700のフィールド702に再生成後の説明変数候補の列を追加する。説明変数再生成部111は、例えば、概念構造テーブル200が示す概念構造を参照して、再生成対象の説明変数の下位概念であって、かつ抽出対象に決定した説明変数候補の兄弟ノードである、説明変数候補を特定する。説明変数再生成部111は、例えば、フィールド702に格納された当該特定した説明変数候補の値に基づいて、追加した列の値を決定する。
なお、エリア1404内の「抽出された説明変数の上位概念は再生成された説明変数のみを分析対象とする」のチェックボックスが有効でない場合、説明変数再生成部111は、説明変数候補テーブル600のフィールド604の、再生成対象の説明変数候補に対応する再生成フラグ及び除外変数の値を変更しない。また、このとき、説明変数再生成部111は、再生成対象の説明変数候補に対応するレコードを説明変数候補テーブル600に追加し、当該レコードのフィールド602〜605に初期値を格納する。
以下、「病名B」が抽出対象に決定した場合における、説明変数候補の再生成処理の例を説明する。説明変数再生成部111は、概念構造テーブル200を参照し、「病名B」の上位概念である説明変数候補「病名群α」及び「病名群1」を再生成対象の説明変数候補に決定する。説明変数再生成部111は、「病名群α」から「病名B」を除いた説明変数候補「病名群α(病名Bを除く)」、及び「病名群1」から「病名B」を除いた説明変数候補「病名群1(病名Bを除く)」を再生成する。
説明変数再生成部111は、関連度テーブル900のフィールド901の、「病名群α」を「病名群α(病名Bを除く)」に、「病名群1」を「病名群α(病名Bを除く)」に変更する。また、説明変数再生成部111は、説明変数候補テーブル600の「病名群α」及び「病名群1」に対応するフィールド604のセルそれぞれに、抽出対象の説明変数である「病名B」を格納する。
また、説明変数再生成部111は、データセット格納テーブル700のフィールド702に「病名群α(病名Bを除く)」、「病名群1(病名Bを除く)」の列を追加する。説明変数再生成部111は、概念構造テーブル200を参照して、「病名群α」の下位概念であって、「病名B」の兄弟ノードである、「病名A」及び「病名C」を特定する。
説明変数再生成部111は、データセット格納テーブル700から、各患者の「病名A」及び「病名C」の値を取得する。説明変数再生成部111は、当該患者の「病名A」及び「病名B」の値が全て0であった場合に当該患者の「病名群α(病名Bを除く)」の値を0に決定し、その他の場合は1に決定する。説明変数再生成部111は、同様の方法で、各患者の「病名群1(病名Bを除く)」の値を決定する。
次に、説明変数再生成部111は、ステップS1309で再生成された説明変数候補それぞれと目的変数との関連度を算出し、関連度テーブル900の再生成された説明変数候補それぞれに対応するフィールド902のセルに登録する(S1310)。
次に、説明変数再生成部111は、概念構造テーブル200を参照して、抽出対象の説明変数の下位概念の全ての説明変数候補を特定し、特定した説明変数候補を抽出対象外とする(S1311)。具体的には、例えば、説明変数再生成部111は、説明変数候補テーブル600の特定した説明変数候補の対象外フラグを「1」に変更する。なお、エリア1404の「抽出された説明変数の下位概念を対象外とする」のチェックボックスが有効でない場合、説明変数再生成部111は、ステップS1311の処理を実行しない。
次に、説明変数再生成部111は、説明変数候補テーブル600に対象外フラグが「0」の説明変数候補が存在するか否かを判定する(S1312)。説明変数再生成部111は、対象外フラグが「0」の説明変数候補が存在しないと判断した場合(S1312:No)、図13の処理を終了し、ステップS1109に遷移する。説明変数再生成部111は、対象外フラグが「0」の説明変数候補があると判定した場合(1312:Yes)、ステップS1313に遷移する。
説明変数再生成部111は、既抽出の説明変数の数がエリア1406の設定値未満であるか否かを判定する(S1313)。説明変数再生成部111は、既抽出の説明変数の数が設定値以上であると判定した場合(S1313:No)、図13の処理を終了し、ステップS1109に遷移する。説明変数再生成部111は、既抽出の説明変数の数が設定値未満であると判定した場合(S1313:Yes)、ステップS1304に戻る。
なお、エリア1402において複数の説明変数が抽出対象に指定されている場合、説明変数再生成部111は、例えば、ステップS1303及びステップS1308〜S1313の処理を、当該複数の説明変数それぞれに対して順に実行する。
図11の説明に戻る。データセット作成部109は、説明変数候補テーブル600に基づきデータセットの再作成を行い、データセット格納テーブル700に、再作成したデータセットを登録する(S1109)。具体的には、例えば、データセット作成部109は、フィールド702が、説明変数候補テーブル600における抽出フラグが1である説明変数の情報からなる、データセット格納テーブル700を作成する。
次に、表示画面生成部105は、例えば、概念構造テーブル200及び説明変数候補テーブル600の情報に基づいて、分析処理結果を表示する表示画面を生成する(S1110)。表示画面の詳細については後述する。表示画面生成部105は、ステップS1110で生成した画面を、出力部102を介して入出力端末130に表示する(S1111)。
なお、データセット作成部109は、ステップS1109で再作成したデータセットに含まれる目的変数及び抽出された説明変数と、当該抽出された説明変数それぞれと当該目的変数との関連度と、を含む変数セットを、例えば、メモリ103又は補助記憶装置116に記憶してもよい。
次回以降の図11の処理におけるステップS1104において、変数セットに含まれる目的変数と同一の目的変数が指定された場合、説明変数再生成部111は、例えば、当該変数セットにおける関連度が所定の閾値以上である説明変数を、ステップS1303における抽出指定の説明変数に含めてもよい。
即ち、説明変数再生成部111は、当該変数セットにおける関連度が所定の閾値以上である説明変数については、新たに関連度を算出することなく抽出対象の説明変数に決定する。なお、当該変数セットにおける関連度が所定の閾値以上である説明変数が再生成された説明変数を含む場合、ステップS1308において当該再生成された説明変数に対応する元の説明変数候補の抽出フラグを1に変更する。
これにより、説明変数再生成部111は、同じ目的変数に対応する説明変数を再度抽出する処理において、当該目的変数に対する説明力の高い説明変数を抽出することができ、かつ当該処理を高速に実行することができる。
図15は、ステップS1111で入出力端末130に表示される分析処理結果表示画面の例である。表示画面1500は、例えば、抽出説明変数の一覧を表示するエリア1501と、抽出説明変数と概念構造の関係図を表示するエリア1502と、を含む。
エリア1501は、例えば、抽出された説明変数(即ち抽出フラグが1である説明変数)、当該説明変数それぞれの抽出された順番、当該説明変数それぞれと目的変数との関連度と、を表示する。図15の例では、エリア1501は、抽出された説明変数として、抽出された順番に「病名B」、「病名Zとの治療薬剤」、「病名群α(病名Bを除く)」を表示している。
エリア1502は、例えば、抽出された説明変数と、当該説明変数が抽出されたために再生成された説明変数と、除外対象である説明変数と、を含む概念構造を表示する。エリア1502において、点線は、再生成された説明変数に対応する再生成前の説明変数と、当該再生成前の説明変数と同一の概念構造に属し、かつ隣接する階層に属する説明変数と、を結ぶ。また、エリア1502において、実線は、同一の概念構造に属し、かつ隣接する階層に属する説明変数同士、を結ぶ。
ユーザは、表示画面1500を参照することにより、表示されている抽出説明変数が、概念構造のどの位置に含まれる説明変数であるか、どの説明変数が除外対象となったか、どの説明変数が再生成されたか等を容易に把握できる。ひいては、ユーザは、説明変数の抽出及び再生成が妥当であったかどうか等の検証を容易に行うことができる。
以上のように、変数最適化システム100は、目的変数との関連度が高い説明変数を抽出対象に決定することにより目的変数に対する説明力が高い説明変数を抽出することができる。また、変数最適化システム100は、抽出対象の上位概念の説明変数候補を、抽出対象の説明変数を含まない説明変数候補として再生成する。当該処理により、変数最適化システム100は、新たな概念を自動的に生成し、生成した新たな概念を説明変数候補とすることができる。
また、再生成された説明変数候補は、抽出対象の説明変数を含まない概念であるため、変数最適化システム100が、再生成された説明変数候補を抽出対象に選択した場合であっても、抽出された説明変数が持つ意味の重複を抑制できる。また、再生成された説明変数候補は、特定の病名を含まない病名群のように、ユーザにとって医学的意味の把握が容易な変数である。
また、変数最適化システム100は、抽出対象の説明変数の下位概念を抽出対象外とすることで、抽出処理の効率化が行えるだけでなく、同一の意味を含む説明変数を除外することが可能できる。ひいては、変数最適化システム100は、同一の意味を持つ異なる説明変数がデータセットから除外することができる、つまり医学的意味の把握が容易なデータセットを作成することができる。
また、変数最適化システム100は、既抽出の説明変数との関連度が高い説明変数を除外することで、多重共線性が発生しにくい説明変数の抽出を行うことが可能となり、目的の事象を予測及び検証に適したデータセットを生成することができる。つまり、変数最適化システム100は、目的の事象の予測精度及び検証精度を向上させるための、説明変数を選択することができる。
なお、本発明は上述した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
また、図面には、実施例を説明するために必要と考えられる制御線及び情報線を示しており、必ずしも、本発明が適用された実際の製品に含まれる全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。