本実施例1では、予め収集した蓄積情報から推計モデルを構築する際に、推計対象である目的変数と関連の強いカテゴリ変数に関して、同一の値を有するレコード毎にデータを分割し、それぞれの値に対応した推計モデルを構築する推計モデル構築システムの例を説明する。
以下、本実施例1の推計モデル構築システムの構成について説明する。図1は、本実施例1の推計モデル構築システムの構成を示すブロック図である。本実施例1の推計モデル構築システムは、データ分析部101およびデータベース120を有する。データ分析部101は、入力部102、出力部103、演算装置104、メモリ105および記憶媒体106を有する。
入力部102は、マウスや、キーボードなどのヒューマンインターフェースであり、データ分析部101への入力を受け付ける。出力部103は、推計モデル構築システムによる演算結果を出力するディスプレイやプリンタである。記憶媒体106は、データ分析部101によるデータ分析処理を実現する各種プログラム、及びデータ分析処理の実行結果等を格納する記憶装置であり、例えば、不揮発性記憶媒体(磁気ディスクドライブ、不揮発性メモリ等)である。
メモリ105には、記憶媒体106に格納されているプログラムが展開される。演算装置104は、メモリ105にロードされたプログラムを実行する演算装置であり、例えば、CPU、GPUなどである。以下に説明する処理及び演算は、演算装置104が実行する。
本実施例1の推計モデル構築システムは、一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
演算装置104によって実行されるプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワークを介して各サーバに提供され、非一時的記憶媒体である不揮発性記憶装置に格納される。このため、計算機システムは、リムーバブルメディアを読み込むインターフェースを含むとよい。
データ分析部101では、記憶媒体106に格納されたデータ整形部107と、推計モデル構築部108と、将来推計部111と、推計情報集約部112と、関連カテゴリ関連付け部113とを機能させる。
演算装置104は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、演算装置104は、データ整形プログラムに従って処理することでデータ整形部107として機能する。他のプログラムについても同様である。さらに、演算装置104は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
以下、本実施例1で扱うデータの種類と構築する推計モデルについて説明する。本実施例1では、データとして、個人毎のレセプト情報および特定健診情報が時系列で含まれたデータを用いる例を説明する。
構築する推計モデルの推計対象としては、将来の疾病に関する個人毎の医療機関の受診リスクと医療費の期待値、および、それらを統計的に集約した集団の医療機関受診人数と医療費、を推計する例を説明する。
まずデータ整形部107について説明する。データ整形部107は、データ記憶部121に記憶されたレセプト情報および特定健診情報の個人毎の診療報酬明細書等の個人毎の医療及び健康に関する情報を、特定の期間毎、かつ個人毎に集約した推計用の整形データ201を構築して、整形データ記憶部122に記憶する。なお、本実施例1では整形データ201を、個人毎の医療及び健康に関する蓄積情報として扱う。
なお、各記憶部121〜128に格納される情報はデータベース120に限定されるものではなく、データ分析部101からアクセス可能な記憶部や記憶装置に格納されても良い。
図2はデータ整形部107で整形した推計用の整形データの一例を説明する図である。本実施例1では、例として、個人毎のレセプト情報等の医療に関する情報を年度毎に集約した例を説明する。
201は整形データ全体を現す情報である。以下、整形データ201に含まれる情報を説明する。基本情報210は、個人毎の基本的なプロファイル情報を含む情報である。
ここでは例として、個人ID211と、性別212と、年齢213とを含む例を示している。個人ID211は、整形データ201に含まれる個人毎に一意に割り当てられた個人IDである。性別212は、個人毎の性別を表す情報である。例えば、男性を0、女性を1、などのように、特定の変数に割り当てられたカテゴリ変数として表すことができる。年齢213は、個人毎の年齢を表す情報である。例えば、35、21、50、のように、整数として表すことができる。
図中220は年度毎に集約された個人毎の情報を含む年度情報である。ここでは、2014年度の情報を集約した例を示している。特定健診情報221は、当該の年度に受けた特定検診に関する情報を含み、例えば、BMI(Body Mass Index)や、血糖、血圧などの情報が含まれる。図中ではBMI223の情報を例として表示している。
BMI223は2014年度に計測されたBMIの情報を含む。ここに含まれる情報は特定健診における問診の情報、例えば、運動習慣に関するアンケート情報や、飲酒、喫煙などに関するアンケート情報を含んでもよい。この場合、データとしては、例えば、一週間の飲酒の量ごとに割り当てられた記号や数値番号を含むカテゴリ変数としてデータが格納される。
レセプト情報222は、当該の年度に発生したレセプトに関する情報を含む。例えば、レセプトに含まれる傷病名に基づき定義された、傷病名毎のレセプトの有無、レセプトの発生数、関連する医療費、などの情報が含まれる。また傷病名を公知の集約情報に基づき疾病にグルーピングした、疾病毎の情報などが含まれる。図中では例として、糖尿病と、糖尿病医療費と、高血圧症、に関する情報が示されている。
糖尿病224は、糖尿病に関するレセプトの発生を示す情報で、図示の例では、当該の年度に糖尿病に関連するレセプトが少なくとも一つ以上発生した場合を1、発生しなかった場合を0としている。糖尿病医療費225は、糖尿病に関するレセプトに含まれる医療費を示す情報である。図示の例では、当該の年度に糖尿病に関連して発生した医療費に関する情報を含んでいる。
高血圧症226は、高血圧症に関するレセプトの発生を示す情報で、図示の例では、当該の年度に高血圧症に関連するレセプトが少なくとも一つ以上発生した場合を1、発生しなかった場合を0としている。
図中230は年度毎に集約された個人毎の情報を含む年度情報である。図示の例では、2015年度の情報を集約した例を示しているが、集計方法は2014年度の年度情報220と同様である。BMI231は、2015年度の特定健診で取得されたBMIの情報を含む情報であり、2014年度の情報と同様の方法でテーブルに格納された情報である。上述の整形データ201を参照することで、個人毎の基本情報と年度毎の健康、医療に関する情報を一度に取得することが可能となる。
次に、推計モデル構築部108について説明する。推計モデル構築部108では、推計モデル構築処理を実行し、整形データ記憶部122に記憶された整形データ201に基づき、推計モデルを構築する。
以下、推計モデル構築部108で処理する推計モデル構築処理の一例について説明をする。処理の詳細な説明にあたり、まず始めに、本処理で構築する推計モデルの概要について説明する。次に、推計モデルの構築時に、モデル構築に使用される情報の特徴に応じて、2つの異なる形態の推計モデルが構築されうることを説明する。最後に、図3に示される処理のフローチャートを用いて、2つの異なる形態の推計モデルのそれぞれが、どのように構築されるか、各ステップを追って、順に説明する。
まず推計モデルの概要について説明する。本実施例1で構築される推計モデルは整形データ201から構築されるものであって、例えば、ひとつの目的変数、ひとつ以上の説明変数、説明変数から目的変数を推定するための変数間の関係性、の情報を含む推計モデルである。
推計モデルとしては、例えば、レセプト情報に基づく2015年度の糖尿病に関する医療機関の受診有無(0または1の値をとる)を目的変数とし、特定健診に基づく2014年度のBMI(連続値をとる)223と、空腹時血糖(連続値をとる)を説明変数とする推計モデルを構築することができる。
この推計モデルは、予め学習した変数間の関連性を用いて、2014年度のBMI223と空腹時血糖の値に基づき、2015年度の糖尿病に関する医療機関の受診有無の確率を推計することができる。
このように、取得時間の異なる情報を説明変数と目的変数に設定した推計モデルを構築することで、将来の情報を推計することが可能となる。本推計モデルの場合、ある年度のBMIと空腹時血糖の情報を入力することで、翌年度の糖尿病の医療機関の受診有無の確率を推計することが可能となる。
例えば、この推計モデルにある個人の2015年度のBMIの情報と空腹時血糖の情報を入力することで、当該個人の2016年度の医療機関の受診有無の値を推計することができる。例えば、受診有無の値を0と1とする場合、0以上かつ1以下の値として、受診有無の確率値を推計することができる。
次に、本実施例1において推計モデル構築部108が構築しうる異なる形態の推計モデルについて説明する。本実施例1において推計モデル構築部108は、推計モデル内の説明変数に含まれるカテゴリ変数の中で、任意のカテゴリ変数に関し、カテゴリ変数の値ごとに、データを分割し、各データからサブモデルを構築する。さらに、このカテゴリ変数の種類に基づき、2つの異なる形態の推計モデルを構築する。
具体的には、当該カテゴリ変数が、推計モデルを適用する際、つまり、推計したい対象年度の情報に対し、それを推計するために推計モデルが必要とする説明変数の情報を入力する際に、当該カテゴリ変数の値が、(1)確定済みの情報である、(2)未確定の情報である、という2つの条件に応じて、異なる2つの形態の推計モデルを構築しておくことができる。以下、推計モデルの2つの形態について説明する。
第1の形態の推計モデルは、説明変数中のカテゴリ変数Cに含まれる情報が、推計モデルの適用時に、確定済みの情報である場合の推計モデルである。例えば、推計モデルとして、2014年度のBMI223と、2014年度の空腹時血糖と、2014年度の糖尿病224の有無、の3つの情報を説明変数とし、2015年度の糖尿病の受診の有無、を目的変数とする推計モデルが一例である。
ここで、推計モデル構築部108は、説明変数に含まれる2014年度の糖尿病224の有無の値を、データを分割してサブモデルを構築するためのカテゴリ変数として選択するとする。この推計モデルは2014年度の情報から2015年度の情報を推計するモデルとして構築されているため、あるN年度の情報を入力とすると、N+1の年度の情報を推計するモデルである。
このとき、カテゴリ変数に指定した2014年度の糖尿病有無の値は、他の説明変数である2014年度のBMIと空腹時血糖の情報と同様に、2014年度の情報であるため、取得済の情報である。例えば、この推計モデルを用いて、2015年度の情報から2016年度の情報を推定する場合、カテゴリ変数である2014年度の糖尿病有無の値には、確定済みである2015年度の情報を入力して推計できる。このように、説明変数のカテゴリ変数Cに含まれる情報が、推計モデルの適用時において、確定済みの情報である場合、第1の形態の推計モデルとして、カテゴリ変数の値が同一(あるいは所定の条件を満たす)のデータ毎に整形データ201を分割し、それぞれの整形データ201からそれぞれのカテゴリ変数の値に対応した推計モデルを構築する。なお、カテゴリ変数の値は、必ずしも同一である必要は無く、整形データ201の種類によっては、近似値(差分が閾値未満)などの所定の条件を満たすデータ毎に整形データ201を分割してもよい。
第2の形態の推計モデルは、説明変数中のカテゴリ変数Cに含まれる情報が、推計モデルの適用時に、未確定の情報である場合の推計モデルである。例えば、推計モデルとして、2014年度の疾病Aの受診有無と、2015年度の疾病Aの受診有無を説明変数とし、2015年度の疾病Bの受診の有無を目的変数とする推計モデルが一例である。
ここで、推計モデル構築部108は、説明変数の中の2015年度の疾病Aの受診有無を、データを分割してサブモデルを構築するためのカテゴリ変数として選択するとする。この推計モデルは2014年度の情報と2015年度の情報から、他の2015年度の情報を推計するモデルとして構築されているため、N年度の情報とN+1年度の情報の入力に基づき、他のN+1年度を推計するモデルである。
このとき、カテゴリ変数に指定した2015年度の疾病Aの受診有無の情報は、目的変数である2015年度の疾病Bの受診の有無の情報と同じ年度に取得される情報である。そのため、この推計モデルを適用する場合には、このカテゴリ変数の情報は未確定であると考えられる。
例えば、この推計モデルを用いて、2015年度の情報から2016年度の情報を推計する場合に、カテゴリ変数である2016年度の疾病Aの情報は、他の説明変数とは異なり、推計時には情報が未確定である。この場合には、まず、カテゴリ変数以外の説明変数の情報に基づき、カテゴリ変数の値を推計する第1の推計モデルを構築する。次に、カテゴリ変数の値が同一のデータ毎に整形データを分割し、それぞれのデータからカテゴリ変数の値に対応した第2の推計モデルを構築する。
例えば前述の例では、第1の推計モデルとして、2014年度の疾病Aの受診有無の情報を説明変数とし、2015年度の疾病Aの受診有無の情報を目的変数とする第1の推計モデルを構築する。次に、第2の推計モデルとして、2014年度の疾病Aの受診有無の情報を説明変数とし、2015年度の疾病Bの受診有無の情報を目的変数とする推計モデルを、2015年度の疾病Aの受診有無の値が同一のデータセットごとにそれぞれ構築する。
この推計モデルを用いて、2015年度の情報から2016年度の情報を推計する場合は、まず、第1の推計モデルを用いて、2015年度の疾病Aの受診有無の情報から、2016年度の疾病Aの受診有無の確率分布を推計する。次に、推計した2016年度の疾病Aの受診有無の確率分布の下で、第2の推計モデルをそれぞれ適用し、それら結果を統合して、最終的な推定結果とする。
これらの2つの異なる形態の推計モデルは、整形データ201に含まれる情報およびデータベース120に記憶された情報に基づき、いずれか適切なものが選択されて構築される。
以下、図3を用いて、推計モデル構築部108で行われる推計モデル構築処理のフローチャートを説明する。
図3は、推計モデル構築部108で実行される推計モデル構築処理の流れを説明するフローチャートである。以下、本フローチャートを用いて、各ステップの処理について説明する。
目的変数・説明変数入力のステップ301では、推計モデル構築部108は、入力部102から入力された情報に基づき、推計対象とする変数を目的変数に決定し、推計に用いる情報を説明変数に決定する。なお、説明変数と目的変数の対応は、事前に説明変数と目的変数の情報がペアとなった情報を推計モデル構築用変数群記憶部127に記憶しておき、予め記憶された情報を読み出すことで決定しても良い。
整形データ読出処理のステップ302では、推計モデル構築部108は、予めデータ整形部107で処理されて、整形データ記憶部122に記憶された推計モデル構築用の整形データ201の情報を、整形データ記憶部122から読み出す。
関連カテゴリ変数読出処理のステップ303では、推計モデル構築部108は、目的変数の情報に基づき、説明変数に含まれる変数の中に、目的変数を推計するにあたり、カテゴリ変数として扱うべき変数が存在するか否かを判定する。この判定は例えば、推計モデル構築部108が、関連カテゴリ記憶部124に記憶された関連カテゴリマトリクス(関連カテゴリ情報)501の情報を用いることで実施される。
図5は、関連カテゴリ記憶部124に記憶された関連カテゴリを選択するためのマトリクスの情報である。関連カテゴリマトリクス501は、推計対象である対象変数の情報を行方向に設定しに、関連する変数に関する情報を列方向に設定する行列であって、各行および列には整形データ201に含まれる項目の情報が含まれる。
行方向の対象変数情報502は、関連を探索する元となる対象変数に関する情報が含まれる。列方向の関連変数情報503は、関連を探索する先となる項目に関する情報が含まれる。
図示の例では、基本情報B、N年度の情報として、A、y1、y2、N+1年度の情報として、A、y1、y2の計7つの情報が含まれる例を示す。行列は0、1、または空の情報を含む。空のセルは、当該セルが含まれる行の対象変数が、当該セルが含まれる列の関連先の変数と、関連を持っていないことを示す。
0が入っているセルは、当該セルが含まれる行の対象変数が、当該セルが含まれる列の関連先の変数と、関連を持っており、また、関連変数が、推定時には既に観測済みの情報、すなわち、推定時には情報が整形データに含まれることを示す。
1が入っているセルは、当該セルが含まれる行の対象変数が、当該セルが含まれる列の変数と関連を持っており、また、推定時には未観測の情報、すなわち、推定時には情報が整形データに含まれていないことを示す。例えば、関連変数が、対象変数よりも過去の年度の情報に関する変数であれば、其の変数は観測済みの情報である。一方、関連変数が、対象変数と同じ年度に取得された情報であれば当該変数は推計時には、未観測の情報である。
関連カテゴリマトリクス501を用いて関連カテゴリを読み出す処理を、図4のフローチャートを用いて説明する。図4は、推計モデル構築処理の関連カテゴリ変数読出処理のステップ303で実行される処理のフローチャートである。
対象変数決定のステップ401では、推計モデル構築部108が、関連を探索する変数を決定する。具体的には、推計モデル構築部108が、推計モデル構築処理の目的変数・説明変数入力のステップ301で決定した推計対象の目的変数を、探索する元の変数として決定する。
関連カテゴリ変数探索のステップ402では、推計モデル構築部108が、関連カテゴリマトリクス501を用いて、対象変数と関連するカテゴリ変数を探索する。具体的には、推計モデル構築部108が、関連カテゴリマトリクス501で対象変数とする変数が含まれる行を探索し、0または1が含まれるセルが存在するか否かを探索する。推計モデル構築部108は、0または1が含まれるセルが存在する場合には、該当する列の関連変数を、対象変数に対応した関連カテゴリ変数として、セル内の値と対応付けて、記憶する。
図5で示す関連カテゴリマトリクスを例に説明する。例えば、対象変数が、N+1年度のAの情報である場合は、推計モデル構築部108が、0が存在するセルを含む列であるN年度のAを関連変数として選択する。例えば、推計モデル構築部108は、対象変数が、N+1年度のy1の情報である場合は、1が存在するセルを含む列であるN+1年度のAの情報を関連カテゴリ変数として選択する。
ステップ403では、推計モデル構築部108が、変数探索のステップ402で記憶された関連カテゴリ変数について判定を実施する。推計モデル構築部108は、選択された関連カテゴリ変数に、推定時に未確定のカテゴリ変数が含まれるか否かを判定し、含まれる場合は、未確定カテゴリ項目読出のステップ404に進む。一方、推計モデル構築部108は、推定時に未確定のカテゴリ変数が、含まれない、または、関連カテゴリがひとつも記憶されていない場合は、関連変数情報集約処理のステップ405に進む。
なお、推計モデル構築部108は、推定時に未確定のカテゴリ変数であるか否かの判定は、関連カテゴリマトリクスから選択した関連カテゴリ変数に対応するセルの値が0であるか1であるかに基づいて判定することができる。
未確定カテゴリ項目対象変数化のステップ404では、推計モデル構築部108が、ステップ402で記憶した関連変数の中で、推定時に未確定のカテゴリ変数を新たな対象変数として設定した後、関連カテゴリ変数探索のステップ402に戻る。以後、全ての未確定の関連カテゴリ変数の処理を完了するまで上記ステップ402、403、404を反復して繰り返す。
ステップ403の判定と、ステップ402、403、404の繰り返し処理について、図5で示す関連カテゴリマトリクス501を例に説明する。
例えば、対象変数が、N+1年度のAである場合は、推計モデル構築部108は、0が存在するセルを含む列であるN年度のAが関連カテゴリ変数として記憶する。関連カテゴリマトリクス501では、0は、対象変数との関連関係において、関連変数が確定済の変数であることを示す。そのため、推計モデル構築部108は、ステップ403の判定でNoと判定し、ステップ405に進む。
一方、対象変数が、N+1年度のy1である場合は、推計モデル構築部108は、1が存在するセルを含む列であるN+1年度のAを関連カテゴリ変数として選択する。関連カテゴリマトリクス501では、1は、対象変数との関連関係において、関連変数が未確定の変数であることを示す。そのため、推計モデル構築部108は、ステップ403の判定においてYesと判定し、ステップ404に進む。
ステップ404では、推計モデル構築部108がN+1年度のAを新たな対象変数に設定する。その後、再度ステップ402において、推計モデル構築部108は、N+1年度のAに関連するカテゴリ変数として、N年度のAを記憶する。この変数は、N+1年度のAとの関連において、セルに0の値を含み、推定時に確定済の変数であるため、推計モデル構築部108は、2回目のステップ404においてNoと判定し、繰り返し処理を終了し、ステップ405に進む。
関連変数情報集約のステップ405では、推計モデル構築部108がこれまでの処理で記憶された関連カテゴリ変数の情報を集約し、関連カテゴリ変数の関連性を示すツリー構造を構築する。
以下、本処理で構築するツリー構造について図6を用いて説明する。図6A、図6Bは、図5の関連カテゴリマトリクス501を用いて、関連カテゴリ変数の読出処理で読み出される変数の関連性の例を表すツリー構造である。
図6Aは、対象変数をN+1年度のAに設定して、関連カテゴリ変数の読出処理を実施した場合のツリー構造である。この例では、対象変数に関連するカテゴリ変数として、N年度のAがひとつ読み出されている。図6Aは、関連性を表すツリー構造であって、図中の四角は変数、矢印は関連性を表す。
図6AのA_N+1は、N+1年度のAの情報を表す変数、A_NはN年度のAの情報を表す変数を表す。矢印は根元にある変数が関連変数であり、矢印の先にある変数が、根元の関連変数から影響を受ける対象変数である。
このように、対象変数と関連する関連カテゴリ変数が目的変数の推定時に確定済みの変数である場合、対象変数と関連カテゴリ変数のツリー構造上の距離は1となる。このツリー構造は、前記第1の形態の推計モデルに対応する。
図6Bは、対象変数をN+1年度のy1の情報に設定して、関連カテゴリ変数の読処理を実施した場合のツリー構造である。この例では、対象変数に関連するカテゴリ変数として、N+1年度のAがひとつ目の関連変数として読み出され、次に、N+1年度のAの情報が、推定時に未確定であることから、当該変数を新たな対象変数として読み出されたN年度のAの情報がふたつ目の関連変数として読み出されている。このとき、N+1年度のy1の情報が、N+1年度のAの情報と関連し、さらに、N+1年度のAの情報が、N年度のAの情報と関連している関連性が存在する。
図6Bは、上記関連性の情報を表すツリー構造であって、y1_N+1は、N+1年度のy1の情報を意味する変数、A_N+1は、N+1年度のAの情報を意味する変数、A_NはN年度のAの情報を意味する変数を表す。図6Bより、N_NがA_N+1に影響を与え、さらにA_N+1は、y1_N+1に影響を与えるという関係性が示されている。
このように、対象変数と関連する関連カテゴリ変数に、推定時に未確定の変数が含まれる場合は、対象変数と関連カテゴリ変数のツリー構造の深さが2以上となる。このツリー構造は、前記第2の形態の推計モデルに対応する。図6Bの例では、y1_N+1が根ノードを示し、A_N+1が関連カテゴリ変数の内部ノードを示す。
推計モデル構築部108は、本処理で構築したツリー構造を、関連カテゴリ記憶部124に記憶する。
以上、推計モデル構築処理内の、関連カテゴリ変数読出処理のステップ303について説明を終了する。以下、図3を用いた推計モデル構築処理の説明に戻る。
データ分割ラベル付け処理のステップ304では、推計モデル構築部108が、推計モデル構築時に実施するデータの分割を行うための、個々のデータの分類用のラベル付け処理を行う。
具体的には、まず、推計モデル構築部108は、整形データ201に含まれる説明変数のうち、関連カテゴリ変数読出処理のステップ303で読み出された関連カテゴリ変数の情報を選択する。次に、推計モデル構築部108は、関連カテゴリ変数読出処理のステップ303で構築された関連カテゴリ変数間のツリー構造に基づき、対象の変数毎に、当該変数を推計する推計モデルを構築するためのデータ分割用のラベル付けを実行する。以下では、図6Aと図6Bの2つのツリー構造を用いて、それぞれの例を説明する。
まず、図6Aで示すツリー構造を処理する例を説明する。
図6Aのツリー構造では、目的変数は、A_N+1、カテゴリ変数はA_Nである。図7は、推計モデル構築用整形データ2200の一例を示す図である。推計モデル構築用整形データ2200は、整形データ201から、関連カテゴリ変数の項目の情報を選択した結果を示す。推計モデル構築用整形データ2200は、No2201と、確定カテゴリ2202と、目的変数2203と、説明変数2204〜2205とをひとつのエントリに含む。
本実施例1では、カテゴリ変数A_Nと目的変数A_N+1は、いずれもyとnの2種類の値を取りうる変数であるとする。なお、yは例えば、カテゴリに該当する場合に設定され、nは例えば、カテゴリに含まれない場合に設定される。データ分割ラベル付け処理のステップ304では、推計モデル構築用整形データ2200の情報を用いて、推計が必要な変数毎に、データ分割用のラベル付けを実施する。
図6Aのツリー構造において、推計が必要な変数は目的変数であるA_N+1のひとつだけであるので、推計モデル構築部108は、A_N+1を推計するモデルを構築するためのデータ分割処理用のラベル付けを行う。このラベルは、ツリー構造の中で、推計対象である変数の先祖となる変数群の全ての状態の組合せが一意になるように設定する。
例えば、先祖となる変数の直積値を取る変数でラベル付けすることで実施できる。図6Aのツリーでは、A_N+1の先祖ノードは、A_Nのひとつだけであるので、A_Nの値を直接用いることで、ラベル付けできる。
図8Aは、図6Aのツリーに関し、データ分割用のラベルを付与した結果を示すラベル付けテーブル2300である。関連カテゴリ2301は、ラベル付けに用いた変数である。データ分割ラベル2302は、付与されたラベルである。図示の例では、A_Nの値をそのままラベルに用いた例を示している。
図8Bは、ラベル付けテーブル2310の一例を示す図である。ラベル付けテーブル2310は、No2311と、確定カテゴリ2312と、推計対象2313と、データ分割ラベル2314とをひとつのエントリに含む。
図8Bは、図8Aで示したラベルを用いて、図7に示した推計モデル構築用整形データ2200にラベル付けした例である。データ分割ラベル2314は、カテゴリ変数の情報に基づき生成されたラベルの列である。
次に、図6Bで示すツリーを処理する例を説明する。
図9は、推計モデル構築用整形データ2210の一例を示す図である。推計モデル構築用整形データ2210は、整形データ201から、図6Bの情報に基づき、関連カテゴリ変数項目の情報を選択した結果を示す。推計モデル構築用整形データ2210は、No2211と、確定カテゴリ2212と、未確定カテゴリ2213と、目的変数2214と、説明変数2215〜2216とをひとつのエントリに含む。
図6Bの例では、目的変数は、y1_N+1であり、カテゴリ変数は、A_N+1とA_Nのふたつが存在する。このうち、A_Nは確定カテゴリであり、A_N+1は未確定カテゴリである。
ここでは、カテゴリ変数A_NとA_N+1は、いずれもyとnの2種類の値を取りうる変数であるとする。データ分割ラベル付け処理のステップ304では、この情報に基づき、推計が必要な変数毎に、当該変数を推計する推計モデル構築時にデータを分割する際のラベル付けを実行する。
図6Bのツリーにおいて推計が必要な変数は、目的変数であるy1_N+1と、カテゴリ変数A_N+1のふたつである。そこで、y1_N+1を推計する推計モデルを構築するためのデータ分割処理におけるラベル付けと、A_N+1の推計を実行するモデルを構築するためのデータ分割処理におけるラベル付けの、ふたつのラベル付け処理を実行する。
これらのラベル付けも、図6Aの例と同様に、推計対象の変数の先祖となる変数の値の組合せが一意となるようにラベル付けをすることで実施できる。
図10Aは、ラベル付けテーブル2320の一例を示す図である。図10Aは、図6Bのツリーに関し、カテゴリ変数A_N+1を推計するモデル構築のためのデータ分割ラベルを付与された結果を示すラベル付けテーブル2320である。
関連カテゴリ2321は、ラベル付けに用いた変数である。データ分割ラベル2322は、付与されたラベルである。この例では、推計対象のA_N+1の先祖となる変数は確定カテゴリのA_Nのみであるため、当該値をそのままラベルに用いた例を示している。
図10Bは、ラベル付けテーブル2330の一例を示す図である。図10Bは、図10Aで示したラベルを用いて、図7に示した推計モデル構築用整形データ2200のデータにラベル付けした例である。データ分割ラベル2334が、カテゴリ変数の情報に基づき付与されたラベルの列を表す。
図10Cは、ラベル付けテーブル2340の一例を示す図である。図10Cは、図6Bのツリーに関し、目的変数y1_N+1を推計するモデル構築のためのデータ分割ラベルを付与した結果を示すラベル付けテーブル2340である。
関連カテゴリ2341、2342は、当該ラベル付けに用いた変数である。この例では、推計対象のy1_N+1の先祖となる変数は、確定カテゴリのA_Nと、未確定カテゴリのA_N+1のふたつが存在するため、それら2つの値の組合せを用いた値でラベル付けした例を示している。
図10Dは、ラベル付けテーブル2350の一例を示す図である。ラベル付けテーブル2350は、No2351と、確定カテゴリ2352と、未確定カテゴリ2353と、推計対象2354とデータ分割ラベル2355とを一つのエントリに含む。
図10Dは、図10Cで示したデータ分割ラベル2343を用いて、図9Bに示したデータにラベル付けした例である。データ分割ラベル2355が、カテゴリ変数の情報に基づき付与されたラベルの列を表す。これらのラベル付け処理は、ツリー構造の中で、根である目的変数との距離が遠いノードに対応する変数から順に、実行する。
図6Bの例ではまず、推計モデル構築部108が、A_N+1についてラベル付け処理を実行する。図6Bのツリーでは、A_N+1の先祖ノードは、A_Nのひとつだけであるので、A_Nの値を用いて、ラベル付けする。
次に、推計モデル構築部108は、y1_N+1についてラベル付け処理を実行する。図6Bのツリーでは、y1_N+1の先祖ノードは、A_N+1とA_Nのふたつが存在するので、推計モデル構築部108は、A_N+1の値と、A_Nの値の直積を取った値でラベル付けする。推計モデル構築部108は、ラベル付けした情報を、データ分割情報記憶部125に記憶する。
ステップ305では、推計モデル構築部108が、関連カテゴリ変数読出処理のステップ303で読出した未確定の関連カテゴリ変数に関して、推計モデルを未構築の変数が含まれるか否かを判定する。推計モデル構築部108は、未確定の関連カテゴリ変数が読み出されていない、もしくは、全ての未確定の関連カテゴリについて推計モデルを構築している場合には、カテゴリ別目的変数推計モデル構築処理のステップ307に進む。一方、推計モデル構築部108が、推計モデルを構築していない未確定の関連カテゴリが存在する場合には、未確定カテゴリ推計モデル構築処理のステップ306に進む。
未確定カテゴリ推計モデル構築処理のステップ306は、推計モデル構築部108の未確定カテゴリ推計モデル構築部110で実施される処理である。未確定カテゴリ推計モデル構築部110は、関連カテゴリ変数読出処理のステップ303で読み出した関連カテゴリ変数及びツリーの情報と、データ分割ラベル付け処理のステップ304で処理したラベル情報を用いて、未確定カテゴリ変数を推計する推計モデルを構築する。
このとき、未確定カテゴリ推計モデル構築部110は、推計モデルの構築対象の変数に関し、データ分割ラベル付け処理でラベル付けした情報に基づき、データを分割し、それぞれ推計モデルを構築する。未確定カテゴリ推計モデル構築部110は、例えば、図10Aに示すラベル付けテーブルを用いて、未確定カテゴリA_N+1に関する推計モデルを構築する場合、ラベルの値が同一であるデータに、整形データ201を分割し、それぞれのデータについて、目的変数と説明変数の関係性を学習する。
本実施例1では、上述のように、ラベルはyとnの二種類が存在するため、未確定カテゴリ推計モデル構築部110は、整形データ201を2つに分割し、それぞれのデータから推計モデルを構築する。推計モデルの構築は、例えば多項ロジスティック回帰や、BoostingTreeなどの公知または周知の手法を用いることができる。
目的変数推計モデル構築処理のステップ307では、推計モデル構築部108の目的変数推計モデル構築部109が、関連カテゴリ変数読出処理のステップ303で読み出した関連カテゴリ変数及びツリーの情報と、データ分割ラベル付け処理のステップ304で処理したラベル情報を用いて、目的変数を推計する推計モデルを関連するカテゴリ変数の値ごとに構築する。
例えば、図8Aに示すラベル付けテーブル2300を用いて、目的変数A_N+1に関する推計モデルを構築する場合、目的変数推計モデル構築部109は、対象とするラベルの値が同一であるデータに、整形データ201を分割し、それぞれのデータについて、目的変数と説明変数の関係性を学習する。
本実施例1では、ラベルはyとnの二種類が存在するため、推計モデル構築部108が整形データ201を2つに分割し、それぞれのデータから推計モデルを構築する。例えば、推計モデル構築部108は、図10Dに示すラベル付けテーブル2330を用いて、目的変数y1_N+1(2355)に関する推計モデルを構築する場合、(y、y)、(y、n)、(n、y)、(n、n)の4種類のラベルに基づき、整形データ201を4つに分割し、それぞれのデータから推計モデルを構築する。推計モデルの構築は、例えば重回帰や多項ロジスティック回帰やBoostingTreeなどの広く公知の手法を用いることができる。
上記処理で構築した未確定カテゴリ推計モデルおよび目的変数推計モデルは、推計モデル記憶部126に記憶する。
次に、図3のステップ308で行われる統合推計モデル構築処理について、以下に説明する。統合推計モデル構築処理では、まず、将来推計部111で処理を行った後に、推計情報集約部112で処理が行われる。
まず、将来推計部111の処理について説明する。将来推計部111では、推計モデル記憶部126に記憶された推計モデルに基づき、個人(整形データ201)毎の情報の将来推計を実施する。
図11は、将来推計部111で実施する処理のフローチャートを示す図である。以下、各ステップについて説明する。
推計対象情報入力処理のステップ1101では、将来推計部111が、推計対象となるデータの情報と、目的変数の情報と、説明変数の情報と、推計に用いるモデルの情報などの必要な情報を入力部102から受け付ける。なお、推計対象のデータとしては、入力部102から入力された情報以外にも、予め整形データ記憶部122に記憶されたデータを用いてもよい。
モデル読出処理のステップ1102では、将来推計部111が、対象の目的変数と使用する説明変数に対応した目的変数推計モデルおよび、未確定カテゴリ推計モデルを、推計モデル記憶部126から読み出す。
データ分割処理のステップ1103では、データ分割情報記憶部125に記憶された、データ分割用のラベル情報を読み出す。
ステップ1104では、将来推計部111が、未推計の未確定カテゴリが存在するか否かを判定する。これは、将来推計部111が、モデル読出処理のステップ1101で読出した推計モデルの中に、未確定カテゴリ変数を推定するための推計モデル(以下、未確定カテゴリ変数推計モデル)が存在するか否かで判定できる。
将来推計部111は、未確定カテゴリ変数が存在し、当該変数の値が未確定である場合は、未確定カテゴリ推計処理のステップ1105に進む。一方、将来推計部111は、未推定の未確定カテゴリ変数が存在しない場合は、目的変数推計処理のステップ1106に進む。
未確定カテゴリ推計処理のステップ1105では、将来推計部111が、未確定カテゴリ変数推計モデルの中で、適用可能なものをひとつ選択し、適用する。適用は以下のふたつの場合分けで実施される。
ひとつ目の例を説明する。未確定カテゴリ推計モデルがひとつしか存在しない場合、将来推計部111は、当該未確定カテゴリ推計モデルを用いて、未確定カテゴリ変数を推計する。この場合、未確定カテゴリ変数は、他に関連カテゴリを持たない、あるいは、関連するカテゴリが全て確定済カテゴリである、のいずれかの条件を満たす。
未確定カテゴリ変数が関連カテゴリを持たない場合は、将来推計部111が全ての整形データ201を用いて、説明変数から、未確定カテゴリの情報を推計する。未確定カテゴリ変数が関連するカテゴリをもつ場合は、将来推計部111は当該関連カテゴリの値ごとに整形データ201を分割し、分割した各データに、各カテゴリの値に対応した未確定カテゴリ推計モデルを適用して、未確定カテゴリ変数を推計する。
ふたつ目の例を説明する。未確定カテゴリ推計モデルがふたつ以上存在する場合、未確定カテゴリ推計モデルの中に、未確定カテゴリに関連するカテゴリが未確定のものが含まれる場合がある。
例えば、未確定カテゴリ推計モデルXと未確定カテゴリ推計モデルYが存在し、推計モデルXの推計対象が未確定カテゴリ変数Cであって、推計モデルYの推計対象が未確定カテゴリ変数Dで、推計モデルYに含まれる関連カテゴリがC、である場合を考える。
この場合、関連カテゴリCは未確定であるため、このCの値が確定しない限り、推計モデルYを用いた推計を実施することができない。そこで、将来推計部111は、まず推計モデルXを適用して、未確定カテゴリ変数Cに関する情報を推計し、次に推計した変数Cの情報に基づき、推計モデルYを適用する。
このように、将来推計部111は、関連するカテゴリが未確定のものが含まれないものから順に推計することで、階層的に推計を実施する。具体的には、例えば、カテゴリ変数Cがyとnの2種類の値を取りうる情報である場合には、将来推計部111が、まず推計モデルXを用いて、yの確率を0.6、nの確率を0.4、などと確率値を推計する。
次に、将来推計部111は、推計モデルYを用いて、未確定カテゴリ変数Cがyの場合の未確定カテゴリ変数Dの値Dyと、未確定カテゴリ変数Cがnの場合の未確定カテゴリ変数Dの値Dn、の2つの情報を推計する。
最後に将来推計部111は、これらの情報から期待値を計算し、0.6×Dy+0.4×Dnを未確定カテゴリ変数の推計値とする。なお、未確定カテゴリ変数の値の確率値を用いて推計する場合においても、他の確定カテゴリ変数に関しては、データ分割情報記憶部125に記憶されたラベル情報に基づき、将来推計部111は、データを分割して適用する。
次に、目的変数推計処理のステップ1106では、将来推計部111が目的変数推計モデルを適用する。目的変数推計モデルの適用は以下の三つの場合分けで実施される。
ひとつ目の例を説明する。目的変数推計モデルに関連カテゴリがひとつも存在しないとき、将来推計部111は全ての整形データ201を用いて、説明変数から目的値の情報を推計する。
ふたつ目の例を説明する。目的変数推計モデルに含まれる関連カテゴリが全て確定カテゴリ変数である場合、将来推計部111は各カテゴリの値ごとに整形データ201を分割し、分割した各データに、各カテゴリの値に対応した未確定カテゴリ推計モデルを適用して、未確定カテゴリ変数を推計する。
三つ目の例を説明する。目的変数推計モデルに含まれる関連カテゴリに未確定カテゴリ変数が含まれる場合、未確定カテゴリ変数推計モデルで推計した確率情報を用いて推計する。例えば、未確定カテゴリ推計モデルYと目的変数推計モデルZが存在し、未確定カテゴリ推計モデルYの推計対象が未確定カテゴリ変数Dであって、目的変数推計モデルZの推計対象が変数z,目的変数推計モデルZに含まれる関連カテゴリが未確定カテゴリ変数D、である場合を考える。
この場合、未確定カテゴリ変数Dは未確定であるため、この値が確定しない限り、目的変数推計モデルZを用いた推計を実施することができない。そこで将来推計部111は、未確定カテゴリ推計モデルYを用いて推計した未確定カテゴリ変数Dに関する確率情報を用いて、目的変数を推計する。具体的には、例えば、未確定カテゴリ変数Dがyとnの2種類の値を取りうる情報であって、未確定カテゴリ推計モデルYによって推計された未確定カテゴリ変数Dの確率がyの確率を0.3、nの確率を0.7、などの確率値であるとする。
このとき、まず将来推計部111は、目的変数推計モデルZを用いて、未確定カテゴリ変数Dがyの場合の目的変数zの値zyと、未確定カテゴリ変数Dがnの場合の目的変数zの値znの2つの情報を推計する。最後にこれらの情報から期待値を計算し、0.3×zy+0.7×znを目的変数zの推計値とする。
本推計処理で推計した個人毎の推計情報は、整形データ201と合わせて、推計情報記憶部128に記憶される。
次に、推計情報集約部112の処理について説明する。将来推計部111では、推計情報記憶部128に記憶された個人毎の推計結果を、ある特定のカテゴリ変数に基づいて集約し、集団毎の推計結果を生成する。
図14は、推計情報集約部112で実施される処理の一例を示すフローチャートを示す図である。以下、各ステップについて説明する。
推計情報読出のステップ1401では、推計情報集約部112が、推計情報記憶部128に記憶された推計結果の情報を読み出す。
集約指標決定のステップ1402では、推計情報集約部112が、推計情報記憶部128から読出した推計結果の情報を集約する指標を決定する。推計情報集約部112は、指標として、推計結果の情報と合わせて記憶された個人毎の整形データ201に含まれる少なくともひとつ以上のカテゴリ変数を、集約する指標として決定する。指標としては、例えば、個人毎の基本情報に含まれる性別や年齢を10歳ごとに階級化した情報や、介護保険の階級や、住所情報から取得した所在地に関する情報、などが挙げられる。
集約方法決定のステップ1403では、推計情報集約部112が、集約指標決定のステップ1402で決定したカテゴリ変数に関して、推計情報をどのように集計するかを決定する。例えば、カテゴリ変数毎に集約した情報の合計、平均、最大値、最小値、中央値、最頻値、標準偏差などの集計方法を決定する。
集約処理のステップ1404では、推計情報集約部112が、集約指標決定のステップ1402で決定した集約指標を、集約方法決定のステップ1403で決定した集計方法で、推計情報を集計する。集計した結果は、推計情報記憶部128に記憶する。
データ分析部101が出力部103に表示するグラフィカルユーザインターフェイスの一例を以下に示す。
図12は、本実施例1を実現する操作画面の一例を示すグラフィカルユーザインターフェイスの図である。図示の例では、整形データ201を選択し、選択した整形データ201の推計モデルを構築し、構築した推計モデルのパラメータおよびアーキテクチャに関する情報を表示するための操作画面1200の一例を示す。
図中1201は、整形データ201を選択するためのボタンである。1202は推計モデル構築処理を実行するためのボタンである。1203は、推計モデルのパラメータおよびアーキテクチャを画面上に表示するためのボタンである。
図中1204は、推計モデルで用いられる目的変数と、説明変数と、カテゴリ変数の情報を表示する表である。
図中1205は、推計モデルに含まれる目的変数推計モデルの中の目的変数推定用パラメータの情報をカテゴリ変数の値による分類ごとに表示する表である。1206は、推計モデルに含まれる未確定カテゴリ変数推計モデルの中の、未確定カテゴリ変数推定用パラメータの情報をカテゴリ変数の値による分類ごとに表示する表である。1207は、推計モデルのアーキテクチャとして、使用された説明変数と、目的変数と、カテゴリ変数との関係性をグラフにより可視化する表示領域である。
表示領域1207は、カテゴリ変数を四角、説明変数を丸の図形で示し、説明変数と目的変数の関係性を矢印で表している例を示している。
データ分析部101のユーザは本実施例1で示す操作画面1200を用いることにより、推計モデルの構築に必要な整形データ201を選択できる。そして、データ分析部101は、選択した整形データに基づき、推計モデルの構築処理を実行できる。ユーザは、操作画面1200を用いることで、構築した推計モデルの説明変数や、目的変数や、カテゴリ変数などの各種パラメータと、関係性であるモデルのアーキテクチャを把握できる。
図13は本実施例1を実現する推計結果表示画面1300の一例を示すグラフィカルユーザインターフェイスの図である。推計結果表示画面1300は、推計モデルを用いて推計結果を表示するための画面の例を示す。
図中1301は、推計結果を選択するためのボタンである。1302は推定した結果を、年代(または年度)ごとに集約して表示するための表である。図示の例では、2015年度の情報に基づいて、2016年度と2017年度の2型糖尿病の医療費を推計した結果を表示する例を示している。
図中1303は、集計対象を指定するためのプルダウンであり、プルダウン1303で指定された集計対象に応じて、推計情報集約処理が実行され、画面内の情報が更新される。1304は、読み出す推定結果の目的変数を指定するためのプルダウンである。プルダウン134指定された対象疾病の情報を画面内の情報として表示する。
図中1305は、プルダウン1303で指定された集計対象で、プルダウン1304で指定された疾病の推計結果を集計した結果を表示するためのグラフ表示領域である。1306は、1303で指定した集計対象で、1304で指定した疾病の集計結果を地図として表示するための地図表示領域である。
以下、本実施例1に係る推計モデル構築システムの効果を説明する。
本実施例1に示した推計モデル構築システムは、目的変数を推計するモデルを構築する際に、説明変数に含まれる変数の中で、任意のカテゴリ変数に関して、カテゴリ変数の値が同一のデータ毎にデータを分割し、それぞれのデータから推計モデルを構築することができる。これにより、属性や既往歴等の背景が異なる個体から構成された集団を推計する場合に、推計精度を向上することができる。
本実施例1に示した推計モデル構築システムは、カテゴリ変数の値に基づいてデータを分割してモデルを構築する際、推計時にこのカテゴリ変数の値が確定した値であるか、それとも未確定の値であるか否かを判定する。
推計モデル構築システムは、推計時にカテゴリ変数の値が未確定の場合は、カテゴリ変数を推計するモデルと、目的変数を推計するモデルをふたつ構築する。これにより、推計時にカテゴリ変数の値が未確定な場合でも、高い推計精度で推計することができる。例えば、ある年度の、ある疾病に関する医療費を推計する場合に、ある年度の疾病の有無の情報をカテゴリ変数とし、この疾病の有無の情報を推計するモデルと、医療費を推計するモデルのふたつの推計モデルを構築し、それらを階層的に適用することで、医療費を高い精度で推計できる。また、医療費と疾病の有無の情報の2つを同時に推計できる。
本実施例1に示した推計モデル構築システムは、カテゴリ変数の値に基づいて、それぞれモデルを構築するため、カテゴリ変数の値ごとに構築したモデルのパラメータを把握できる。これにより、ある特定の群に関し、興味のある目的変数に影響している変数をそれぞれのモデルから把握することができる。
本実施例1に示した推計モデル構築システムは、個人毎に集計した情報を任意のカテゴリ変数で集約し、集団の推計を実施することができる。これにより、ユーザが所望する所定の粒度で、集団の将来の健康状態や医療状態を把握することが出来る。
以下、本実施例1に係る推計モデル構築システムの変形例を説明する。
本実施例1では、対象とするデータとして、個人毎のレセプト情報および特定健診情報が時系列で含まれたデータを用いた例を説明し、さらに、これらの情報を年度毎に集約し、年度単位に推計するモデルを構築する例を説明したが、本実施例1で扱うことの出来るデータはこれに限定されない。
例えば、健康情報に関するセンシング情報や、保険に関する情報など、広く健康や医療あるいは介護に関する情報を扱うことができる。また、情報を集約する時間間隔も、四半期ごと、月ごと、など、広く様々な時間間隔のモデルを構築することができる。また、本実施例1の推計モデル構築システムは、定期的な試験の結果などに基づいて教育分野に適用することができる。
本実施例1では、推計モデルとして、様々な推計モデルを扱うことができる。例えば、カテゴリ変数の情報を推計するモデルとしては、ロジスティック回帰やニューラルネットワークなどの、説明変数と目的変数の関係性を式で記述したモデルや、サポートベクトルマシンやKNN(k-nearest neighbor algorithm)のように、モデル構築データの部分集合をパラメータ化して保持するモデルや、ベイジアンネットワークのように、説明変数と目的変数の確率的な依存関係を保持するモデルや、ランダムフォレストのように、いくつかの分類ルールを集約したモデル、など、様々なモデルを推計モデルとして活用することができる。
本実施例1では、目的変数に関するカテゴリ変数を指定する方法として、関連カテゴリマトリクス501を用いる方法を説明したが、関連カテゴリマトリクス501以外の方法を用いて、目的変数に関連するカテゴリ変数を読み出しても良い。例えば、関連カテゴリ変数読出処理で構築する目的変数と関連カテゴリ変数群の関係性を示したツリー構造を、事前に構築し、記憶しておき、当該情報を直接用いて、関連カテゴリ変数を読み出しても良い。
本実施例1では、個人毎に推計する推計モデルを構築し、推計した結果を、所定のカテゴリに基づき集団として推計する例を示したが、推計は個人よりも大きな粒度で実施しても良い。例えば、市単位で集約した情報に関して推計する推計モデルを構築しても良い。
以上のように、本実施例1に係る推計モデル構築システムは、カテゴリ変数毎の推計モデル構築処理、および、推定時に未確定のカテゴリ変数を推計する推計モデル構築処理を構築し、背景の異なる人の混在した集団においても、精度の高い将来推計が可能な推計モデルを構築することができる。