(57)【特許請求の範囲】
【請求項１】
ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算部と、
分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、当該特徴ベクトルの各単語頻度に対して前記単語ごとに計算された重みを付与したうえで、前記分析対象の一連の対象者を潜在トピック分析によりクラスタリングするクラスタリング部と、を備えることを特徴とするクラスタリング装置。
【請求項２】
ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算部と、
分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、
前記分析対象の一連の対象者の特徴ベクトルを列挙した行列データDに対して潜在トピック分析を施すことで、当該行列データを対象者及びトピックの関係行列θとトピック及び単語の関係行列Φとの積に分解し、
前記行列データDに対して前記単語ごとに計算された重みWを付与した行列データW*Dに対して潜在トピック分析を施して得られる、対象者及びトピックの修正された関係行列θ'とトピック及び単語の修正された関係行列Φ'とを、潜在トピック分析を施すことなく近似値として求め、
当該近似値として求められた修正された関係行列θ'を前記分析対象の一連の対象者のクラスタリング結果とするクラスタリング部と、を備え、
前記クラスタリング部は、前記近似値として求めるに際して、前記重みWを恒等変換に微小変換を加えたものと判定される複数の変換の積に分解し、当該複数の変換を逐次的に前記関係行列θ及び前記関係行列Φに対して摂動として加えることにより、前記修正された関係行列θ'及び前記修正された関係行列Φ'をそれぞれ近似値として求めることを特徴とするクラスタリング装置。
【請求項３】
前記重み計算部は、前記重み計算用の医療データを解析して、
特定年代において前記疾病名が存在する対象者に関し、当該特定年代より前記発症期間だけ戻った年代に存在する単語についてそれぞれ、当該対象者を共起に寄与するものとしてカウントし、
特定年代において前記疾病名が存在しない対象者に関し、当該特定年代より前記発症期間だけ戻った年代に存在する単語についてそれぞれ、当該対象者を非共起に寄与するものとしてカウントし、
前記カウントされた共起の総数の、前記カウントされた共起及び非共起の総数に対する割合として、前記単語ごとの重みを計算することを特徴とする請求項１または２に記載のクラスタリング装置。
【請求項４】
前記重み計算部はさらに、前記重み計算用の医療データを解析して、
特定年代において前記疾病名が存在する対象者に関し、当該特定年代より前記発症期間だけ戻った年代に存在する単語についてそれぞれ、当該対象者を共起に寄与するものとしてカウントすると共に、当該対象者の前記発症年代だけ戻った年代に既に前記疾病名が存在する場合、当該対象者を既発症者としてカウントし、
前記カウントされた共起の総数より前記カウントされた既発症者の総数を減じた数の、前記カウントされた共起及び非共起の総数に対する割合として、前記単語ごとの重みを計算することを特徴とする請求項３に記載のクラスタリング装置。
【請求項５】
コンピュータによって実行されるクラスタリング方法であって、
ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算段階と、
分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、当該特徴ベクトルの各単語頻度に対して前記単語ごとに計算された重みを付与したうえで、前記分析対象の一連の対象者を潜在トピック分析によりクラスタリングするクラスタリング段階と、を備えることを特徴とするクラスタリング方法。
【請求項６】
コンピュータによって実行されるクラスタリング方法であって、
ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算段階と、
分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、
前記分析対象の一連の対象者の特徴ベクトルを列挙した行列データに対して潜在トピック分析を施すことで、当該行列データを対象者及びトピックの関係行列θとトピック及び単語の関係行列Φとの積に分解し、
前記行列データDに対して前記単語ごとに計算された重みWを付与した行列データW*Dに対して潜在トピック分析を施して得られる、対象者及びトピックの修正された関係行列θ'とトピック及び単語の修正された関係行列Φ'とを、潜在トピック分析を施すことなく近似値として求め、
当該近似値として求められた修正された関係行列θ'を前記分析対象の一連の対象者のクラスタリング結果とするクラスタリング段階と、を備え、
前記クラスタリング段階では、前記近似値として求めるに際して、前記重みWを恒等変換に微小変換を加えたものと判定される複数の変換の積に分解し、当該複数の変換を逐次的に前記関係行列θ及び前記関係行列Φに対して摂動として加えることにより、前記修正された関係行列θ'及び前記修正された関係行列Φ'をそれぞれ近似値として求めることを特徴とするクラスタリング方法。
【請求項７】
コンピュータを請求項１ないし４のいずれかに記載のクラスタリング装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、医療データにおいて特定疾病のリスクを予測するのに適したクラスタリングを行うことのできるクラスタリング装置、方法及びプログラムに関する。
【背景技術】
【０００２】
医療データに基づいて、対象者をクラスタリングしたい場合がある。特許文献１や特許文献２に代表されるように、健康管理システム等が大きな広がりを見せている。このような健康管理システムでは、利用者に対して健康上のアドバイス等を行う場合が多いが、特許文献３に示すように、利用者を実際の健康データを元に分類した上でアドバイスを行った方が、より行動変容につながりやすく、効果的なアドバイスが可能となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2013-085626号公報
【特許文献２】特開2010-264088号公報
【特許文献３】特開2010-170534号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、近年、潜在トピック分析（特に、潜在的ディリクレ配分法：Latent dirichlet allocation：LDA）に代表される、高精度な分類手法が注目を浴びている。このLDAを用いて、健康要因の似通った人を分類し、将来健康状態が悪化するハイリスク者を抽出することも可能である。
【０００５】
一般的に教師無し学習では、得られたデータから特徴の似通ったもの同士を類型化し、LDAに代表されるトピック分類では、教師無し学習により複数トピックの混合としてデータを表現して類型化を行う。医療データを対象とする場合、トピックは、健康状態を表す単語の発生確率の混合として表現されることとなる。
【０００６】
一般的に、レセプトデータ（診療明細情報）や健診データ等の医療データを用いて類型化を行い、糖尿病等の特定の疾病リスクを予測したいとき、教師なし学習では不要な特徴（当該特定の疾病とは関係のない特徴）を取り扱ってしまうことから精度が低下してしまうという課題がある。
【０００７】
図１は、当該課題を模式的に説明するための例を示す図であり、同一の医療データに対して類型化を行った２つの結果R10,R20が示されている。当該医療データにおいて糖尿病の疾病リスクを予測したい場合の類型化の結果として、結果R10は教師無し学習により不要な特徴が現れてしまった望ましくない例を、結果R20は糖尿病の予測に適した望ましい例を、それぞれ示している。
【０００８】
すなわち、結果R10においては医療データ内の一連の患者は、健常者のクラスタC11と、骨折の患者のクラスタC12と、風邪の患者のクラスタC13と、糖尿病の患者のクラスタC14と、に類型化（すなわち、分類）されてしまっている。ここで特に、「骨折」や「風邪」は基本的には「糖尿病」とは独立であるので、このような結果R10の類型化は、「糖尿病」のリスク予測に用いるものとしては不適切である。「不要な特徴」である「骨折」や「風邪」が現れることで、「糖尿病」自体の分析を精密に行うことができない結果となっている。
【０００９】
一方、結果R20は、医療データ内の一連の患者を、「糖尿病」の疾病リスク予測に関して適切に類型化したものとなっている。すなわち、健常者のクラスタC21と、糖尿病予備軍AのクラスタC22と、糖尿病予備軍BのクラスタC23と、糖尿病患者のクラスタC24と、に類型化されている。結果R20は全て糖尿病についての観点からの類型化であり、結果R10のように「骨折」や「風邪」といった「不要な特徴」は現れていないことから、適切に糖尿病の疾病リスクの検討が可能な結果となっている。
【００１０】
本発明は、上記従来技術の課題に鑑み、特定疾病のリスクを予測するのに適したクラスタリングを行うことが可能なクラスタリング装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明は、クラスタリング装置であって、ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算部と、分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、当該特徴ベクトルの各単語頻度に対して前記単語ごとに計算された重みを付与したうえで、前記分析対象の一連の対象者を潜在トピック分析によりクラスタリングするクラスタリング部と、を備えることを特徴とする。
【００１２】
また、本発明は、クラスタリング装置であって、ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算部と、分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、前記分析対象の一連の対象者の特徴ベクトルを列挙した行列データに対して潜在トピック分析を施すことで、当該行列データを対象者及びトピックの関係行列θとトピック及び単語の関係行列Φとの積に分解し、前記行列データDに対して前記単語ごとに計算された重みWを付与した行列データW*Dに対して潜在トピック分析を施して得られる、対象者及びトピックの修正された関係行列θ'とトピック及び単語の修正された関係行列Φ'とを、潜在トピック分析を施すことなく近似値として求め、当該近似値として求められた修正された関係行列θ'を前記分析対象の一連の対象者のクラスタリング結果とするクラスタリング部と、を備え、前記クラスタリング部は、前記近似値として求めるに際して、前記重みWを恒等変換に微小変換を加えたものと判定される複数の変換の積に分解し、当該複数の変換を逐次的に前記関係行列θ及び前記関係行列Φに対して摂動として加えることにより、前記修正された関係行列θ'及び前記修正された関係行列Φ'をそれぞれ近似値として求めることを特徴とする。
【００１３】
また、本発明は、クラスタリング方法であって、ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算段階と、分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、当該特徴ベクトルの各単語頻度に対して前記単語ごとに計算された重みを付与したうえで、前記分析対象の一連の対象者を潜在トピック分析によりクラスタリングするクラスタリング段階と、を備えることを特徴とする。
【００１４】
また、本発明は、クラスタリング方法であって、ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算段階と、分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、前記分析対象の一連の対象者の特徴ベクトルを列挙した行列データに対して潜在トピック分析を施すことで、当該行列データを対象者及びトピックの関係行列θとトピック及び単語の関係行列Φとの積に分解し、前記行列データDに対して前記単語ごとに計算された重みWを付与した行列データW*Dに対して潜在トピック分析を施して得られる、対象者及びトピックの修正された関係行列θ'とトピック及び単語の修正された関係行列Φ'とを、潜在トピック分析を施すことなく近似値として求め、当該近似値として求められた修正された関係行列θ'を前記分析対象の一連の対象者のクラスタリング結果とするクラスタリング段階と、を備え、前記クラスタリング段階では、前記近似値として求めるに際して、前記重みWを恒等変換に微小変換を加えたものと判定される複数の変換の積に分解し、当該複数の変換を逐次的に前記関係行列θ及び前記関係行列Φに対して摂動として加えることにより、前記修正された関係行列θ'及び前記修正された関係行列Φ'をそれぞれ近似値として求めることを特徴とする。
【００１５】
さらに、本発明は、コンピュータを前記クラスタリング装置として機能させるプログラムであることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、単語ごとに、発症期間を経て疾病が発症することへの関連度を重みとして計算し、バグオブワーズの形式で与えられている分析対象の一連の対象者をクラスタリングするに際して当該単語重みを考慮するので、特定疾病のリスクを予測するのに適したクラスタリング結果を得ることができる。
【図面の簡単な説明】
【００１７】
【図１】特定の疾病リスクの予測を行いたい場合に、教師無し学習による類型化では無関係な特徴を取り扱うことから精度が低下してしまうという課題を模式的に説明する例を示す図である。
【図２】一実施形態に係るクラスタリング装置の機能ブロック図である。
【図３】重み算出部が読み込む医療データの模式的な例を示す図である。
【図４】共起率としての重みを各単語について計算した例を示す図である。
【図５】医療データにおいて共起又は非共起を調べる年代を説明するための図である。
【図６】潜在トピック分析によるクラスタリングを説明するための図である。
【図７】第二実施形態における修正計算を説明するための図である。
【発明を実施するための形態】
【００１８】
図２は、一実施形態に係るクラスタリング装置の機能ブロック図である。クラスタリング装置10は、重み計算部11、分析対象文書化部12及びクラスタリング部13を備える。各部の概要は以下の通りである。
【００１９】
重み計算部11では、重み計算用の全患者・年代のデータとしての医療データを読み込むと共に、データ分析を実施するユーザより分析対象の疾病名及び発症期間の指定を受け付け、その詳細を後述する処理によって単語ごとの重みを求めて、クラスタリング部13に渡す。当該単語ごとの重みの情報を利用することにより、当該指定された疾病が当該指定された発症期間の経過後（例えば発症期間に１年を指定した場合は１年後）に発症するリスクを抱えた患者をクラスタリング部13において高精度に抽出すると共に、クラスタリング結果を参照することで当該リスク要因を詳細に分析することが可能となる。
【００２０】
図３は、重み計算部11が当該読み込む医療データの模式的な例を示す図である。図３の例では、全医療データは患者Aさん〜Fさんに関するものであり、当該各患者の各年代における医療データが与えられている。すなわち、患者Aさんについて40歳〜43歳の各年代における医療データと、患者Bさんについて42歳〜45歳の各年代における医療データと、患者Cさんについて41歳〜43歳の各年代における医療データと、患者Dさんについて50歳〜53歳の各年代における医療データと、患者Eさんについて51歳〜53歳の各年代における医療データと、患者Fさんについて52歳〜55歳の各年代における医療データと、が与えられている。
【００２１】
このような各患者の各年代につき与えられる医療データの具体的な内容としては、レセプトデータ（診療明細情報）及び／又は健診データを利用することができる。レセプトデータには、各患者につき診断された病名や症状、また、処方された薬及びその量などが日時と共に記載されている。健診データには、各患者につき血圧、体重その他といった健康診断の各項目とその評価値とが、診断の日時と共に記載されている。
【００２２】
従って、当該医療データは、各患者の各年代につき、その健康状態を反映した特定の単語を列挙したものとなっている。また、単語の種類によっては、数値が紐付けられることとなる。例えば、レセプトデータにおいて処方された薬の名前を表す単語には、その量が紐付けられる。健診データにおいて血液検査の各項目には、その評価値が紐付けられる。
【００２３】
また、当該医療データは、参照することで、各患者につき、特定の年代において特定の疾病の発症がある場合は、その旨の情報を得ることができるように構成されている。図３の例では、患者Aさんは43歳において高脂血症を発症しており、患者Dさんは51歳において脂肪肝を発症しており、患者Fさんは52歳において糖尿病腎症を発症している。なお、こうした情報を得ることが可能なように、医療データは疾病の診断の旨の情報が含まれるレセプトデータを含んで構成されていることが好ましいが、特定疾病の特定年代における発症の旨の情報が得られさえすれば、必ずしもレセプトデータを含んでいなくともよい。
【００２４】
なお、医療データの記載項目の具体例として、後述する図４における欄C2における各記載を挙げることができる。
【００２５】
分析対象文書化部12では、健康分析対象の一連の患者の医療データを読み込み、各患者の医療データを文書化して、クラスタリング部13に渡す。
【００２６】
分析対象文書化部12にて当該読み込む医療データは、重み計算部11で読み込んだのと同種のものであり、レセプトデータ及び／又は健診データを含んで構成されるものである。ここで、重み計算部11で読み込んだデータとは別の患者についてのデータを読み込んでもよいし、重み計算部11で読み込んだデータの一部又は全部の患者のデータを含めて分析対象として読み込むようにしてもよい。
【００２７】
ただし、重み計算部11で読み込んだデータは図３に例示したように、各患者につき一連の年代に渡るものであったが、分析対象文書化部12で読み込むデータは、各患者につき、１つの年代のみで構成されている。図３の例で、各患者A〜Fの現在（例えば2014年）の年齢における医療データが図示する最後の部分であるとすると、分析対象文書化部12では例えば、各患者A〜Fの当該現在の年代における医療データ（Aの43歳、Bの45歳、…、Fの55歳の医療データ）を読み込むことができる。
【００２８】
分析対象文書化部12では、以上のような各患者の各１つの年代の医療データを、文書化する。当該文書化は、後段のクラスタリング部13において潜在トピック分析によるクラスタリングが可能な形式へと予め変換しておく前処理に相当する。
【００２９】
分析対象文書化部12では具体的には、周知の形式であるBag of Words（バグオブワーズ）の形式で文書化する。すなわち、健康状態を表す複数m個の単語i1, i2, ,…, imをそれぞれ何回用いるかという単語頻度のm次元ベクトルの形で、文書化する。当該複数の単語は、医療データ内に現れたものから作成することができる。
【００３０】
すなわち、レセプトデータであれば診断された病名や症状、また、処方された薬等の、記載されている健康状態や健康関連品目、健康関連事項を表す各単語をそのまま、バグオブワーズにおける単語頻度ベクトルの各要素となる単語として利用する。健診データであっても同様に、検査項目を表す各単語をそのまま、バグオブワーズにおける単語の各々として利用する。また、記載項目がフレーズで構成されていれば、所定の単語抽出フィルタで単語のみを抽出して利用してもよい。
【００３１】
頻度に関しては、単語に対して上記例示した薬の量や血液検査の項目の場合のように数値が紐付けられている場合は、単語ごとに予め設定しておく変換規則に従って、紐付けられている数値を頻度としての値に変換することができる。また、各単語における数値の紐付けの有無によらず、当該単語が医療データ内にあれば頻度「１」、なければ頻度「０」とするといった形で文書化してもよい。
【００３２】
また、頻度の対応づけを含む分析対象文書化部12における当該文書化には、本出願人による特願2013-159323号（数値データ解析装置及びプログラム）、特願2013-163207号（数値データ解析装置及びプログラム）、特願2013-217817号（数値データ文書化装置及びプログラム）などを利用してもよい。また、バグオブワーズにおける単語頻度ベクトルの各要素の単語ごとに、以上説明した頻度を対応付ける手法を使い分けるようにしてもよい。
【００３３】
クラスタリング部13では、分析対象文書化部12から送られる分析対象の各患者の単語頻度ベクトル（分析対象の各患者の特徴ベクトルに相当）に対して、LDA等の潜在トピック分析を行うことにより、各患者のクラスタリング結果を得る。
【００３４】
当該実施形態では特に、分析対象の各患者の特徴ベクトルをそのままクラスタリングするのではなく、重み計算部11で得られた単語ごとの重みを予め掛け合わせたうえでクラスタリング部13がクラスタリングを行うことにより、特定疾病が特定期間内において発症しうるか否かという観点に特化したクラスタリング結果を得ることができる。
【００３５】
すなわち、分析対象文書化部12より得られる、各患者Aについて所定の複数m個の単語i1, i2, ,…, imのそれぞれの頻度を与えた特徴ベクトルをV[A]=(f1[A], f2[A], …, fm[A])とすると、クラスタリング部13は当該特徴ベクトルV[A]をそのままクラスタリングするのではなく、重み計算部11で得られる、当該各単語i1, i2, ,…, imのそれぞれの重みw1, w2, …, wmを掛け合わせた、V'[A]=(w1* f1[A], w2*f2[A], …, wm*fm[A])をクラスタリング対象として、LDA等の潜在トピック分析を行う。
【００３６】
ここで、重み計算部11の詳細説明で後述するように、当該掛け合わせる各単語i1, i2, …, imのそれぞれの重みw1, w2, …, wmは、特定疾病が特定期間内に発症することに関連した単語についてその単語頻度を大きくさせ、関連しない単語についてその単語頻度を小さくさせるような値として、求められている。従って、各患者Aにつき当該重みを掛け合わせた特徴ベクトルV'[A]を特徴ベクトルとしてクラスタリングすることで、特定疾病が特定期間内において発症しうるか否かという観点に特化したクラスタリング結果を得ることができる。
【００３７】
図１の例であれば、重みw1, w2, …, wmを用いることで、分析しようとしている「糖尿病」とは関係ない要因として、結果R10に現れる「骨折」や「風邪」に関連する単語の頻度を小さくし、同時に、「糖尿病」に関連する単語の頻度を大きくすることができる。こうして、クラスタリング対象の特徴ベクトルを、原データV[A]をそのまま用いるのではなく、予め「糖尿病」に関する特徴を大きく反映したものV'[A]へと変換しておくことにより、結果R20として示すような、「糖尿病」に特化したクラスタリング結果を得ることができる。
【００３８】
次に、上記のような各単語i1, i2, …, imの重みw1, w2, …, wmを求める重み計算部11の詳細について説明する。
【００３９】
ここで、データ分析を行うユーザが、重み計算部11に対する指定入力として、１年後に糖尿病を発症する人を予測したいという旨を入力した場合を例として説明する。すなわち、ユーザは分析対象の疾病名として「糖尿病」を指定し、発症期間として、「１年後」を指定した場合を例とする。
【００４０】
この場合、重み計算部11に対する入力としての図２で例示したような各患者の各年代における医療データ内の単語のうち、「１年後」に「糖尿病」を発症している事例に関連する単語を優先的に残すような重みが、求めるべきものとなる。
【００４１】
具体的に当該重みを計算するには、1年前（n-1歳の時点）の医療データと1年後（n歳の時点）の医療データでの糖尿病疾病との「共起」関係を見れば良い。すなわち、患者Aさんの1年前（n-1歳の時点）の医療データに薬剤名「a」が記載されており、1年後（n歳の時点）の医療データに診断結果としての「糖尿病」が記載されている場合には、「共起」が発生しており、関連性があると考え、当該薬剤名「a」についてのベクトルv[a]=(関連度、非関連度)=(共起数、非共起数)のベクトル要素のうち関連度に、患者Aさんからの共起件数に対する寄与分として「1」を加える。同様に、患者Bさんの1年前（m-1歳の時点）の医療データに薬剤名「a」の記載があるが、1年後（m歳の時点）の医療データに診断結果としての「糖尿病」の記載がない場合には、上記ベクトルv[a]の非関連度に、患者Bさんからの非共起件数に対する寄与として「1」を加える。
【００４２】
なお、上記で寄与として関連度または非関連度に「1」を「加える」とは、次の操作を意味している。すなわち、薬剤名「a」についてのベクトルv[a]に初期値として(関連度、非関連度)=(0, 0)を設定したうえで、全ての患者についてそれぞれ関連度（共起）又は非関連度（非共起）のいずれに該当するかを調べ、関連度に該当する患者総数と非関連度に該当する患者総数とを「集計」することにより最終的なベクトルv[a]の値を求める際の、当該「集計」の操作が、「1」を「加える」という操作である。
【００４３】
こうして、分析対象文書化部12で得る特徴ベクトルの要素をなしている全ての単語i（上記の説明では当該単語iの一例として薬剤名「a」を用いた）に関して、重み計算部11に入力される医療データに含まれる全患者のそれぞれにつき、共起に該当する（n歳に「糖尿病」を発症しており、且つ、n-1歳データに単語iが存在する）か、あるいは非共起に該当する（n歳に「糖尿病」を発症しておらず、且つ、n-1歳データに単語iが存在する）か、を調べることで、共起となる患者の総数と非共起となる患者の総数とを求める。ここで、n歳で「糖尿病」を発症しているか否かは、n歳データに単語として「糖尿病」があるか否かによって判定すればよい。「糖尿病」以外の特定疾病をユーザが指定した場合も同様に、当該指定された特定疾病を表す単語の有無により判定すればよい。
【００４４】
なお、n歳において「糖尿病」を発症しており、且つ、n-1歳データに単語iが存在しない患者と、n歳において「糖尿病」を発症しておらず、且つ、n-1歳データに単語iが存在しない患者と、も医療データ内に存在しうる。このような患者については、単語iにおける共起・非共起のいずれの患者総数においてもカウントしないものとして扱う。
【００４５】
そして、当該求めた総数により、単語iについてのベクトルv[i]=(関連度[i]、非関連度[i])=(共起の患者総数、非共起の患者総数)を構成する。当該構成されたベクトルv[i]により、当該単語iに関する重みwiを以下の式(1)にて求めることができる。
【００４６】
【数１】
0006270216.tif 000002
【００４７】
当該式(1)より明らかなように、重みwiは、単語iに関して特定疾病を特定期間に発症すること（糖尿病を１年で発症すること）に関する共起率という意味合いを有している。
【００４８】
図４は、当該共起率としての重みを各単語について計算した実際の例を表形式で示す図である。欄C1には説明の際に参照するための行数が、欄C2には各単語iに対応する医療データ内の記載内容のそれぞれが、欄C3には式(1)における関連度[i]すなわち1年後に「糖尿病」を発症し且つ1年前の医療データに単語iが存在する患者数（共起数）が、欄C4には式(1)における非関連度[i]すなわち1年後に「糖尿病」を発症せず且つ1年前の医療データに単語iが存在する患者数（非共起数）が、欄C5は当該欄C3,C4の関連度[i],非関連度[i]から式(1)を用いて計算される共起率（重みwi）が、それぞれ記載されている。図４では、共起率の高いデータの順にソートすることで、医療データの一部分のみを表示してある。
【００４９】
なお、欄C2は、各患者の各年代における医療データの記載項目の例を示すものでもある。特定の疾病が診断されたことを表す疾病名に関する単語iとして、16行目の「２型糖尿病性腎症第１期」や、30行目の「食道ヘルニア」、31行目の「２型糖尿病・腎合併症あり」、33行目の「重症感染症」が挙げられる。分析ユーザが重み計算部11に対して指定する特定疾病の名称としては、「糖尿病」の他、こうしたものも指定可能であり、分析したい所定の疾病名を指定すればよい。
【００５０】
また、欄C2にて20行目や34行目は処方や処置に関する単語i、22行目及び25〜27行目は処置に用いる器具に関する単語iが示されている。その他の行は用いた薬剤名とその量とが示されている。例えば1行目には「A剤  ０．３ｍｇ」と記載され「A剤」を「０．３ｍｇ」だけ用いたことを表している。単語iとしては「A剤」のみを利用してよい。
【００５１】
なお、重み計算部11において入力される全医療データを解析することで以上のように各単語iにつき、特定期限で発症する特定疾病との関係が、各患者において共起又は非共起であるかを判定するに際しては、各患者の医療データのうちいずれの年代（糖尿病の発症有無を確認する年代nとその1年前であるn-1）を調べて判定するかという点で自由度があるが、これに関しては、種々の実施形態が可能である。図５は当該調べる年代に関する各実施形態を説明するための、重み計算部11に入力される医療データの一部の例を示す図である。なお、以上の説明と同じく、１年後に糖尿病を発症する人を予測しようとする場合を例に説明する。図５では患者A〜Cが存在するが、これは図３の例とは独立の患者A〜Cである。
【００５２】
図５では、最上段側に各患者の各年代（年齢）において取得した医療データの取得年代（西暦）が時間軸として示され、患者Aについては2010年〜2014年の各年において41歳〜45歳の医療データが取得されており、患者Bについては2011年〜2014年の各年において47歳〜50歳の医療データが取得されており、患者Cについては2010年〜2014年の各年において45歳〜49歳の医療データが取得されている場合を例示している。そして、破形マークで示しているように、患者Aは45歳(2014年)の時点で糖尿病を発症し、患者Bは48歳(2012年)の時点で糖尿病を発症し、患者Cは糖尿病を発症していないものとする。
【００５３】
共起又は非共起の判定を行うための対象年代の設定の一実施形態として、枠F1で囲んでいるように、糖尿病を発症しているか否かを調べる年代nと、その一年前で各単語iの共起／非共起を調べる年代n-1とを、暦に従って全ての受診者で共通となるように設定してもよい。
【００５４】
枠F1の例では、各患者につき、西暦2014年の時点の医療データで糖尿病を発症しているかをまず調べた後、1年手前の西暦2013年の時点の医療データ内の各単語iを調べ、2014年時点で糖尿病を発症している患者の医療データに含まれる単語iは共起としてカウント（当該単語iに関し、当該患者からの寄与分を共起としてカウント）し、2014年時点で糖尿病を発症していない患者の医療データに含まれる単語iは非共起としてカウント（当該単語iに関し、当該患者からの寄与分を非共起としてカウント）する。
【００５５】
図５の患者A〜Cの例では、患者A,Bの2013年の医療データ内の単語iが共起としてカウントされ、患者Cの2013年の医療データ内の単語iは非共起としてカウントされることとなる。なお、患者Bに関しては2012年に初めて糖尿病を発症するが、その後2014年まで当該症状が継続しており、その旨が2014年の医療データより判断可能であるという前提で、共起としてカウントしている。
【００５６】
なお、当該暦に従って全患者で共通の年代n, n-1を調査する場合は、当該年代n（及びn-1）の設定に関しては、現在を年代nとするといった所定設定を用いてもよいし、分析を行うユーザが重み計算部11に疾病名及び発症期間を指定する際に併せて年代nを指定するようにしてもよい。
【００５７】
また、共起又は非共起の判定を行うための対象年代の設定の別の一実施形態として、各患者につきまずその医療データが存在している全年齢範囲の医療データを重み計算部11において調べることにより、糖尿病の発症があるか否かを確認し、発症があった患者については初めて発症した年代（年齢）をn歳とし、n-1歳の医療データに含まれる単語iを全て共起としてカウントすることができる。逆に、発症がなかった患者については、医療データが存在している任意の年代をn歳とし、n-1歳の医療データに含まれる単語iを全て非共起としてカウントすることができる。
【００５８】
図５の例であれば、患者Aについては範囲R1として示すように、糖尿病を初めて発症した年齢としてn=45歳を設定し、n-1=44歳の医療データ内の単語iを共起としてカウントする。患者Bについては範囲R2として示すように、糖尿病を初めて発症した年齢としてn=48歳を設定し、n-1=47歳の医療データ内の単語iを共起としてカウントする。患者Cについては範囲R3やR4その他といったように、任意にn,n-1歳を設定し、n-1歳の医療データ内の単語iを非共起としてカウントする。
【００５９】
以上、１年後に特定疾病の一例としての糖尿病を発症するか否かという観点に特化したクラスタリングをクラスタリング部13において行うための、重み計算部11における重みの計算の手法を説明した。分析ユーザからの指定入力を受けて、２年後、３年後、また一般にN年後に特定疾病を発症するか否かという観点に特化したクラスタリングを行うための重み計算も、同様に可能である。
【００６０】
すなわち、１年後に発症する場合は年代n,n-1の医療データにおいて、年代nで特定疾病が発症しているか否かと、年代n-1の医療データ内の単語iと、の情報から患者ごとに共起／非共起を判定し、式(1)に従って各単語iの重みを求めた。
【００６１】
全く同様にして、N年後に発症する場合は年代n,n-Nの医療データにおいて、年代nで特定疾病が発症しているか否かと、年代n-Nの医療データ内の単語iと、の情報から患者ごとに共起／非共起を判定し、式(1)に従って各単語iの重みを求めることができる。年代n,n-Nの患者ごとの設定も、図５で説明したのと同様にすればよい。
【００６２】
また、重み計算部11では、分析ユーザからの指定入力を受けてN年以内に特定疾病を発症するか否かという観点に特化したクラスタリングをクラスタリング部13にて行うための重みを求めることも可能である。この場合1年後からN年後までの各k年後(k=1, 2, …, N)に特定疾病を発症するか否かについての、各単語i1, i2, …, imのそれぞれの重みw1(k), w2(k), …, wm(k)を計算したうえで式(2)のように当該各年の平均を取ることで、N年以内に特定疾病を発症するか否かの観点に特化したクラスタリングのための重みw1(N年以内), w2(N年以内), …, wm(N年以内)を求めることができる。
【００６３】
【数２】
0006270216.tif 000003
【００６４】
また、重み計算部11では、分析ユーザからの指定入力を受けて、N年後に複数の特定疾病の中のいずれか（少なくとも１つ）を発症するか否かという観点に特化したクラスタリングをクラスタリング部13にて行うための重みを求めることも可能である。この場合、N年後に複数の中の個別の特定疾病を発症することに関する重みをそれぞれ求めて、上記の式(2)と概ね同様に、当該個別の特定疾病ごとの重みを複数の疾病で平均すればよい。
【００６５】
さらに、重み計算部11では、分析ユーザからの指定入力を受けて、特定疾病が完治せずその治療が複数年に渡って継続されるものであるとき、特定疾病が（既に発症済みではなく）特定期間後に初めて発症することに関してより特化したクラスタリングをクラスタリング部13において行うための重みを求めることも可能である。
【００６６】
例えば、糖尿病は完治しないため、複数年にわたって治療が続けられる。この際、特定の糖尿病治療薬が継続的に使用されることになるので、当該薬を表す単語は糖尿病を既に発症している多くの患者において自ずと共起する傾向が強いこととなる。従って、以上説明した手法でそのまま計算すると、当該特定の糖尿病治療薬を表す単語iの関連性[i]は大きな値となり、重みwiも大きな値となる。
【００６７】
しかしながら、このような特定疾病の発症後に継続的に使用される薬を表す単語の重みを大きくしてしまうと、特定疾病を初めて発症する患者を高精度にクラスタリングし、そのリスク要因を分析したい場合に、クラスタリングの精度を下げてしまうこととなる。
【００６８】
そこで、糖尿病治療薬といったような、特定疾病の発症後に継続的に現れることとなる単語の影響を排除するような形で重みを計算するようにしてもよい。影響を排除するためには、各単語iにつき同一年代における関連性[i](同一年代)を計算し、以上説明した手法で計算した重みから減算すればよい。具体的には、次の通りである。
【００６９】
ここで、説明例として、ユーザからの分析指定が第一指定として特定疾病を１年後に発症し、且つ、第二指定として1年後に当該特定疾病を初めて発症する場合を用いる。この場合、以上の手法では第一指定のみを考慮することで、各患者につき、n歳で特定疾病を発症しているか否かを確認し、n-1歳における各単語iを調べることで、各単語iの共起／非共起を判定した。ここでさらに、第二指定を考慮することで、各患者につき、n-1歳の時点で既に特定疾病（n歳で発症したか否かを確認した特定疾病）を発症しているか否かを調べ、各単語iに関して、n-1歳の時点で既に特定疾病を発症している患者の数（既発症者数）を関連性[i](同一年代)として求めればよい。
【００７０】
そして、前述の式(1)においてさらに当該求めた関連性[i](同一年代)を減ずるようにすることで、以下の式(3)のようにして、重みwiを計算すればよい。なお、当該式(3)を用いる場合、前提となる式(1)における関連度[i]の算出においては、n-1歳時点で当該特定疾病の発症の有無を考慮しない実施形態を適用するものとする。
【００７１】
【数３】
0006270216.tif 000004
【００７２】
なお、n-1歳の時点で既に特定疾病を発症しているか否かは、n歳の時点でその医療データを参照して特定疾病の単語の有無を調べたのと全く同様に、n-1歳の時点の医療データ内における特定疾病の単語の有無によって判定することができる。以下説明するその他の年齢の時点での特定疾病の発症の判定も同様に可能である。
【００７３】
上記の説明では１年後に初めて特定疾病を発症する場合を説明したが、N年以内に初めて特定疾病を発症する場合をユーザ指定によって扱う際は、次のようにすればよい。すなわち、n歳で特定疾病を発症しているか否かを確認し、n-N歳における各単語iを調べることで関連度[i]及び非関連度[i]を求めると共に、n-N歳において特定疾病を既に発症している患者総数を関連性[i](同一年代)として、上記の式(3)から重みを求めればよい。
【００７４】
同様に、N年「以内」ではなくN年「後」に初めて特定疾病を発症する場合をユーザ指定によって扱う際は、n-N歳、n-N+1歳、n-N+2歳、…、n-1歳のいずれかの時点において特定疾病を既に発症している患者総数を関連性[i](同一年代)として求めて、上記の式(3)から重みを求めればよい。
【００７５】
次に、クラスタリング装置10の動作の別の一実施形態として、以上説明してきた実施形態（第一実施形態とする）よりも計算量を抑制することが可能な実施形態（第二実施形態とする）を説明する。
【００７６】
すなわち、第一実施形態では、重み計算部11に対して分析ユーザが特定疾病及び発症期間その他の、自身が高精度にリスク要因を分析したい内容を指定することで、これに特化した単語iごとの重みが計算された。クラスタリング部13では、ユーザ指定条件より計算された重みを、分析対象の一連の患者の文書化された医療データに掛け合わせたうえでLDA等の潜在トピック分析を実施し、ユーザ指定条件に特化したクラスタリング結果を得ていた。従って、第一実施形態では、クラスタリング部13において個別のユーザ指定条件ごとにそれぞれ、LDA等の相応の計算量を伴う潜在トピック分析を行う必要があった。ユーザ指定条件が何種類もの多数に渡れば、その数だけLDA等の相応の計算量を伴う計算を実施する必要があった。
【００７７】
これに対して、第二実施形態においては、クラスタリング部13におけるLDA等の相応の計算量を伴う潜在トピック分析は、多種類存在しうるユーザ指定条件に依存しない共通の計算処理として１回のみ行うようにすることで計算量を抑制し、得られたクラスタリング結果を、ユーザ指定条件により計算された重みによってそれぞれ修正することで、ユーザ指定条件に特化したクラスタリング結果を求める。当該修正処理は簡素な計算により可能であるため、第一実施形態にてLDAを個別に何回も適用するのと異なり、第二実施形態では計算量を抑制することが可能となる。具体的には、次の通りである。
【００７８】
まず、第二実施形態では、クラスタリング部13でユーザ指定条件に依存しない形で行うLDA等による潜在トピック分析によるクラスタリングは、分析対象文書化部12より得られた一連の患者の特徴ベクトルをそのままの形でクラスタリングする。すなわち、前述のように、第一実施形態では患者Aの特徴ベクトルV[A]に重みを掛け合わせたV'[A]がクラスタリング対象であったのに対して、第二実施形態では、V[A]がそのままクラスタリングされる。
【００７９】
図６は、クラスタリング部13における当該潜在トピック分析によるクラスタリングの結果及びその意味合いを説明するための図である。後述する第二実施形態における重みによるクラスタリング結果の修正の説明の前提事項として、まず図６を説明する。
【００８０】
図６にて、分析対象文書化部12より得られる分析対象の全データがDであり、各患者Aの特徴ベクトルV[A]を行ベクトルとして列挙した行列形式のデータである。すなわち、行列Dの各行は各患者の健康状態を表現したバグオブワーズとしての「文書」であり、その列方向に並ぶ要素は各単語i1, i2, …, imの頻度数となる。
【００８１】
LDA等の潜在トピック分析では、文書（各患者に対応する文書）をこのようにバグオブワーズ、つまり単語とその出現頻度として取り扱い、文書においてそのトピックを推定する。例えば、「経済」トピックからは、「株価」、「増収増益」・・・といった単語が出現するだろうし、「スポーツ」トピックからは「野球」、「サッカー」といった単語が出現することになる。
【００８２】
これは、観測されたバグオブワーズ表現、つまり単語i（列成分）と文書u（行成分）との関係行列Dを、図６に示すように、単語i（列成分）とトピックk（行成分）の関係行列Φと、文書u（行成分）とトピックk（列成分）の関係行列θとの積に分解することを意味している。このトピックkを推定するのがLDAであり、クラスタリング部13の計算により当該図６に示すような「D=θ×Φ」の分解結果が得られる。
【００８３】
このようにLDAに代表されるトピックモデルでは、各文書が固有のトピック比率を持ち、単語はこのトピック比率に従いトピックを選択したあと、そのトピックに固有の比率で生成されるという仮定をおいている。
【００８４】
そして、各患者のクラスタリング結果は、文書（患者）uとトピックkとの関係行列θとして表現されているが、具体的にどう解釈するかは種々の態様が可能である。
【００８５】
例えば、K個の各トピックkiがそれぞれクラスタに対応しており、各患者はそのトピック比率(k1, k2, …, kK)の値が最大となるトピックに対応するクラスタに属するという解釈を与えることで、クラスタリング結果を得ることができる。あるいは、K個の各トピックkiがそれぞれクラスタに対応しており、各患者はそのトピック比率(k1, k2, …, kK)の寄与分の人数（1人や0人といった整数ではなく、小数で表現される人数）に分かれて、各クラスタに分かれて所属しているという解釈により、クラスタリング結果を得ることもできる。
【００８６】
以上、図６のような潜在トピック分析におけるクラスタリングの詳細を前提として、第二実施形態における、クラスタリング部13での重みの利用を説明する。なお、ユーザからの特定疾病等の指定入力を受けての重み計算部11における単語iごとの重みの計算自体は、第一実施形態と全く同様である。
【００８７】
クラスタリング部13では、重みを掛けない各患者Aのそのままの特徴ベクトルV[A]で構成された全データDの分解結果「D=θ×Φ」において、ユーザからの指定入力に従って重み計算部11にて得られた各単語i1, i2, …, imの重みw1, w2, …, wmの情報を用いて簡素な修正計算（後述）を行うことで、クラスタリング結果を表す行列「θ」を「θ'」へと修正すると共に、行列「Φ」を「Φ'」へと修正したものとして、最終的なクラスタリング結果を得る。
【００８８】
当該修正計算の説明のため、まず、全データDの分解結果「D=θ×Φ」を以下の式(4)のように、要素表示する。すなわち、行列Dはn行m列であり、患者数がn、単語数がmである。行列θはn行K列であり、同じく患者数がnであり、トピック数がKである。行列ΦはK行m列であり、同じくトピック数がKであり、単語数がmである。
【００８９】
【数４】
0006270216.tif 000005
【００９０】
図７は、当該修正計算を説明するために、計算の主要な各段階を列挙した図である。まず、欄[10]に示すように、式(10)は上記要素表示した式(4)と同一であって、重み付与しない全データDが「D=θ×Φ」と分解された結果を表している。当該修正計算の方針は矢印で示すように、当該式(10)を出発点として式(20)に示すように、重み付与されたデータW*Dの分解結果「W*D=θ'×Φ'」へと逐次近似の繰り返しによって到達するというものである。ここで、逐次近似の際の各ステップの計算が順次、欄[1],[2], …, [i], …, [M]に示され、最終的に欄[10]における式(10)と式(20)とをつなげる関係式が欄[20]に示されている。
【００９１】
なお、式(20)その他の箇所において「*」はアダマール積であり、行列Wは重み計算部11にて得られた各単語i1, i2, …, imの重みw1, w2, …, wmを各患者につき共通の重みの行ベクトルとしたものを、全患者数nだけ並べて得られる重み行列Wである。すなわち、式(4)の成分表示に倣って式(20)の右辺を成分表示すると以下の式(5)となる。
【００９２】
【数５】
0006270216.tif 000006
【００９３】
逐次計算の各段階は以下の通りであり、欄[1],[2], …, [i], …, [M]に示す計算がこの順番に実行される。まず、欄[1]では、式(1-1)〜(1-4)がこの順番に計算される。
【００９４】
まず、式(1-1)では、出発点である式(10)を近似変形している。すなわち、式(5),(20)における重み行列Wと共通サイズ（n行m列）であり、その全ての要素が十分に1に近い行列W1を式(10)に対してアダマール積として乗じたもの「D1=W1*D」をLDA等潜在トピック分析（以下、「LDA等」と称する）により分解した結果の近似値を、既にLDA等による分解結果が得られている「D=θ×Φ」に対する微小変化として、「Φ」の部分は変化せずに「θ」の部分のみが「θ1」へと変化したものとして「D1≒θ1×Φ」とする。なお、記号「≒」は「近似的に等しい」を意味する。図７では、当該記号「≒」を通常の「＝」の上に「〜」（チルダ）を付与したものとして描いているが、同じ意味である。
【００９５】
当該式(1-1)の近似により、近似値「θ1」は、式(1-2)に示すように「D1」に対してΦの逆行列Φ-1を右から乗ずることで、「θ1= D1×Φ-1」として求めることができる。なお、ここで逆行列Φ-1は行列Φに対する周知の擬似逆行列（ムーアペンローズの擬似逆行列）として求めればよい。
【００９６】
そして、以上の式(1-1),(1-2)の結果を引き継いで同様の近似計算を「Φ」について実施するのが続く式(1-3),(1-4)である。すなわち、式(1-3)では式(1-1)で定義した行列「D1」に対して、式(5),(20)における重み行列Wと共通サイズ（n行m列）であり、その全ての要素が十分に1に近い行列W2を式(1-1)に対してアダマール積として乗じたもの「D2=W2* D1」をLDA等潜在トピック分析（以下、「LDA等」と称する）により分解した結果の近似値を、既にLDA等による分解結果が式(1-1),(1-2)にて近似値として得られている「D1=θ1*Φ」に対する微小変化として、「θ1」の部分は変化せずに「Φ」の部分のみが「Φ1」へと変化したものとして「D2≒θ1×Φ1」とする。
【００９７】
当該式(1-3)の近似により、近似値「Φ1」は、式(1-4)に示すように「D2」に対してθ1の逆行列θ1-1を左から乗ずることで、「Φ1=θ1-1×D2」として求めることができる。なお、ここで逆行列θ1-1は行列θ1に対する周知の擬似逆行列（ムーアペンローズの擬似逆行列）として求めればよい。
【００９８】
以上、欄[1]に示す１段階目の計算では、出発点の式(10)「D=θ×Φ」に対する近似の適用により、LDA等で実際に行列分解を行うことなく、データ行列「D」を微小変化したデータ行列「D2」について、LDA等による行列分解の近似結果「D2≒θ1×Φ1」を得た。2段階目以降も、1段階目と全く同様の近似計算を継続的に実施すればよい。従って、欄[i]に示す任意のi段階目(i=2, 3 ,…, M)の計算を説明する。
【００９９】
すなわち、i-1段階目の計算が完了した時点（i段階目の計算を開始する時点）では近似分解結果「D2(i-1)≒θi-1×Φi-1」が得られている。従って、欄[i]の式(i-1)において「θi-1」が微小変化した「θi」を導入して、「D2(i-1)」にn行m列サイズであり全ての要素が1に十分近い行列「W2i-1」をアダマール積として乗じたもの「D2i-1= W2i-1* D2(i-1)」の近似分解結果「D2i-1=θi×Φi-1」とする。そして、微小変化した「θi」の具体的な値は、式(i-2)に示すように「Φi-1」の擬似逆行列「Φi-1-1」を乗ずることで「θi = D2i-1×Φi-1-1」として求める。
【０１００】
続いて同様に式(i-3)では、式(i-1),(i-2)の「Φi-1」が微小変化した「Φi」を導入して、「D2i-1」にn行m列サイズであり全ての要素が1に十分近い行列「W2i」をアダマール積として乗じたもの「D2i= W2i* D2i-1」の近似分解結果「D2i=θi×Φi」とする。そして、微小変化した「Φi」の具体的な値は、式(i-4)に示すように「θi」の擬似逆行列「θi-1」を乗ずることで「Φi =θi-1×D2i」として求める。
【０１０１】
以上、一般のi段階目の場合を説明した。なお、上記の説明は、「D=D0」、「θ=θ0」、「Φ=Φ0」と文字を設定すればi=1段階目についてもあてはまる。
【０１０２】
以上のような近似計算をi=1,2,…,M段階目まで繰り返した結果、図７の欄[M]の式(M-3)として示すように、近似分解結果「D2M=θM×ΦM」が得られる。最終的に求めるべき式(20)の分解結果「W*D=θ'×Φ'」は、当該M段階の計算結果により欄[20]に式(13)として示すように、「θ'=θM」及び「Φ'=ΦM」として得られる。その根拠が欄[20]に式(11),(12)として示されている。特に、式(11)は当該得られることを可能とする条件の式であり、式(12)は当該式(11)の条件のもとで分解結果が当該得られる根拠となる式である。
【０１０３】
すなわち、式(11)に示すように、i=1,2,…,M段階目まで繰り返す近似計算の各段階で用いた全ての要素が1に近い行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-1, W2Mは、それらの全てのアダマール積が、式(20)における重み行列Wに等しくなるようなものとして用意しておく。従って式(20)に対して、式(11)と、欄[1],[2], …, [i], …,[M]に示す式(1-3),(2-3), …, (i-3), …, (M-3)と、を代入することにより、式(12)が得られるため、近似的な分解結果として式(13)に示すような「θ'=θM」及び「Φ'=ΦM」を採用することができる。
【０１０４】
なお、近似計算を可能としている各段階で用いた全ての要素が1に近い行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-1, W2Mのそれぞれの具体的な値及び当該計算を繰り返す回数2Mは、式(11)を満たし且つ各行列が所定基準で全ての要素が1に近いと判定されるような任意のものを、所定手法によって設定すればよい。
【０１０５】
例えば、以下の式(6)に示すように、行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-1, W2Mは互いに全て値が等しく、重み行列Wの「2M乗根」となるように設定することができる。
【０１０６】
【数６】
0006270216.tif 000007
【０１０７】
なお、式(6)に示すように、重み行列Wの「2M乗根」とは、アダマール積の意味での2M乗根として、各要素wi(i=1, 2, …, m)が2M乗根wi1/2Mとなっているものとして定義すればよい。繰り返し回数2Mは、各2M乗根の要素wi1/2M (i=1, 2, …, m)がそれぞれ、所定基準で十分に1に近いと判定される数として設定すればよい。
【０１０８】
以上のように、第二実施形態においては重み行列Wを、全ての要素を1として得られる恒等変換に微小変換を加えた変換と判定することのできる複数の行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-1, W2Mの積（アダマール積）に分解し、当初、重みWを付与せずに得られている分解結果「D=θ×Φ」の「θ」及び「Φ」に対して、分解された行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-1, W2Mの各々を逐次的に摂動として加えていくことにより、重みを付与した際の分解結果「W*D=θ'×Φ'」における「θ'」及び「Φ'」を、実際にLDA等の高負荷な計算を行うことなく、近似値として得ることができる。ここで、逐次的な摂動の各段階は、図７に欄[1]〜[M]として示す通りである。
【０１０９】
なお、恒等変換に加える「微小変換」とは、恒等変換に対して差分値として微小変化を伴うようにするものである。例えば単語数m=3の場合全ての要素が1の重み(1, 1, 1)によって恒等変換が定義されるが、これに微小変換(+0.01, -0.02, +0.03)を加えることで重み(1.01, 0.98, 1.03)が得られる。このような重みにより分解された行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-1, W2Mの各々を構成（重み行列Wと同様に、(1.01, 0.98, 1.03)等の共通の行ベクトルを全患者数nだけ並べることで構成）して、逐次的な摂動計算が可能となる。ここで、微小変換か否かの判定は、その各要素が所定基準で0に近いか否かによって判定すればよい。例えば±0.1以内に値がある場合に微小変換と判定すれば、当該例示した変換(+0.01, -0.02, +0.03)は微小変換である。
【０１１０】
以下、本発明における補足的事項（１）〜（４）を述べる。
【０１１１】
（１）分析対象の一連の患者の医療データにおいて、各患者のデータは、分析対象文書化部12において健康評価に関連する単語によるバグオブワーズの形式により、当該患者の健康状態に関する特徴ベクトルへと変換（文書化）するものとして説明した。予め分析対象の一連の患者の医療データに当該変換が施されていれば、分析対象文書化部12は省略してもよい。
【０１１２】
（２）医療データの取得対象は「患者」として説明したが、同様のデータが取得できさえすれば、医師に対する「患者」のみに限らず一般の「対象者」について全く同様に、本発明を適用可能である。
【０１１３】
（３）本発明は、コンピュータをクラスタリング装置10として機能させるプログラムとしても提供可能である。当該コンピュータは、CPU(中央演算装置)、メモリ及び各種I/Fといった周知のハードウェアで構成することができ、当該プログラムを読み込んで実行するCPUがクラスタリング装置10の各部として機能することとなる。
【０１１４】
（４）第二実施形態に関する図７の説明では、繰り返し回数を2Mとして偶数回であるものとして説明したが、当該説明の趣旨より明らかなように、奇数回2M+1や2M-1であってもよい。前者（奇数回2M+1）の場合は、全ての要素が1に近い行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-1, W2M, W2M+1を用いて、近似的な分解結果として「θ'=θM+1」及び「Φ'=ΦM」を採用すればよい。後者（奇数回2M-1）の場合は、全ての要素が1に近い行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-2, W2M-1を用いて、近似的な分解結果として「θ'=θM」及び「Φ'=ΦM-1」を採用すればよい。また同様に、図７の説明では「θ1」→「Φ1」→「θ2」→「Φ2」→…のように「θ」→「Φ」の順番で近似値を求めたが、逆に「Φ」→「θ」の順番で求めるようにしてもよい。当該順番（「θ」→「Φ」又は「Φ」→「θ」）が各段階i毎に定まっていてもよい。
【符号の説明】
【０１１５】
10…クラスタリング装置、11…重み計算部、12…分析対象文書化部、13…クラスタリング部
【図１】
0006270216.tif 000008
【図２】
0006270216.tif 000009
【図３】
0006270216.tif 000010
【図４】
0006270216.tif 000011
【図５】
0006270216.tif 000012
【図６】
0006270216.tif 000013
【図７】
0006270216.tif 000014