IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2023-179108分析装置、分析方法、および分析プログラム
<>
  • 特開-分析装置、分析方法、および分析プログラム 図1
  • 特開-分析装置、分析方法、および分析プログラム 図2
  • 特開-分析装置、分析方法、および分析プログラム 図3
  • 特開-分析装置、分析方法、および分析プログラム 図4
  • 特開-分析装置、分析方法、および分析プログラム 図5
  • 特開-分析装置、分析方法、および分析プログラム 図6
  • 特開-分析装置、分析方法、および分析プログラム 図7
  • 特開-分析装置、分析方法、および分析プログラム 図8
  • 特開-分析装置、分析方法、および分析プログラム 図9
  • 特開-分析装置、分析方法、および分析プログラム 図10
  • 特開-分析装置、分析方法、および分析プログラム 図11
  • 特開-分析装置、分析方法、および分析プログラム 図12
  • 特開-分析装置、分析方法、および分析プログラム 図13
  • 特開-分析装置、分析方法、および分析プログラム 図14
  • 特開-分析装置、分析方法、および分析プログラム 図15
  • 特開-分析装置、分析方法、および分析プログラム 図16
  • 特開-分析装置、分析方法、および分析プログラム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023179108
(43)【公開日】2023-12-19
(54)【発明の名称】分析装置、分析方法、および分析プログラム
(51)【国際特許分類】
   G16H 50/00 20180101AFI20231212BHJP
【FI】
G16H50/00
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022092187
(22)【出願日】2022-06-07
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】中村 泰明
(72)【発明者】
【氏名】竹内 渉
【テーマコード(参考)】
5L099
【Fターム(参考)】
5L099AA04
(57)【要約】      (修正有)
【課題】治療効果の推定精度の向上を図る分析装置、分析方法及び分析プログラムを提供する。
【解決手段】プログラムを実行するプロセッサと、プログラムを記憶する記憶デバイスとを有する分析装置300は、記憶デバイスに因子群の中の予測因子群毎の重みを記憶しており、患者毎に前記因子群の因子毎の値を含む複数の患者データを取得する取得部401と、因子と重みとを選択する選択処理と、選択処理によって選択された前記因子と前記重みとに基づいて分割対象である前記複数の患者データの分割を実行する分割処理と、分割処理によって得られた患者データ群を新たな分割対象に設定する設定処理と、を繰り返し実行することにより、分割処理により分割対象を分割する分岐条件を探索する探索処理を実行する探索部411と、を有する。
【選択図】図4
【特許請求の範囲】
【請求項1】
プログラムを実行するプロセッサと前記プログラムを記憶する記憶デバイスとを有する分析装置であって、
前記記憶デバイスは、因子群の中の予測因子群ごとの重みを記憶しており、
患者ごとに前記因子群の因子ごとの値を含む複数の患者データを取得する取得部と、
前記因子と前記重みとを選択する選択処理と、前記選択処理によって選択された前記因子と前記重みとに基づいて分割対象である前記複数の患者データの分割を実行する分割処理と、前記分割処理によって得られた患者データ群を新たな分割対象に設定する設定処理と、を繰り返し実行することにより、前記分割処理により前記分割対象を分割する分岐条件を探索する探索処理を実行する探索部と、
を有することを特徴とする分析装置。
【請求項2】
請求項1に記載の分析装置であって、
前記患者データは、前記患者が治療を選択したか否かを示す治療選択に関する変数を含み、
前記探索部は、前記設定処理により前記複数の患者データが前記分割対象に設定された場合に前記複数の患者データについて前記変数を用いて前記因子に関する第1治療効果を算出するとともに、前記分割処理によって分割された2つの患者データ群の各々について前記変数を用いて前記因子に関する第2治療効果を算出する治療効果算出処理と、前記第1治療効果と前記因子と前記重みとに基づいて分割前の損失関数を算出するとともに、前記2つの患者データ群の各々の前記第2治療効果と前記因子と前記重みとに基づいて、前記分割後の損失関数を算出する損失関数算出処理と、前記分割後の損失関数と前記分割後の損失関数との差分を算出する差分算出処理と、を実行し、前記差分に基づいて、前記分岐条件を探索する、
ことを特徴とする分析装置。
【請求項3】
請求項2に記載の分析装置であって、
前記探索部は、前記差分が目標値よりも大きい場合、前記分割後の損失関数で前記分割前の損失関数を更新し、前記差分で前記目標値を更新する更新処理を実行する、
ことを特徴とする分析装置。
【請求項4】
請求項2に記載の分析装置であって、
前記探索部は、前記複数の患者データを解析対象群として前記探索処理を実行し、
前記予測因子と前記重みとに基づいて前記分岐条件で前記解析対象群を第1分岐群と第2分岐群とに仮分割し、前記解析対象群の前記第1治療効果と前記第1分岐群についての前記第2治療効果との比較結果と、前記解析対象群の前記第1治療効果と前記第2分岐群についての前記第2治療効果との比較結果と、に基づいて、前記第1分岐群および前記第2分岐群のいずれの分岐群の前記第2治療効果が有意に変化したか否かを判定する判定処理と、を実行することにより、前記判定処理による判定結果に基づいて、前記解析対象群を前記第1分岐群と前記第2分岐群とに分割する層別化処理を実行する層別化部と、
を有することを特徴とする分析装置。
【請求項5】
請求項4に記載の分析装置であって、
前記層別化部は、前記複数の患者データのうち少なくとも一以上の患者データを前記解析対象群として前記層別化処理を実行し、
前記一以上の患者データについて前記層別化処理で前記第1分岐群と前記第2分岐群とに分割したときの分岐条件に基づいて、前記因子の前記重みを生成する生成部と、
を有することを特徴とする分析装置。
【請求項6】
請求項1に記載の分析装置であって、
医学文献データベースを、前記因子および転帰に関する接続詞を含む検索キーワードで検索して、前記検索キーワードに該当する文章を抽出することにより、前記検索キーワードに含まれる前記因子の重みを算出し、前記検索キーワードに含まれる前記因子を、前記重みに関連付けて前記記憶デバイスに記憶する生成部と、
を有する分析装置。
【請求項7】
請求項1に記載の分析装置であって、
前記因子は、治療に対する感受性を反映する予測因子である、
ことを特徴とする分析装置。
【請求項8】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する分析装置が実行する分析方法であって、
前記記憶デバイスは、因子群の中の予測因子群ごとの重みを記憶しており、
前記プロセッサは、
患者ごとに前記因子群の因子ごとの値を含む複数の患者データを取得する取得処理と、
前記因子と前記重みとを選択する選択処理と、前記選択処理によって選択された前記因子と前記重みとに基づいて分割対象である前記複数の患者データの分割を実行する分割処理と、前記分割処理によって得られた患者データ群を新たな分割対象に設定する設定処理と、を繰り返し実行することにより、前記分割処理により前記分割対象を分割する分岐条件を探索する探索処理を実行する探索処理と、
を実行することを特徴とする分析方法。
【請求項9】
因子群の中の因子群の因子ごとの重みを記憶する記憶デバイスにアクセス可能なプロセッサに、
患者ごとに前記因子群の因子ごとの値を含む複数の患者データを取得する取得処理と、
前記因子と前記重みとを選択する選択処理と、前記選択処理によって選択された前記因子と前記重みとに基づいて分割対象である前記複数の患者データの分割を実行する分割処理と、前記分割処理によって得られた患者データ群を新たな分割対象に設定する設定処理と、を繰り返し実行することにより、前記分割処理により前記分割対象を分割する分岐条件を探索する探索処理を実行する探索処理と、
を実行させることを特徴とする分析プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを分析する分析装置、分析方法、および分析プログラムに関する。
【背景技術】
【0002】
従来の医療はランダム化比較試験をベースとした標準化およびガイドライン作成を推進してきた反面、治療はすべての患者に有効ではなく個人性があることが顕在化してきた。そこで、現在の医療では患者個人の特性に合った最適治療選択の追及に焦点が当てられている。たとえば、患者特性等に基づき患者をサブタイプ分類(層別化)し、類似する患者に対する治療およびアウトカムを分析する包括的医療データ分析システムが開示されている(下記特許文献1を参照)。
【0003】
この包括的医療データ分析システムは、知的医療エンジンを含む医療メインサーバを含み、知的医療エンジンは、機密電子医療記録データベースである中央データベースに通信可能に結合されるとともに、ネットワークを介して病院、診療所及びその他の医療ソースにさらに通信可能に結合される。知的医療エンジンは、潜在的に異なる国、地域及び大陸から大量の医療記録を受け取る。電子医療記録は、病院、診療所及びその他の医療ソースから提供され、患者の医療記録を地球規模で大規模分析して相関付けできるように知的医療エンジン内に供給される。分析は、患者臨床パラメータ、疾患テンプレート、治療及び転帰に従って、医療記録を複数レベルのサブグループにグループ分割(分類)することによって開始する。新規患者がシステムに入力されると、この患者のパラメータ及び疾患テンプレートを最も近いサブグループと照合して、好ましい結果の可能性がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2017-502439号公報
【非特許文献】
【0005】
【非特許文献1】Athey, Susan, et al,“Recursive partitioning for heterogeneous causal effects” Proceedings of the National Academy of Sciences 113.27 (2016): 7353-7360.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1の包括的医療データ分析システムでは、治療効果に基づいたサブグループの分割は行われていない。また、非特許文献1では、治療効果の推定には治療に関連する因子(予測因子)と、治療に関連しない因子(予後因子)とを同様に取り扱っている。
【0007】
本発明は、治療効果の推定精度の向上を図ることを目的とする。
【課題を解決するための手段】
【0008】
本願において開示される発明の一側面となる分析装置は、プログラムを実行するプロセッサと前記プログラムを記憶する記憶デバイスとを有する分析装置であって、前記記憶デバイスは、因子群の中の予測因子群ごとの重みを記憶しており、患者ごとに前記因子群の因子ごとの値を含む複数の患者データを取得する取得部と、前記因子と前記重みとを選択する選択処理と、前記選択処理によって選択された前記因子と前記重みとに基づいて分割対象である前記複数の患者データの分割を実行する分割処理と、前記分割処理によって得られた患者データ群を新たな分割対象に設定する設定処理と、を繰り返し実行することにより、前記分割処理により前記分割対象を分割する分岐条件を探索する探索処理を実行する探索部と、を有することを特徴とする分析装置。
【発明の効果】
【0009】
本発明の代表的な実施の形態によれば、治療効果の推定精度の向上を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0010】
図1図1は、予後因子および予測因子のアウトカムの一例を示す説明図である。
図2図2は、治療効果τに有意に効くと考えられる患者特性内の予測因子で患者の母集団を分割して学習時に重み付けする例を示す説明図である。
図3図3は、分析装置のハードウェア構成例を示すブロック図である。
図4図4は、分析装置の機能的構成例を示すブロック図である。
図5図5は、図4に示した重みテーブルの一例を示す説明図である。
図6図6は、図4に示したヘルスケアDBの一例を示す説明図である。
図7図7は、患者データテーブルの一例を示す説明図である。
図8図8は、分析装置の入力画面の一例を示す説明図である。
図9図9は、分析装置による分析処理手順例を示すフローチャートである。
図10図10は、層別化結果の一例を示す説明図である。
図11図11は、層別化結果の他の例を示す説明図である。
図12図12は、図9に示した層別化処理(ステップS902)の詳細な処理手順例を示すフローチャートである。
図13図13は、図10に示した分岐条件探索処理(ステップS1002)の詳細な処理手順例を示すフローチャートである。
図14図14は、従来法と実施例1との分割前と比較した予測誤差改善率を示す箱ひげ図である。
図15図15は、実施例2にかかる生成部による重みテーブルの生成処理手順例を示すフローチャートである。
図16図16は、医学分家データベースからの検索結果を示すヒストグラムである。
図17図17は、実施例3にかかる重みテーブルの生成処理手順例を示すフローチャートである。
【発明を実施するための形態】
【0011】
<予後因子および予測因子のアウトカム>
図1は、予後因子および予測因子のアウトカムの一例を示す説明図である。アウトカムは、たとえば、生死、無増悪期間、腫瘍サイズのような観測値であり、治療に関連しない効果と治療効果とが内在する値である。治療に関連しない効果および治療効果はそれぞれ直接観測不可能である。
【0012】
グラフ101は、患者の母集団を予後因子の有無でグループ化された患者群A、Bの治療前後のアウトカムを示す。グラフ102は、患者の母集団を予測因子の有無でグループ化された患者群C、Dの治療前後のアウトカムを示す。
【0013】
予後因子および予測因子はそれぞれ、患者が有する特性(以下、患者特性)を構成する因子群のいずれかの因子であり、アウトカムにより変化する量的変数、すなわち、共変量である。予後因子は、治療の有無にかかわらず、独立した予後を示す因子であり、たとえば、患者の年齢である。予測因子は、治療に対する感受性を反映する因子であり、たとえば、EGFR(Epidermal growth factor receptor:上皮成長因子受容体)であり、予測因子の有無によって異なる治療効果を示す因子である。
【0014】
グラフ101において、患者群Aが年齢を示す予後因子の値が低い患者の集合(年齢low)であり、患者群Bが患者群Aよりも年齢を示す予後因子の値が高い患者の集合(年齢high)である。グラフ101では、患者群A、Bの違いにより治療前後のアウトカムは変わるが、患者群A、B間で治療効果τ(治療前後のアウトカムの差)に差はない。
【0015】
グラフ102において、患者群CがEGFRを示す予測因子の値が高い患者の集合(EGFR+)であり、患者群Dが患者群CよりもEGFRを示す予測因子が低い患者の集合(EGFR-)である。グラフ102では、患者群C、Dの違いにより治療前後のアウトカムは変わり、患者群C、D間で治療効果τ(治療前後のアウトカムの差)にも差がある。グラフ102では、患者群Cの治療効果τは患者群Dの治療効果τよりも大きい。
【0016】
このように、EGFRのような予測因子で患者の母集団を層別化することで、治療効果τ別の状態分類を通じた治療選択の支援が可能であるが、予測因子で層別化されない場合は治療効果τの予測精度が低下する。このため、以下に示す実施例では、治療効果τに有意に効くと考えられる患者特性内の予測因子を事前に特定し、学習時に重み付けすることで、治療効果τの予測精度向上を図る。
【0017】
図2は、治療効果τに有意に効くと考えられる患者特性内の予測因子で患者の母集団を分割して学習時に重み付けする例を示す説明図である。母集団200には、処置群に属する患者201と非処置群に属する患者202とが存在する。処置群とは、傷病の手当てがされた患者の集合であり、非処理群とは、傷病の手当てがされていない患者の集合である。また、(+)は奏功、(-)は非奏功を示す。以下、奏功した患者201、202を患者201(+)、202(+)と表記し、非奏功の患者201、202を患者201(-)、202(-)と表記する。
【0018】
すなわち、患者201(+)は処置によって傷病が治癒した患者201であり、患者201(-)は処置しても傷病が治癒しなかった患者201である。また、患者202(+)は処置していないにもかかわらず傷病が治癒した患者202であり、患者202(-)は処置していないので傷病が治癒しなかった患者202である。図2では、説明の単純化のため、この6人の患者201,202の集合を母集団200とする。
【0019】
ここで、分析装置は、治療効果τに有意に効くと考えられる患者特性内の予測因子xで患者の母集団200を2つの群に分割する。一方の群をサブタイプLとし、他方の群をサブタイプRと表記する。
【0020】
サブタイプLの推定治療効果τ(L)は、サブタイプL内の患者201(+)のアウトカムとサブタイプL内の患者202(+)、202(-)のアウトカムとの差分であり、図1の患者群C、D間の治療効果τの差に対応する。
【0021】
サブタイプRの推定治療効果τ(R)は、サブタイプR内の患者201(+)、201(-)のアウトカムとサブタイプR内の患者202(+)のアウトカムとの差分であり、図1の患者群C、D間の治療効果τの差に対応する。
【0022】
分析装置は、母集団200をサブタイプL、Rに分割した予測因子xに関する重みw(x)を推定治療効果τ(L)、τ(R)の二乗和に重み付けすることで、下記式(1)を用いて損失関数fを学習したり、損失関数fにより予測対象患者の治療効果τを予測したりする。
【0023】
【数1】
【0024】
なお、lは、サブタイプL、Rのいずれの治療効果τ(l)であるかを示すインデックスである。N(l)は、サブタイプLのサンプル数である。以下、図1および図2で示した分析装置の詳細について、実施例1~3として説明する。
【実施例0025】
実施例1では、重みw(x)が事前に特定されている場合の分析装置について説明する。また、以下の形態より本発明が限定されるものではない。
【0026】
<分析装置のハードウェア構成例>
図3は、分析装置のハードウェア構成例を示すブロック図である。分析装置300は、プロセッサ301と、記憶デバイス302と、入力デバイス303と、出力デバイス304と、通信インターフェース(通信IF)305と、を有する。プロセッサ301、記憶デバイス302、入力デバイス303、出力デバイス304、および通信IF305は、バス306により接続される。プロセッサ301は、分析装置300を制御する。記憶デバイス302は、プロセッサ301の作業エリアとなる。また、記憶デバイス302は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス302としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス303は、データを入力する。入力デバイス303としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナ、マイク、センサがある。出力デバイス304は、データを出力する。出力デバイス304としては、たとえば、ディスプレイ、プリンタ、スピーカがある。通信IF305は、ネットワークと接続し、データを送受信する。
【0027】
<分析装置の機能的構成例>
図4は、分析装置の機能的構成例を示すブロック図である。分析装置300は、生成部400と、取得部401と、層別化部402と、出力部403と、ヘルスケアDB410と、患者データテーブル420と、重みテーブル430と、を有する。ヘルスケアDB410、患者データテーブル420および重みテーブル430は、具体的には、たとえば、図3に示した記憶デバイス302に記憶されるデータ構造であり、プロセッサ301によりアクセス可能である。生成部400、取得部401、層別化部402、および出力部403は、具体的には、たとえば、図3に示した記憶デバイス302に記憶されたプログラムをプロセッサ301に実行させることにより実現される機能である。
【0028】
生成部400は、へルスケアDB410を参照して患者データテーブル420を生成する。取得部401は、患者データテーブル420から患者を特定する患者データを複数取得したり、重みテーブル430から重みを取得したりする。層別化部402は、取得部401によって患者データとして取得された患者群を層別化する。層別化部402は、探索部411と反復部412とを有する。探索部411は、患者群を層別化するための分岐条件を探索する。反復部412は、探索部411による分岐条件の探索と、分岐条件を用いた患者群の分割と、を繰り返し実行する。出力部403は、層別化部402による層別化結果を出力する。
【0029】
図5は、図4に示した重みテーブル430の一例を示す説明図である。重みテーブル430は、フィールドとして、予測因子501と、重み502と、を有する。同一行の予測因子501の値および重み502の値の組み合わせが1つの予測因子501を特定するエントリとなる。
【0030】
予測因子501は、上述したように、治療に対する感受性を反映する因子を特定するフィールドであり、x1、x2、…、xi、…、xn(nは1以上の整数、iは1≦i≦nを満たす整数)を、予測因子を一意に特定する識別情報として保持する。以下、予測因子501の値を予測因子xiと表記する場合がある。重み502は、治療効果τの有意性を示す指標値であり、上記式(1)に入力される。本例では、重み502の値が大きいほど、治療効果τの予測精度が向上する。
【0031】
なお、実施例1では、重みテーブル430は、事前に用意される。分析装置300は、ユーザの操作により、重みテーブル430のエントリの追加、変更、削除や重み502の値の変更を実行することができる。
【0032】
図6は、図4に示したヘルスケアDB410の一例を示す説明図である。ヘルスケアDB410は、フィールドとして、患者ID601と、入院ID602と、治療ライン603と、年月日604と、処置605と、イベント606と、患者特性607と、を有する。同一行の各フィールドの値の組み合わせが1つのヘルスケア情報を規定するエントリとなる。エントリは、1人の患者について1以上存在する。たとえば、ある患者が3回入院すれば、その患者について3個のエントリが存在する。なお、図6では、分析対象となる傷病(たとえば、がん)についてのヘルスケア情報を規定する。
【0033】
患者ID601は、患者を一意に特定する識別情報である。入院ID602は、患者ID601で特定される患者が入院した時に割り当てられる識別情報である。治療ライン603は、治療の順序を示す番号である。
【0034】
治療ライン603は、がんに対する治療で、抗がん剤投与による治療の順序を示す番号である。たとえば、あるがん腫に対して、初めて抗がん剤を投与する場合、初回治療となるため、治療ライン603の値は「1」となり、2回目の治療の場合は「2」、3回目の治療の場合は「3」、…となる。
【0035】
年月日604は、治療ライン603による治療をおこなった年、月および日である。処置605は、治療ライン603による治療の内容である。イベント606は、治療ライン603で処置605を施した結果(たとえば、増悪、死亡など)である。
【0036】
患者特性607は、患者ID601で特定される患者の年月日604時点における特徴量となる因子群を示す説明変数であり、共変量を含む。患者特性607は、具体的には、臨床検査値や遺伝子変異の有無であり、たとえば、因子として、年齢671、性別672、血圧673、EGFR674を含む。
【0037】
図7は、患者データテーブルの一例を示す説明図である。患者データテーブル420は、ヘルスケアDB410を参照して取得部401により生成される。なお、患者データテーブル420は、あらかじめ記憶デバイス302に記憶されていてもよい。
【0038】
患者データテーブル420は、ヘルスケアDB410を患者単位でまとめたテーブルであり、フィールドとして、たとえば、患者ID601と、生存期間701と、アウトカム702と、治療選択703と、患者特性607と、を有する。同一行の各フィールドの値の組み合わせが1人の患者の患者データを規定するエントリとなる。
【0039】
なお、ヘルスケアDB410において1人の患者に対し複数のエントリが存在する場合は、たとえば、治療ライン603が最大値となるエントリが患者データテーブル420のエントリに用いられる。
【0040】
生存期間701は、患者ID601で特定される患者が年月日604からイベント606の値である死亡年月日までの日数である。イベント606に値がなければ、現在の年月日までの日数である。
【0041】
アウトカム702は、たとえば、生死、無増悪期間、腫瘍サイズのような観測値であり、治療に関連しない効果と治療効果とが内在する値である。ここでは、図7の例では、アウトカム702の値は生死を特定する数値である。たとえば、「1」が生存、「0」が死亡を示す。分析装置300は、イベント606を参照し、イベント606に値がなければ、「1」を格納し、イベント606に死亡年月日があれば、「0」を格納する。
【0042】
治療選択703は、患者ID601で特定される患者が治療を選択したか否かを示す値であり、「1」が選択したことを示し、「0」が選択しなかったことを示す。分析装置300は、処置605を参照し、処置605に値がなければ、「0」を格納し、処置605に値があれば、「1」を格納する。
【0043】
図8は、分析装置300の入力画面の一例を示す説明図である。入力画面800は、分析装置300の出力デバイス304の一例である表示装置、または、分析装置300と通信IF305を介して通信可能な他のコンピュータの表示装置に表示される。また、ユーザは、分析装置300の入力デバイス303または他のコンピュータの入力デバイスを操作することにより、入力画面800に情報を入力することができる。
【0044】
入力画面800は、ヘルスケア情報設定項目801と、分類設定項目802と、治療経過項目803と、目的変数項目804と、説明変数項目805と、欠損値処理項目806と、分類モデル項目807と、重み項目808と、実行ボタン809と、を有する。
【0045】
ヘルスケア情報設定項目801は、図6に示したヘルスケアDB410のエントリ群から予測対象エントリを選択可能なユーザインタフェースである。分類設定項目802は、ヘルスケア情報設定項目801のエントリ群を患者のがんのステージや遺伝子といった分類情報で分類する項目を選択可能なユーザインタフェースである。これにより、ヘルスケア情報設定項目801のエントリ群の絞り込みが可能となる。治療経過項目803は、患者の治療ライン603を選択可能なユーザインタフェースである。
【0046】
目的変数項目804は、分類モデルfから出力される目的変数を選択可能なユーザインタフェースである。目的変数としては、たとえば、予測対象患者のイベント606や処置605が選択可能である。説明変数項目805は、予測対象患者の1以上の説明変数となる患者特性607の因子を選択可能なユーザインタフェースである。図8の例では、年齢671、性別672、血圧673がチェックマークの入力により選択されている。
【0047】
欠損値処理項目806は、説明変数の欠損値処理を選択可能なユーザインタフェースである。図8の例では、欠損値処理として「補間」が選択されている。分類モデル項目807は、分類モデルfを選択可能なユーザインタフェースである。図8の例では、分類モデルfとして因果木が選択されている。
【0048】
重み項目808は、説明変数項目805で選択された説明変数のうち予測因子501に該当する説明変数の重み502を表示する。ユーザは、重み502を参照して説明変数項目805内の説明変数の選択を外してもよい。たとえば、性別672の重み502は「1.0」と他の重み502に比べて低いため、ユーザは説明変数項目805から性別672を除外してもよい。実行ボタン809は、押下により、分析装置300に分析処理を実行させるためのユーザインタフェースである。
【0049】
<分析処理>
図9は、分析装置300による分析処理手順例を示すフローチャートである。分析装置300は、取得部401により、患者データテーブル420が未生成であればヘルスケアDB410から患者データテーブル420を生成する。そして、分析装置300は、取得部401により、患者データテーブル420からそのエントリである患者データを取得する(ステップS901)。
【0050】
つぎに、分析装置300は、層別化部402により層別化処理を実行する(ステップS902)。層別化処理(ステップS902)は、患者データを用いて患者を層別化する処理である。このあと、分析装置300は、出力部403により、層別化処理(ステップS902)による層別化結果を出力して(ステップS903)、一連の分析処理を終了する。ステップS903では、分析装置300は、出力デバイス304の一例であるディスプレイに層別化結果を表示してもよく、通信IF305により他のコンピュータに層別化結果を送信してもよく、記憶デバイス302に層別化結果を格納してもよい。
【0051】
<層別化結果>
図10は、層別化結果の一例を示す説明図である。図10に示す層別化結果は、ツリー構造である因果木1000である。因果木1000は、ノード1001~1005で構成される。ノード1001において、治療効果の平均値が「3」である解析対象群は予測因子x1>0である患者グループとそうでない患者グループとに分割される。この予測因子x1および解析対象群を分割する分割しきい値「0」がノード1001の分岐条件である。因子x1>0である患者グループは、治療効果の平均値が「10」である患者群Aを示すノード1002となり、因子x1>0でない患者グループは、治療効果の平均値が「1」となるノード1003である。
【0052】
ノード1003において、分割対象となる治療効果の平均値が「1」である患者グループは、予測因子x2>0である患者グループとそうでない患者グループとに分割される。当該分割対象を分割する分割しきい値「0」がノード1003の分岐条件である。予測因子x2>0である患者グループは、治療効果の平均値が「0」である患者群Bを示すノード1004となり、予測因子x2>0でない患者グループは、治療効果の平均値が「-5」である患者群Cを示すノード1005となる。
【0053】
ノード1002、1004、1005には、分岐条件は存在しない。ノード1001~1005、ノード1001~1005間の接続関係、およびノード1001、1003が有する分岐条件が、因果木1000を構成する。
【0054】
なお、分割しきい値は、たとえば、分割対象となる患者グループの患者数を均等になるように分割する予測因子の値である。たとえば、分割に用いられた予測因子の値が大きい患者グループ内の予測因子の最小値でもよく、分割に用いられた予測因子の値が小さい患者グループ内の予測因子の最大値でもよく、当該予測因子の最小値と当該予測因子の最大値との平均値でもよい。
【0055】
図11は、層別化結果の他の例を示す説明図である。図11に示す層別化結果1100は、グラフで示した例である。層別化結果1100は、共変量である因子1と因子2との関係をグラフ化した散布図であり、解析対象群は患者群A、B、Cに分割される。共変量は、因子1と因子2との組み合わせに限らず、他の組み合わせも選択可能である。
【0056】
また、ユーザが入力デバイス303を操作して患者群A、B、Cをそれぞれ指定した場合、分析装置300は、指定した患者群の特徴情報を表示してもよい。図11では、患者群Bが指定された場合に、患者群Bの特徴情報1101が表示されている。
【0057】
<層別化処理>
図12は、図9に示した層別化処理(ステップS902)の詳細な処理手順例を示すフローチャートである。分析装置300は、反復部412により、解析対象群を設定する(ステップS1201)。具体的には、たとえば、分析装置300は、ステップS1201の初回実行時には、ステップS901で取得した患者データから初回実行時の解析対象群を選択する。初回実行時の解析対象群は、患者データや患者データテーブル420の全エントリでもよく、あらかじめ設定した条件に該当する一部の患者データでもよく、一以上の患者データであればよい。
【0058】
また、分析装置300は、ステップS1201の初回実行時において、解析対象群に実行ラベル[K,V]を設定する。たとえば、実行ラベル[K,V]は、キーKとバリューVとの組み合わせである。ステップS1201の初回実行時では、キーK=1、バリューV=Falseに設定される。Falseは、分岐条件探索処理(ステップS1202)が未実行であることを示し、分岐条件探索処理(ステップS1202)が実行されれば、分岐条件探索処理(ステップS1202)が実行済みであることを示すバリューV=Tureに更新される。
【0059】
つぎに、分析装置300は、探索部411により、分岐条件探索処理を実行する(ステップS1202)。分岐条件探索処理(ステップS1202)は、解析対象群を分岐する条件(分岐条件)を探索して因果木を生成する処理である。
【0060】
つぎに、分析装置300は、探索部411により、解析対象群の実行ラベル[K,V]のバリュー値V=Falseを、分岐条件探索処理(ステップS1202)が実行したことを示すバリュー値V=Tureに更新する(ステップS1203)。
【0061】
つぎに、分析装置300は、反復部412により、解析対象群の分割前後で治療効果が変化したか否かを判定する(ステップS1204)。具体的には、たとえば、分析装置300は、分割対象である解析対象群を因果木の分岐条件で仮分割し、2つの患者グループ(以下、第1分岐群、第2分岐群と称す。また、区別しない場合は単に分岐群と称す。)を生成する。分析装置300は、第1分岐群および第2分岐群のいずれの治療効果が分割対象である解析対象群の治療効果に対して有意に変化しているか否かを判定する。
【0062】
たとえば、分析装置300は、第1分岐群と解析対象群とを比較した治療効果の差分(以下、第1差分)と、第2分岐群と解析対象群とを比較した治療効果の差分(以下、第2差分)と、を合成した標準偏差を算出する。そして、分析装置300は、第1差分および第2差分の少なくともいずれか一方が標準偏差より大きいか否かを判定する。
【0063】
標準偏差よりも大きい差分の比較元となる分岐群が、分割前の解析対象群から治療効果が変化したと判定する。そして、第1差分および第2差分の少なくともいずれか一方が標準偏差より大きければ、治療効果が変化したとして(ステップS1204:Yes)、ステップS1205に移行し、第1差分および第2差分のいずれも標準偏差以下であれば、ステップS1206に移行する。
【0064】
また、分析装置300は、分岐条件探索処理(ステップS1202)において、損失関数が向上しなかった場合(すなわち、Noneが分岐条件探索結果として返ってきた場合)、分析装置300は治療効果に変化がないと判定して(ステップS1204:No)、ステップS1206に移行する。
【0065】
ステップS1204:Yesのあと、分析装置300は、ステップS1204の仮分割で用いた分岐条件で解析対象群を分割する(ステップS1205)。具体的には、たとえば、分析装置300は、初回のステップS1205では親ノードで解析対象群を分割し、ステップS1206:Noでループされると、次のステップS1205で分岐先の子ノードで解析対象群を分割する。
【0066】
また、分析装置300は、ステップS1205で分割された2つの群、すなわち、第1分岐群および第2分岐群の各々に、実行ラベルを付与する。具体的には、たとえば、分析装置300は、第1分岐群および第2分岐群の各々について解析対象群の実行ラベル[K,V]を複製する。そして、分析装置300は、第1分岐群の実行ラベル[K,V]のキーKの末尾に分岐番号「1」を付与し、バリューVをV=TureからV=Falseに更新する。同様に、分析装置300は、第2分岐群の実行ラベル[K,V]のキーKの末尾に分岐番号「2」を付与し、バリューVをV=TureからV=Falseに更新する。
【0067】
たとえば、解析対象群の実行ラベル[K,V]が[1,Ture]であれば、第1分岐群の実行ラベル[K,V]は[11,False]となり、第2分岐群の実行ラベル[K,V]は[12,False]となる。このあと、ステップS1206に移行する。
【0068】
分析装置300は、終了条件を満たすか否かを判定する(ステップS1206)。終了条件とは、たとえば、あらかじめ設定した群分割(ステップS1205)の実行回数(すなわち、分岐の深さ)や、群内サンプル数の下限値である。具体的には、たとえば、群分割(ステップS1205)の実行回数が所定回数以上でない場合は、終了条件を充足していないとして(ステップS1206:No)、ステップS1201に戻る。一方、群分割(ステップS1205)の実行回数が所定回数以上である場合は、第1分岐群および第2分岐群の各々のバリューVをV=FalseからV=Tureに更新し、終了条件を充足したとして(ステップS1206:Yes)、層別化処理(ステップS902)を終了し、ステップS903に移行する。
【0069】
また、終了条件が群内サンプル数の下限値である場合、分析装置300は、群分割(ステップS1205)の実行で分割され、第1分岐群および第2分岐群の各々のサンプル数が、群内サンプル数の下限値を下回っているか否かを判定する。第1分岐群および第2分岐群の少なくともいずれか一方が群内サンプル数の下限値を下回っている場合は、終了条件を充足していないとして(ステップS1206:No)、ステップS1201に戻る。一方、第1分岐群および第2分岐群のいずれも群内サンプル数の下限値以上である場合は、第1分岐群および第2分岐群の各々のバリューVをV=FalseからV=Tureに更新し、終了条件を充足したとして(ステップS1206:Yes)、層別化処理(ステップS902)を終了し、ステップS903に移行する。
【0070】
また、治療効果が変化しなかった場合(ステップS1204:No)、分析装置300は、解析対象群のサンプル数が、群内サンプル数の下限値を下回っているか否かを判定する。解析対象群が群内サンプル数の下限値を下回っている場合は、終了条件を充足していないとして(ステップS1206:No)、ステップS1201に戻る。一方、解析対象群が群内サンプル数の下限値以上である場合は、第1分岐群および第2分岐群の各々のバリューVをV=FalseからV=Tureに更新し、終了条件を充足したとして(ステップS1206:Yes)、層別化処理(ステップS902)を終了し、ステップS903に移行する。
【0071】
すなわち、実行ラベル[K,V]のバリューVが「False」である群が存在する場合、終了条件を充足していないとして(ステップS1206:No)、ステップS1201に戻る。
【0072】
ステップS1206:NoからステップS1201に戻る場合、分析装置300は、実行ラベル[K,V]のバリューが「False」の群を次の解析対象群に設定し(ステップS1201)、同様に、ステップS1202~S1206を実行する。
【0073】
上述した群分割(ステップS1205)の例では、第1分岐群の実行ラベル[K,V]は[11,False]であり、第2分岐群の実行ラベル[K,V]は[12,False]である。したがって、第1分岐群および第2分岐群がそれぞれ解析対象群に設定され(ステップS1201)、それぞれの解析対象群についてステップS1202~S1206が実行される。
【0074】
ここで、図10に示した因果木1000を例に挙げて具体的に説明する。まず、初回実行時では、分析装置300は、ノード1001の分岐条件(x1>0)で解析対象群を第1分岐群(x1>0:Yes)と、第2分岐群(x1>0:No)と、に仮分割する。ここでは、第1分岐群(x1>0:Yes)および第2分岐群(x1>0:No)のいずれかについて治療効果が変化したとする(ステップS1204:Yes)。これにより、分析装置300は、ノード1001の分岐条件(x1>0)で解析対象群を第1分岐群(x1>0:Yes)と、第2分岐群(x1>0:No)と、に分割する(ステップS1205)。
【0075】
また、分析装置300は、解析対象群の実行ラベル[1,True]を用いて、第1分岐群(x1>0:Yes)の実行ラベル[11,False]と第2分岐群(x1>0:No)の実行ラベル[12,False]とを生成する。
【0076】
第1分岐群(x1>0:Yes)はノード1002に遷移する。ノード1002には、分岐条件は存在しないため、分析装置300は、第1分岐群(x1>0:Yes)については探索を終了して(ステップS1206:Yes)、その実行ラベル[11,False]を実行ラベル[11,True]に更新する。
【0077】
第2分岐群(x1>0:No)の実行ラベルは[12,False]であり、バリューVがFalseである。したがって、分析装置300は、第2分岐群(x1>0:No)を次の解析対象群に設定する(ステップS1206:No→S1201)。
【0078】
分析装置300は、因果木1000において、解析対象群(x1>0:No)が遷移するノード1002を特定し、その実行ラベル[12,False]を実行ラベル[12,True]に更新する。
【0079】
そして、分析装置300は、解析対象群(x1>0:No)を分岐条件(x2>0)で、第3分岐群(x2>0:Yes)と第4分岐群(x2>0:No)と、に仮分割する。ここでは、第3分岐群(x2>0:Yes)および第4分岐群(x2>0:No)のいずれかについて治療効果が変化したとする(ステップS1204:Yes)。分析装置300は、解析対象群(x1>0:No)を分岐条件(x2>0)で第3分岐群(x2>0:Yes)と第4分岐群(x2>0:No)とに分割する(ステップS1205)。
【0080】
また、分析装置300は、解析対象群(x1>0:No)の実行ラベル[12,True]を用いて、第3分岐群(x2>0:Yes)の実行ラベル[123,False]と第4分岐群(x2>0:No)の実行ラベル[124,False]とを生成する。
【0081】
第3分岐群(x2>0:Yes)はノード1004に遷移する。ノード1004には、分岐条件は存在しないため、分析装置300は、第3分岐群(x2>0:Yes)については探索を終了して(ステップS1206:Yes)、その実行ラベル[123,False]を実行ラベル[123,True]に更新する。
【0082】
同様に、第4分岐群(x2>0:No)はノード1005に遷移する。ノード1005には、分岐条件は存在しないため、分析装置300は、第4分岐群(x2>0:No)については探索を終了して(ステップS1206:Yes)、その実行ラベル[124,False]を実行ラベル[124,True]に更新する。
【0083】
そして、分析装置300は、これまでに生成した実行ラベルと当該実行ラベルに対応する群、および、分割に用いられた分岐条件を、層別化結果として出力する。
【0084】
なお、図9のステップS903では、分析装置300は、出力部403により、たとえば、初期の解析対象群から末端の分岐群までのツリー構造である因果木を層別化結果として出力する。このとき、層別化結果の各群の実行ラベルを、初期の解析対象群を開始位置として0から始まる昇順番号に振りなおしてもよい。
【0085】
このように、層別化処理(ステップS902)では、分岐で生じたそれぞれの分岐群に対して治療効果を最大化するような探索が実行され、治療効果が最大となる層別化が実現する。
【0086】
<分岐条件探索処理(ステップS1002)>
図13は、図10に示した分岐条件探索処理(ステップS1002)の詳細な処理手順例を示すフローチャートである。探索部411は、重みテーブル430から予測因子501の重み502を読み込む(ステップS1301)。
【0087】
つぎに、探索部411は、解析対象群から探索対象群を取得する(ステップS1302)。具体的には、たとえば、探索部411は、解析対象群をそのまま探索対象群としてもよく、解析対象群を訓練データと検証データとに分割してもよい。分割した場合、訓練データが探索対象群となり、検証データは、治療効果推定(ステップS1306)で用いられる。
【0088】
つぎに、探索部411は、探索対象群内の共変量である因子をランダムに選択して、選択した因子のリスト(因子リスト)を作成し(ステップS1303)、選択した因子の値のリスト(因子の値リスト)を作成する(ステップS1304)。因子リストは、年齢671、血圧673、EGFR674といった共変量となる因子を示すフィールドのリストである。因子リストに選択される因子群は、全因子よりも少ない数の因子群である。因果木は、因子リストごとに作成される。
【0089】
因子の値リストとは、年齢671、血圧673、EGFR674といった選択した因子の値(56[歳]、62[歳]、…、90[ml]、127[ml]、…)を含むリストである。
【0090】
また、ステップS1304では、探索部411は、因子リストからあらかじめ設定された予測因子を特定し、特定した予測因子(以下、探索対象予測因子)の値を因子の値リストから抽出する。
【0091】
ステップS1301,S1303,S1304により、探索部411は、未選択の予測因子とその重みとを選択することになる。
【0092】
つぎに、探索部411は、探索対象予測因子を用いて、探索対象群を2分割する(ステップS1305)。このデータ分割は、図2に示した患者特性によりサブタイプL、Rに分割する処理である。ステップS1311,S1312から処理が戻ってくる都度、探索対象予測因子には、異なる予測因子が選択される。なお、分割した一方の群を、図2と同様、サブタイプLと称し、他方の群をサブタイプRと称す。
【0093】
つぎに、探索部411は、サブタイプL、Rの各々について、治療効果τを算出する(ステップS1306)。治療効果τは、下記式(2)により算出される。
【0094】
τ(l)=E[Y|T=1]-E[Y|T=0]・・・(2)
【0095】
サブタイプLであればl=L、サブタイプRであればl=Rとなる。Yはアウトカム(たとえば、イベント606)である。Tは、治療選択を示す2値の変数であり、T=1は治療を選択した(処置605をした)ことを示し、T=0は治療を選択しなかった(処置605をしなかった)ことを示す。また、E[]は、期待値計算演算子である。E[]は、たとえば、アウトカムYの総和である。上記式(2)により、第2治療効果である治療効果τ(L)、τ(R)が算出される。治療効果τ(L)、τ(R)を区別しない場合は、τ(l)(ただし、l=L、R)と表記する。
【0096】
つぎに、探索部411は、治療効果τ(L)、τ(R)を用いて、分割前後の損失関数を算出する(ステップS1307)。分割前の損失関数をLossPreとし、分割後の損失関数をLossPostとする。まず、分割前の損失関数LossPreを下記式(3)に示す。
【0097】
【数2】
【0098】
上記式(3)において、右辺のNは、探索対象群のサンプル数である。また、右辺のτは、第1治療効果である分割前の治療効果である。初回実行時には、親ノードにおける治療効果τが用いられる。ループの2回目以降は、前回の分割後の治療効果τ(l)が、分割前の治療効果τになる。
【0099】
また、xは、予測因子501(x1、x2、…、xi、…、xn)のうち、ステップS1305で特定された探索対象予測因子である。W(x)は、探索対象予測因子の重み502である。
【0100】
また、ステップS1302において、解析対象群が訓練データと検証データとに分割された場合、分割前の損失関数LossPreは、上記式(3)に分散による罰則項が追加され、下記式(4)のようになる。
【0101】
【数3】
【0102】
上記式(4)の右辺のNtrainは、訓練データのサンプル数、すなわち、探索対象群のサンプル数Nである。Nestは検証データのサンプル数である。ST=1は、探索対象群のうち治療選択T=1に属するサンプルの分散であり、ST=0は、探索対象群のうち治療選択T=0に属するサンプルの分散である。また、pは、探索対象群のうち治療選択T=1に属するサンプル数の割合である。
【0103】
また、上記式(3)、(4)の右辺全体を探索対象群のサンプル数Nで割って規格化してもよい。
【0104】
つぎに、分割後の損失関数LossPostを下記式(5)に示す。分割後の損失関数LossPostは、推定した治療効果τ(l)をそれぞれ最大化する損失関数である。
【0105】
【数4】
【0106】
上記式(5)において、右辺のN(l)は、サブタイプlのサンプル数である。上記式(3)、(4)の右辺全体が探索対象群のサンプル数Nで割って規格化されていれば、上記式(5)の右辺全体を探索対象群のサンプル数(サブタイプL、Rの総サンプル数)で割って規格化してもよい。また、valは、因子xの範囲を区切るためのしきい値である。valを使用せずに、W(x)としてもよい。
【0107】
つぎに、探索部411は、分割前後の損失関数LossPre、LossPostの差分Gainを算出する(ステップS1308)。差分Gainは、損失関数LossPostが分割によって向上したかどうかを示す指標である。
【0108】
Gain=LossPost-LossPre・・・(6)
【0109】
つぎに、探索部411は、今回の差分Gainが保持中の差分Gainよりも大きいか否かを判定する(ステップS1309)。保持中の差分Gainとは、それ以前のループのステップS1310で保持されている差分Gainであり、目標値となる。ただし、初回実行時は、保持中の差分Gainが存在しないため、保持中の差分Gainの初期値として0が用いられる。
【0110】
今回の差分Gainが保持中の差分Gainよりも大きい場合(ステップS1309:Yes)、探索部411は、損失関数LossPostで、今回適用した分割前の損失関数LossPreを更新して、あらたな分割前の損失関数LossPreとし、保持中の差分Gainを今回の差分Gainで更新し、ステップS1305の2分割を実行したときの分岐条件を取得する。このようにして、分岐条件が探索される。そして、ステップS1311に移行する。
【0111】
一方、今回の差分Gainが保持中の差分Gainよりも大きくない場合(ステップS1309:No)、探索部411は、分割前の損失関数LossPreの更新と保持中の差分Gainの更新とをせずに、ステップS1311に移行する。
【0112】
つぎに、探索部411は、探索対象群の2分割(ステップS1305)が終了条件を充足したか否かを判定する(ステップS1311)。終了条件は、たとえば、探索対象として選択可能な予測因子501が残存していない場合である。探索対象群の2分割(ステップS1305)が終了条件を充足していない場合(ステップS1305:No)、すなわち、探索対象として選択可能な予測因子501が残存する場合、ステップS1304に戻る。この場合、探索部411は、ステップS1309で前回の差分より大きいと判定されたサブタイプL、Rの各々を、次の探索対象群に設定する。
【0113】
一方、終了条件を充足した場合(ステップS1311:Yes)、すなわち、探索対象として選択可能な予測因子501が残存しない場合、因果木が1つ作成されたことになり、探索部411は、作成した因果木を保存して、ステップS1312に移行する。
【0114】
つぎに、探索部411は、因果木作成の終了条件を充足したか否かを判定する(ステップS1312)。終了条件は、たとえば、因果木の数のしきい値である。終了条件を充足していない場合(ステップS1312:No)(作成済みの因果木の数がしきい値に到達していない場合)、ステップS1303に戻り、探索部411は、因子リストを再作成する。
【0115】
一方、終了条件を充足した場合(ステップS1312:Yes)、探索部411は、作成した因果木を出力して、ステップS1203に移行する。これにより、ステップS1312で設定されたしきい値分の因果木が作成される。因果木を構成するノード群のうち分岐先ノードを有するノードは、当該ノードで群分割したときに用いられた予測因子と分割しきい値とを含む。
【0116】
<シミュレーション結果>
つぎに、実施例1のシミュレーション結果について、図14を用いて説明する。
【0117】
図14は、従来法と実施例1との分割前と比較した予測誤差改善率を示す箱ひげ図である。従来法とは、上記式(3)、(5)からW(x)を除いた式で予測誤差改善率を算出する方法である。
【0118】
=η(x)+T・τ(x)・・・(7)
【0119】
上記式(7)は、アウトカムの算出式である。添え字jは患者ID601である。左辺のYは、患者ID601の値がjの患者(以下、患者j)のアウトカムである。η(x)は、患者jの予後因子xによる治療に関係しない効果である。Tは、患者jの治療選択T(=0または1)である。τ(x)は、予測因子xによる治療効果である。
【0120】
ここで、η(x)は、下記式(8)で表すこととする。
【0121】
【数5】
【0122】
また、τ(x)は、下記式(9)で表すこととする。
【0123】
【数6】
【0124】
上記式(8)および(9)は、シミュレーションによるデータ生成方法を示す式であり、図7に類するテーブルデータが作される。患者jのサンプル数NをN=1000とし、患者jの治療選択Tはランダムとした。ここで、因子x1~x8のうち、因子x1、x2は、他の因子x3~x8に比べて、重み502の値が非常に大きいものとする。
【0125】
本シミュレーションでは、精度の評価としてRMSE(二乗平均平方根誤差)を用いて、分割前後での予測誤差低減率を算出した。実施例1では、重み付けされているため、予測誤差改善率が向上し、かつ、変動係数(CV)が顕著に低減していることが確認できる。
【実施例0126】
つぎに、実施例2について説明する。実施例1では、重みテーブル430が存在することを前提に説明したが、実施例2は、分析装置300が、重みテーブル430を生成する例である。すなわち、実施例2では、分析装置300は、生成部400により、患者データテーブル420を参照して、重みテーブル430を生成する。なお、実施例2では、実施例1との相違点を中心に説明するため、実施例1との共通部分については説明を省略する。
【0127】
図15は、実施例2にかかる生成部400による重みテーブル430の生成処理手順例を示すフローチャートである。生成部400は、患者データテーブル420から患者データを規定するエントリをランダムサンプリングする(ステップS1501)。サンプリング数は、たとえば、患者データテーブル420の全サンプルの50%、70%など任意に設定される。また、生成部400は、サンプリングされなかったサンプルを検証データとして用いてもよい。
【0128】
つぎに、生成部400は、ステップS1501でサンプリングされたサンプル群を層別化部402に出力し、層別化部402から図12に示した層別化処理(ステップS902)を呼び出して実行する(ステップS902)。
【0129】
つぎに、生成部400は、層別化処理(ステップS902)による層別化結果である各分岐群から、分割に用いられた予測因子501ごとに、予測因子501の値とその分割しきい値とを取得する(ステップS1503)。
【0130】
このあと、生成部400は、終了条件を充足したか否かを判定する(ステップS1504)。終了条件は、具体的には、たとえば、ステップS1501~S1503の実行回数が所定回数に到達した場合である。終了条件を充足していない場合(ステップS1504:No)、すなわち、ステップS1501~S1503の実行回数が所定回数に未到達である場合、ステップS1501に戻る。一方、終了条件を充足した場合(ステップS1504:Yes)、すなわち、ステップS1501~S1503の実行回数が所定回数に到達した場合、予測因子501ごとに重み502を算出して、重みテーブル430に保存する(ステップS1505)。
【0131】
具体的には、たとえば、生成部400は、予測因子501ごとに、予測因子501の値と分割しきい値との統計量を算出し、算出した値を重み502とする。より具体的には、たとえば、予測因子501の値のうち最大値と分割しきい値との差を重み502としてもよく、予測因子501の値のうち中央値と分割しきい値との差を重み502としてもよく、予測因子501の値のうち最頻値と分割しきい値との差を重み502としてもよく、予測因子501の値の平均値と分割しきい値との差を重み502としてもよい。また、予測因子501の値の出現数でもよい。
【0132】
このようにして、分析装置300は、重みを医学知識として自動学習する。したがって、分岐条件として用いられる予測因子ほど重み502を大きくすることができ、治療効果の推定精度の向上を図ることができる。
【0133】
なお、上述した層別化処理(ステップS902)は、図9でも適用されるため、図9で層別化処理(ステップS902)が実行された場合に、生成部400は、その層別化結果を用いて、重みテーブル430を更新してもよい。これにより、分析装置300で分析すればするほど重みテーブル430の信頼性が向上し、治療効果の推定精度が向上する。
【0134】
また、実施例1においては、任意に作成された重みテーブル430を適用したが、実施例2では、分析装置300以外の生成部400を有するコンピュータが、実施例2による生成処理で重みテーブル430を生成し、分析装置300が当該コンピュータから重みテーブル430を取得してもよい。
【実施例0135】
つぎに、実施例3について説明する。実施例1では、重みテーブル430が存在することを前提に説明したが、実施例3は、分析装置300が、重みテーブル430を生成する例である。すなわち、実施例3では、分析装置300は、生成部400により、PubMedのような医学文献データベースを参照して、重みテーブル430を生成する。なお、実施例3では、実施例1との相違点を中心に説明するため、実施例1との共通部分については説明を省略する。
【0136】
具体的には、たとえば、分析装置300は、生成部400により、医学文献データベースに対しアブストラクト検索を実行し、関連語句の出現率を統計処理し、その統計処理結果を予測因子501の重み502に設定する。このようにして、分析装置300は、医学知識を自動学習する。
【0137】
図16は、医学文献データベースからの検索結果を示すヒストグラムである。ヒストグラム1600の縦軸は、検索キーワードにより検索された文に含まれている因子の列である。検索キーワードには、たとえば、リスク因子の名称が用いられる。また、検索キーワードには、「cause」や「relate」といった転帰に関する接続詞を含めてもよい。
【0138】
図16の横軸は、因子の重み502である。生成部400は、重み502の値を、検索キーワードにより検索された文中の、検索キーワードの出現回数や検索キーワードにより検索された文の数が多ければ多いほど、値が高くなるように算出される。ただし、検索キーワードにより検索された文に、「not」のような否定語が含まれていれば、生成部400は、重み502の値が高くしない、または、低くなるように算出する。
【0139】
生成部400は、重み502の値が所定のしきい値以下、または、上位k+1番目以下の因子を除外し、重み502の値が所定のしきい値より大きい、または、上位k番目までの因子を予測因子501として、重み502とともに重みテーブル430に保存する。
【0140】
図17は、実施例3にかかる重みテーブル430の生成処理手順例を示すフローチャートである。生成部400は、ユーザ操作により検索キーワードを設定する(ステップS1701)。つぎに、生成部400は、医学文献データベースに検索キーワードを送信して、医学文献データベースの各文献のアブストラクトを検索し、医学文献データベースから、検索キーワードに該当する文献のアブストラクトを取得する(ステップS1702)。
【0141】
つぎに、生成部400は、ステップS1702で取得したアブストラクトを、検索キーワードに含まれている因子で検索し、当該因子を含む文章を抽出する(ステップS1703)。
【0142】
つぎに、生成部400は、ステップS1703で抽出した文章を、転帰に関する接続詞(たとえば、「cause」や「relate」)で検索し、当該接続詞を含む文章について、肯定関係カウントCposをインクリメントする。肯定関係カウントCposは、因子と接続詞との関係が肯定を示す文章に関する評価値であり、カウント値が高いほど重み502が大きくなる。一方、転帰に関する接続詞で検索された文章に「not」のような否定語が含まれている場合、生成部400は、否定関係カウントCnegをインクリメントする。
【0143】
つぎに、生成部400は、因子ごとに重み502を算出する(ステップS1705)。重み502(w)は、たとえば、下記式(10)により算出される。
【0144】
w=Cpos/Cpos・・・(10)
【0145】
なお、分母の否定関係カウントCnegが一度もカウントされないとCneg=0となって計算不能となるため、Cneg=0の場合でも式(10)の分母が0にならないよう式(1)を修正してもよい。
【0146】
つぎに、生成部400は、算出した重み502を重みテーブル430に保存する(ステップS1706)。
【0147】
このあと、生成部400は、終了条件を充足したか否かを判定する(ステップS1704)。終了条件は、具体的には、たとえば、ステップS1703で検索された因子について、すべて重み502が算出済みである場合である。重み502が算出されていない因子があれば(ステップS1707:No)、ステップS1703に戻る。一方、重み502が算出されていない因子がなければ(ステップS1707:Yes)、生成部400は、一例の処理を終了する。
【0148】
このようにして、分析装置300は、医学知識を重みとして自動学習する。したがって、医学文献データベースから検索される因子ほど重み502が大きくなり、医学文献から医学的根拠がある因子と予測因子とした場合に、治療効果の推定精度の向上を図ることができる。
【0149】
なお、実施例3では、医学文献のアブストラクトを検索対象としたため、医学文献そのものを検索対象とするよりも重みテーブル430の生成処理の高速化を図ることができる。一方、生成部400は、医学文献そのものを検索対象としてもよい。これにより、医学文献のアブストラクトを検索対象とするよりも重み502の信頼性が向上し、治療効果の推定精度が向上する。
【0150】
また、実施例1においては、任意に作成された重みテーブル430を適用したが、実施例1では、分析装置300以外の生成部400を有するコンピュータが、実施例3による生成処理で重みテーブル430を生成し、分析装置300が当該コンピュータから重みテーブル430を取得してもよい。
【0151】
以上説明したように、上述した分析装置300によれば、事前に経験知や医学文献から推察される予測因子に対して重み付けを行うことにより、治療効果に寄与する因子で患者を層別化する場合の分類精度が向上する。したがって、治療効果の推定精度が向上し、より正しい患者層別化を実現することができる。
【0152】
このように、分析装置300は、直接的に患者特性に応じた推定治療効果に基づき患者をサブタイプに分類することができる。したがって、層別化された患者グループは治療効果が異なるサブタイプとして分類され、患者個人の特性に合った最適治療選択に寄与するものと期待される。よって、ある薬剤による治療効果が期待できるサブタイプを特定するが可能になる。
【0153】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。たとえば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【0154】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、たとえば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0155】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
【0156】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0157】
300 分析装置
301 プロセッサ
302 記憶デバイス
400 生成部
401 取得部
402 層別化部
403 出力部
411 探索部
412 反復部
420 患者データテーブル
430 重みテーブル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17