(57)【要約】【課題】多変数においてカテゴリ変数と数値変数とが混在する場合であっても、条件付き独立性の検定に基づいて多変数間の因果関係を推定する。【解決手段】離散化部は、グラフィカルモデルにおいて少なくとも独立ではない２変数、および２変数間の独立性の条件となる条件変数の組に、少なくとも１つのカテゴリ変数と、少なくとも１つの数値変数とが含まれる場合、カテゴリ変数を基準として、数値変数を離散化し、検定実行部は、カテゴリ変数と、数値変数が離散化された離散化変数とを用いて、２変数間の条件付き独立性検定を実行する。本技術は、変数間の因果関係を推定する情報処理装置に適用することができる。【選択図】図３
2014228991.tif 000002
【特許請求の範囲】
【請求項１】
多変数間の独立性を検定する情報処理装置において、
グラフィカルモデルにおいて少なくとも独立ではない２変数、および前記２変数間の独立性の条件となる条件変数の組に、少なくとも１つのカテゴリ変数と、少なくとも１つの数値変数とが含まれる場合、前記カテゴリ変数を基準として、前記数値変数を離散化する離散化部と、
前記カテゴリ変数と、前記数値変数が離散化された離散化変数とを用いて、前記２変数間の条件付き独立性検定を実行する検定実行部と
を備える情報処理装置。
【請求項２】
前記離散化部は、前記２変数のうちの一方が前記カテゴリ変数である場合、前記２変数のうちの一方を基準として、前記２変数のうちの他方および前記条件変数の組に含まれる前記数値変数を離散化する
請求項１に記載の情報処理装置。
【請求項３】
前記離散化部は、前記条件変数の組を構成する変数のうちのいずれか１つのみが前記カテゴリ変数である場合、前記カテゴリ変数を基準として、前記数値変数である前記２変数および前記条件変数の組を構成する他の変数を離散化する
請求項１に記載の情報処理装置。
【請求項４】
２つ以上の前記カテゴリ変数それぞれを用いて、前記２変数間の条件付き独立性検定が実行される場合、前記２変数間の条件付き独立性検定のいずれかにおいて、前記２変数間の独立性が棄却されるか否かを判定する判定部をさらに備え、
前記検定実行部は、前記２変数間の独立性が棄却されると判定された場合、前記２変数間の条件付き独立性検定の実行を終了する
請求項１に記載の情報処理装置。
【請求項５】
前記判定部は、前記２変数の両方が前記カテゴリ変数である場合、前記２変数それぞれを用いて実行される前記２変数間の条件付き独立性検定のいずれかにおいて、前記２変数間の独立性が棄却されるか否かを判定する
請求項４に記載の情報処理装置。
【請求項６】
前記判定部は、前記２変数の両方が前記数値変数で、かつ前記条件変数の組に２つ以上の前記カテゴリ変数が含まれる場合、前記カテゴリ変数それぞれを用いて実行される前記２変数間の条件付き独立性検定のいずれかにおいて、前記２変数間の独立性が棄却されるか否かを判定する
請求項４に記載の情報処理装置。
【請求項７】
前記判定部は、所定数の変数対について前記２変数間の条件付き独立性検定が実行された後に、前記カテゴリ変数それぞれを用いて実行される前記２変数間の条件付き独立性検定のいずれかにおいて、前記２変数間の独立性が棄却されるか否かを判定する
請求項４に記載の情報処理装置。
【請求項８】
前記離散化部は、離散化の基準となる前記カテゴリ変数が複数ある場合、ユーザによって指定された前記カテゴリ変数を基準として、前記数値変数を離散化する
請求項１に記載の情報処理装置。
【請求項９】
前記カテゴリ変数には、少なくとも、人間をカテゴライズする変数が含まれ、
前記数値変数には、少なくとも、人体に関する数値を表す変数が含まれる
請求項１に記載の情報処理装置。
【請求項１０】
前記カテゴリ変数には、少なくとも、製品および前記製品を製造する製造装置のいずれかまたは両方をカテゴライズする変数が含まれ、
前記数値変数には、少なくとも、前記製品および前記製品が製造される環境のいずれかまたは両方に関する数値を表す変数が含まれる
請求項１に記載の情報処理装置。
【請求項１１】
多変数間の独立性を検定する情報処理装置の情報処理方法において、
前記情報処理装置が、
グラフィカルモデルにおいて少なくとも独立ではない２変数、および前記２変数間の独立性の条件となる条件変数の組に、少なくとも１つのカテゴリ変数と、少なくとも１つの数値変数とが含まれる場合、前記カテゴリ変数を基準として、前記数値変数を離散化し、
前記カテゴリ変数と、前記数値変数が離散化された離散化変数とを用いて、前記２変数間の条件付き独立性検定を実行する
ステップを含む情報処理方法。
【請求項１２】
多変数間の独立性を検定する処理をコンピュータに実行させるプログラムにおいて、
グラフィカルモデルにおいて少なくとも独立ではない２変数、および前記２変数間の独立性の条件となる条件変数の組に、少なくとも１つのカテゴリ変数と、少なくとも１つの数値変数とが含まれている場合、前記カテゴリ変数を基準として、前記数値変数を離散化する離散化ステップと、
前記カテゴリ変数と、前記数値変数が離散化された離散化変数とを用いて、前記２変数間の条件付き独立性検定を実行する実行ステップと
を含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置および方法、並びにプログラムに関し、特に、多変数間の因果関係を推定することができるようにする情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、多変量確率変数における観察データからの統計的因果関係の推定は、情報量規準や罰則付き最尤法またはベイズ法による推定結果をスコアとしてこれを最大化する方法（以下、第１の推定方法という）と、変数間の条件付き独立性の統計的検定によって推定する方法（以下、第２の推定方法という）とに大別される。その結果としての変数間の因果関係を、グラフィカルモデル（非循環モデル）として表現することは、その結果の可読性の良さからしばしば行われている。
【０００３】
図１は、変数Ｘと変数Ｙとの因果関係を表す３つのグラフィカルモデルの例を示している。
【０００４】
図１上段に示されるグラフィカルモデルは、変数Ｘと変数Ｙとの因果関係が不明な場合のモデルであり、変数Ｘと変数Ｙとを頂点として、それぞれが、方向のない辺（無向辺）で結ばれている。また、図１中段に示されるグラフィカルモデルは、変数Ｘと変数Ｙとの因果関係として、変数Ｘが原因、変数Ｙが結果である場合のモデルであり、変数Ｘと変数Ｙとを頂点として、それぞれが、原因から結果への方向を示す辺（有向辺）で結ばれている。そして、図１下段に示されるグラフィカルモデルは、変数Ｘと変数Ｙとを頂点として、それぞれが、３つの変数とそれぞれを結ぶ辺で結ばれている。図１下段に示されるグラフィカルモデルにおいて、３つの変数とそれぞれを結ぶ辺は、変数Ｘと変数Ｙとの間の経路であり、その一部に、方向のある有向辺を含むようにできる。
【０００５】
さて、第２の推定方法によれば、潜在的な共通原因変数の存在を推測できる可能性があり、そのアルゴリズムは、例えば非特許文献１，２，３等に開示されている。これにより表現されるモデルは、混合先祖グラフ等と呼ばれている（非特許文献２参照）。
【０００６】
この第２の推定方法において、通常扱われる確率変数は、離散値であるカテゴリデータ（カテゴリ変数）、および連続値である数値データ（数値変数）のいずれか一方とされる。例えば、確率変数がカテゴリ変数である場合には、因果関係はベイジアンネットワークモデルとしてモデル化され、確率変数が数値変数である場合には、因果関係は構造方程式モデルとしてモデル化される（非特許文献３参照）。
【０００７】
一方、第１の推定方法において、カテゴリ変数と数値変数とが混在する多変量確率変数から因果関係を推定しモデル化することは、非特許文献４，５，６等に開示されているものの、これを第２の推定方法に適用することは容易ではなかった。したがって、多変数にカテゴリ変数と数値変数とが混在する場合に、特に現実的な応用として重要な、潜在変数の存在の仕方の解釈を伴う混合先祖グラフや部分先祖グラフと呼ばれるモデルを構築することは困難であった。
【０００８】
ところで、あるカテゴリ変数とそのデータを基準として、数値変数をカテゴライズ（離散化）する手法が、例えば非特許文献７に開示されている。
【０００９】
この手法によれば、カテゴリ変数を出力変数とする分類学習器において、出力変数に影響を与えるattributeと呼ばれる属性変数が数値変数の場合、カテゴリ変数である出力変数とその過去の出力データを基準として、該当する属性変数を離散化することができる。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】P. Spirtes, C. Meek, and T. Richardson, "Causal Inference in the Presence of Latent Variables and Selection Bias", Proceedings of Conference on Uncertainty in Artificial Intelligence, pp. 499-506, 1995.
【非特許文献２】P. Spirtes, T. Richardson, and C. Meek, "Heuristic Greedy Search Algorithms for Latent Variable Models", Proceedings of International Workshop on Artificial Intelligence and Statistics, pp. 481-488, 1996.
【非特許文献３】P. Spirtes, C. Glymour, and R. Scheines, "Causation, Prediction, and Search", MIT Press, second edition, 2000.
【非特許文献４】N. Friedman and M. Goldszmidt, "Discretizing Continuous Attributes while Learning Bayesian Networks", Proceedings of International Conference on Machine Learning, pp. 157-165, 1996.
【非特許文献５】S. Monti and G. Cooper, "A Multivariate Discretization Method for Learning Bayesian Networks from Mixed Data", Proceedings of Conference on Uncertainty in Artificial Intelligence, pp. 404-413, 1998.
【非特許文献６】H. Steck and T. S. Jaakkola, "Predictive Discretization during Model Selection", JMLR workshop and conference proceedings, volume 2: Proceedings of the Eleventh International Conference on Artificial Intelligence and Statistics, pp. 532-539, 2007.
【非特許文献７】U. M. Fayyad and K. B. Irani, "Multi-Interval Discretization of Continuous-Valued Attributions for Classification Learning", Proceedings of International Joint Conference on Artificial Intelligence, pp. 1022-1029, 1993.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、統計的因果関係を表現するモデルにおいては、全ての変数が出力変数となり得る。つまり、カテゴリ変数および数値変数に、出力変数や属性変数といった特定のラベルを付与することは困難であり、また、数値変数をどのカテゴリ変数を基準として離散化するかを、モデルを構築する前に予め決定することができなかった。
【００１２】
したがって、多変数にカテゴリ変数と数値変数とが混在するシステムにおいて、多変数間の因果関係を推定することは困難であった。
【００１３】
本技術は、このような状況に鑑みてなされたものであり、多変数にカテゴリ変数と数値変数とが混在する場合であっても、条件付き独立性の検定に基づいて多変数間の因果関係を推定することができるようにするものである。
【課題を解決するための手段】
【００１４】
本技術の一側面の情報処理装置は、多変数間の独立性を検定する情報処理装置において、グラフィカルモデルにおいて少なくとも独立ではない２変数、および前記２変数間の独立性の条件となる条件変数の組に、少なくとも１つのカテゴリ変数と、少なくとも１つの数値変数とが含まれる場合、前記カテゴリ変数を基準として、前記数値変数を離散化する離散化部と、前記カテゴリ変数と、前記数値変数が離散化された離散化変数とを用いて、前記２変数間の条件付き独立性検定を実行する検定実行部とを備える。
【００１５】
前記離散化部には、前記２変数のうちの一方が前記カテゴリ変数である場合、前記２変数のうちの一方を基準として、前記２変数のうちの他方および前記条件変数の組に含まれる前記数値変数を離散化させることができる。
【００１６】
前記離散化部には、前記条件変数の組を構成する変数のうちのいずれか１つのみが前記カテゴリ変数である場合、前記カテゴリ変数を基準として、前記数値変数である前記２変数および前記条件変数の組を構成する他の変数を離散化させることができる。
【００１７】
前記情報処理装置には、２つ以上の前記カテゴリ変数それぞれを用いて、前記２変数間の条件付き独立性検定が実行される場合、前記２変数間の条件付き独立性検定のいずれかにおいて、前記２変数間の独立性が棄却されるか否かを判定する判定部をさらに設け、前記検定実行部には、前記２変数間の独立性が棄却されると判定された場合、前記２変数間の条件付き独立性検定の実行を終了させることができる。
【００１８】
前記判定部には、前記２変数の両方が前記カテゴリ変数である場合、前記２変数それぞれを用いて実行される前記２変数間の条件付き独立性検定のいずれかにおいて、前記２変数間の独立性が棄却されるか否かを判定させることができる。
【００１９】
前記判定部には、前記２変数の両方が前記数値変数で、かつ前記条件変数の組に２つ以上の前記カテゴリ変数が含まれる場合、前記カテゴリ変数それぞれを用いて実行される前記２変数間の条件付き独立性検定のいずれかにおいて、前記２変数間の独立性が棄却されるか否かを判定させることができる。
【００２０】
前記判定部には、所定数の変数対について前記２変数間の条件付き独立性検定が実行された後に、前記カテゴリ変数それぞれを用いて実行される前記２変数間の条件付き独立性検定のいずれかにおいて、前記２変数間の独立性が棄却されるか否かを判定させることができる。
【００２１】
前記離散化部には、離散化の基準となる前記カテゴリ変数が複数ある場合、ユーザによって指定された前記カテゴリ変数を基準として、前記数値変数を離散化させることができる。
【００２２】
前記カテゴリ変数には、少なくとも、人間をカテゴライズする変数が含まれ、前記数値変数には、少なくとも、人体に関する数値を表す変数が含まれるようにすることができる。
【００２３】
前記カテゴリ変数には、少なくとも、製品および前記製品を製造する製造装置のいずれかまたは両方をカテゴライズする変数が含まれ、前記数値変数には、少なくとも、前記製品および前記製品が製造される環境のいずれかまたは両方に関する数値を表す変数が含まれるようにすることができる。
【００２４】
本技術の一側面の情報処理方法は、多変数間の独立性を検定する情報処理装置の情報処理方法であって、前記情報処理装置が、グラフィカルモデルにおいて少なくとも独立ではない２変数、および前記２変数間の独立性の条件となる条件変数の組に、少なくとも１つのカテゴリ変数と、少なくとも１つの数値変数とが含まれる場合、前記カテゴリ変数を基準として、前記数値変数を離散化し、前記カテゴリ変数と、前記数値変数が離散化された離散化変数とを用いて、前記２変数間の条件付き独立性検定を実行するステップを含む。
【００２５】
本技術の一側面のプログラムは、多変数間の独立性を検定する処理をコンピュータに実行させるプログラムであって、グラフィカルモデルにおいて少なくとも独立ではない２変数、および前記２変数間の独立性の条件となる条件変数の組に、少なくとも１つのカテゴリ変数と、少なくとも１つの数値変数とが含まれている場合、前記カテゴリ変数を基準として、前記数値変数を離散化する離散化ステップと、前記カテゴリ変数と、前記数値変数が離散化された離散化変数とを用いて、前記２変数間の条件付き独立性検定を実行する実行ステップとを含む処理をコンピュータに実行させる。
【００２６】
本技術の一側面においては、グラフィカルモデルにおいて少なくとも独立ではない２変数、および２変数間の独立性の条件となる条件変数の組に、少なくとも１つのカテゴリ変数と、少なくとも１つの数値変数とが含まれる場合、カテゴリ変数を基準として、数値変数が離散化され、カテゴリ変数と、数値変数が離散化された離散化変数とを用いて、２変数間の条件付き独立性検定が実行される。
【発明の効果】
【００２７】
本技術の一側面によれば、多変数にカテゴリ変数と数値変数とが混在する場合であっても、条件付き独立性の検定に基づいて多変数間の因果関係を推定することが可能となる。
【図面の簡単な説明】
【００２８】
【図１】グラフィカルモデルの例を示す図である。
【図２】情報処理装置のハードウェア構成例を示すブロック図である。
【図３】本技術を適用した情報処理装置の機能構成例を示すブロック図である。
【図４】因果関係推定処理の原理について説明するフローチャートである。
【図５】独立性検定処理１について説明するフローチャートである。
【図６】独立性検定処理２について説明するフローチャートである。
【図７】独立性検定処理３について説明するフローチャートである。
【図８】独立性検定処理４について説明するフローチャートである。
【図９】因果関係推定処理の具体例について説明するフローチャートである。
【図１０】因果関係推定処理の具体例について説明するフローチャートである。
【図１１】因果関係推定処理の具体例について説明するフローチャートである。
【図１２】因果関係推定処理の他の具体例について説明するフローチャートである。
【図１３】本技術を適用したネットワークシステムの機能構成例を示すブロック図である。
【発明を実施するための形態】
【００２９】
以下、本技術の実施の形態について図を参照して説明する。
【００３０】
［情報処理装置のハードウェア構成例］
図２は、本技術を適用した情報処理装置１１のハードウェア構成例を示している。
【００３１】
情報処理装置１１は、多変量確率変数間の独立性または条件付き独立性を検定し、その結果を、有向グラフ、無向グラフ、部分有向グラフ、混合先祖グラフ、部分先祖グラフ等として出力する。なお、本技術においては、多変量確率変数間の独立性検定または条件付き独立性検定の結果に基づき、その変数間に依存性があることを無向辺として表し、非特許文献１，２，３等に開示されている部分有向化の手法に基づいて、無向辺の一部を有向化することで因果関係を推定するが、本明細書において、有向化の手法については、その詳細な説明を省略する。
【００３２】
情報処理装置１１は、例えば、パーソナルコンピュータで構成することができ、その構成は、パーソナルコンピュータと同様な構成とすることができる。
【００３３】
情報処理装置１１は、CPU（Central Processing Unit）２１、ROM（Read Only Memory）２２、RAM（Random Access Memory）２３、バス２４、入出力インタフェース２５、入力部２６、出力部２７、記憶部２８、通信部２９、およびドライブ３０を含む構成とされている。
【００３４】
情報処理装置１１において、CPU２１、ROM２２、およびRAM２３は、バス２４により相互に接続されている。バス２４には、さらに、入出力インタフェース２５が接続されている。入出力インタフェース２５には、キーボード、マウス、タッチパネルなどよりなる入力部２６、ディスプレイ、スピーカなどよりなる出力部２７、ハードディスクや不揮発性のメモリなどよりなる記憶部２８、ネットワークインタフェースなどよりなる通信部２９が接続されている。
【００３５】
入出力インタフェース２５にはまた、必要に応じてドライブ３０が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどよりなるリムーバブルメディア３１が適宜装着され、それらから読み出されたプログラムが、必要に応じて記憶部２８にインストールされる。
【００３６】
また、プログラムは、有線または無線の伝送媒体を介して、通信部２９で受信し、記憶部２８にインストールすることができる。その他、プログラムは、ROM２２や記憶部２８に、あらかじめインストールしておくことができる。
【００３７】
なお、情報処理装置１１が実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われる処理であっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【００３８】
［情報処理装置の機能構成例］
図３は、情報処理装置１１の本技術に係る部分の機能構成例を示している。
【００３９】
図３の情報処理装置１１は、入力部５１、制御部５２、記憶部５３、および出力部５４から構成される。
【００４０】
入力部５１は、図２の入力部２６に対応し、Ｎ個の確率変数のうちの、独立性検定の対象となる２変数を指定するための引数や、条件付き独立性の条件となる条件変数の変数セット等の入力、条件付き独立性の検定に用いる統計量や有意度の指定を受け付け、その内容に対応する情報を制御部５２に供給する。
【００４１】
制御部５２は、図２のCPU２１に対応し、記憶部５３に格納されているプログラムに従って動作し、図２の記憶部２８に対応する記憶部５３に記憶されている各種の情報を用いて、着目している２変数間の独立性検定を実行することで、変数間の因果関係を推定する。
【００４２】
なお、一般的に、変数間の因果関係を推定する際に、変数間の条件付き独立性検定を実行する場合には、条件付き独立であるという仮説を帰無仮説とする。そして、この帰無仮説が棄却された場合には、変数間に依存性があるとし、この帰無仮説が棄却されなかった場合には、変数間に独立性があるとすることが行われる。本実施の形態もこれに従うものとする。
【００４３】
出力部５４は、図２の出力部２７に対応し、制御部５２の制御の下、独立性検定の検定結果を、グラフィカルモデルとして出力する。
【００４４】
また、図３において、制御部５２は、カテゴリ変数検出部７１、カテゴリ変数検定実行部７２、数値変数検定実行部７３、カテゴリ変数選択部７４、離散化部７５、および実行判定部７６を備え、記憶部５３は、変数対記憶部８１、カテゴリ変数記憶部８２、および離散化データ記憶部８３を備えている。
【００４５】
カテゴリ変数検出部７１は、入力される変数集合から、離散値であるカテゴリ変数を検出する。入力される変数集合に含まれ得る変数としては、カテゴリ変数の他、連続値である数値変数がある。
【００４６】
カテゴリ変数検定実行部７２は、着目している２変数がともにカテゴリ変数である場合に、その２変数について、独立性検定を実行する。
【００４７】
数値変数検定実行部７３は、着目している２変数がともに数値変数である場合に、その２変数について、独立性検定を実行する。
【００４８】
カテゴリ変数選択部７４は、カテゴリ変数記憶部８２に記憶されているカテゴリ変数から１つのカテゴリ変数を選択する。
【００４９】
離散化部７５は、入力される変数集合に、カテゴリ変数と数値変数とが混在して含まれる場合、カテゴリ変数選択部７４に選択されたカテゴリ変数を基準として、数値変数を離散化（カテゴリ変数化）する。
【００５０】
実行判定部７６は、カテゴリ変数検定実行部７２によって実行される独立性検定において、独立性が棄却されるか否かを判定する。実行判定部７６によって独立性が棄却されると判定された場合、カテゴリ変数検定実行部７２は、独立性検定の実行を終了する。
【００５１】
変数対記憶部８１には、独立でないか、または独立性の検定が行われていない２変数が辺で結ばれた変数対が記憶されている。
【００５２】
カテゴリ変数記憶部８２には、カテゴリ変数検出部７１によって、入力される変数集合から検出されたカテゴリ変数が全て記憶される。
【００５３】
離散化データ記憶部８３には、離散化部７５によって、数値変数が離散化された離散化データ（離散化変数）が一時的に記憶される。
【００５４】
［因果関係推定処理の原理］
次に、図４のフローチャートを参照して、情報処理装置１１による因果関係推定処理の原理について説明する。
【００５５】
なお、図４の因果関係推定処理においては、変数対記憶部８１に記憶されている、所定の変数Ｘ，Ｙが対になった（辺で結ばれた）変数対について、所定の数の条件変数の組Ｚ（以下、単に条件変数Ｚともいう）を用いた場合の独立性検定処理が行われるものとする。
【００５６】
まず、ステップＳ１１において、制御部５２は、カテゴリ変数検出部７１が変数Ｘ，Ｙ、および条件変数Ｚからいくつのカテゴリ変数を検出したかに基づいて、変数Ｘ，Ｙ、および条件変数Ｚに含まれる変数が全てカテゴリ変数であるか否かを判定する。このとき、カテゴリ変数検出部７１によって検出されたカテゴリ変数は全て、カテゴリ変数記憶部８２に記憶される。
【００５７】
ステップＳ１１において、変数Ｘ，Ｙ、および条件変数Ｚが全てカテゴリ変数であると判定された場合、処理はステップＳ１２に進み、制御部５２は、カテゴリ変数である変数Ｘ，Ｙについて、独立性検定処理１を実行する。
【００５８】
ここで、図５のフローチャートを参照して、制御部５２によって実行される独立性検定処理１の詳細について説明する。
【００５９】
ステップＳ３１において、カテゴリ変数検定実行部７２は、独立性検定を実行するのに用いられる値であるＧ２統計量を計算する。Ｇ２統計量は、以下の式（１）で示される。
【００６０】
【数１】
2014228991.tif 000003
【００６１】
式（１）において、Ｍはデータ数を示している。また、＾（ハット）の付されたP(x,y,z)（以下、ハットP(x,y,z)などという）、ハットP(x|y,z)、ハットP(x|z)はそれぞれ、変数Ｘ，Ｙおよび条件変数の組Ｚについてのある状態ｘ，ｙ，ｚの推定される結合確率、状態ｙ，ｚを条件とした場合の状態ｘの推定される条件付き確率、状態ｚを条件とした場合の状態ｘの推定される条件付き確率を表す。これらは、Ｍ個のデータを用いて推定される。
【００６２】
ここでは、上述したＧ２統計量とχ２分布とを用いて導き出される、独立性検定の指標となるｐ値と、有意度Th（例えば５％（0.05））とが比較されることで、２変数の独立性が検定される。
【００６３】
すなわち、ステップＳ３２において、カテゴリ変数検定実行部７２は、ｐ値が有意度Thより小さいか否かを判定する。
【００６４】
ステップＳ３２において、ｐ値が有意度Thより小さいと判定された場合、処理はステップＳ３３に進み、カテゴリ変数検定実行部７２は、変数Ｘ，Ｙの独立性を棄却する。
【００６５】
一方、ステップＳ３２において、ｐ値が有意度Thより小さくないと判定された場合、処理はステップＳ３４に進み、カテゴリ変数検定実行部７２は、変数Ｘ，Ｙの独立性を棄却しない。
【００６６】
そして、ステップＳ３５において、カテゴリ変数検定実行部７２は、変数Ｘ，Ｙからなる変数対の辺を削除し、その変数対を変数対記憶部８１から削除する。
【００６７】
なお、上述した説明では、独立性検定の指標としてｐ値を用いるものとしたが、以下の式（２）で示される条件付き相互情報量MIを、独立性検定の指標として用いるようにしてもよい。
【００６８】
【数２】
2014228991.tif 000004
【００６９】
この場合、条件付き相互情報量MIと所定の閾値（例えば0.05）が比較され、条件付き相互情報量MIが閾値より小さいと判定された場合に、変数Ｘ，Ｙの独立性が棄却されないようになる。
【００７０】
このように、独立性検定処理１においては、カテゴリ変数である変数Ｘ，Ｙについての独立性検定が実行される。
【００７１】
図４のフローチャートに戻り、ステップＳ１１において、変数Ｘ，Ｙ、および条件変数Ｚが全てカテゴリ変数でないと判定された場合、処理はステップＳ１３に進み、制御部５２は、変数Ｘ，Ｙ、および条件変数Ｚに含まれる変数が全て数値変数であるか否かを判定する。
【００７２】
ステップＳ１３において、変数Ｘ，Ｙ、および条件変数Ｚが全て数値変数であると判定された場合、処理はステップＳ１４に進み、制御部５２は、数値変数である変数Ｘ，Ｙについて、独立性検定処理２を実行する。
【００７３】
ここで、図６のフローチャートを参照して、制御部５２によって実行される独立性検定処理２の詳細について説明する。
【００７４】
ステップＳ４１において、数値変数検定実行部７３は、線形相関を仮定することで、フィッシャーのＺ変換により、独立性検定を実行するのに用いられる値である統計量ｚを計算する。統計量ｚは、以下の式（３）で示される。
【００７５】
【数３】
2014228991.tif 000005
【００７６】
式（３）において、Ｍはデータ数を示している。また、|z|は、条件変数の組Ｚを構成する変数の数、ρXYZは、条件変数の組Ｚについて、条件付き独立ではないと仮定した場合の変数Ｘ，Ｙ間の偏相関係数を示している。
【００７７】
ここでは、条件付き独立であると仮定した場合の変数Ｘ，Ｙ間の偏相関係数を用いた統計量ｚ0と、標準正規分布および有意度から定まる定数Ｎαとを用いて、２変数の独立性が検定される。
【００７８】
すなわち、ステップＳ４２において、数値変数検定実行部７３は、以下の式（４）が成立するか否かを判定する。
【００７９】
【数４】
2014228991.tif 000006
【００８０】
ステップＳ４２において、式（４）が成立すると判定された場合、処理はステップＳ４３に進み、数値変数検定実行部７３は、変数Ｘ，Ｙの独立性を棄却する。
【００８１】
一方、ステップＳ４２において、式（４）が成立しないと判定された場合、処理はステップＳ４４に進み、数値変数検定実行部７３は、変数Ｘ，Ｙの独立性を棄却しない。
【００８２】
そして、ステップＳ４５において、数値変数検定実行部７３は、変数Ｘ，Ｙからなる変数対の辺を削除し、その変数対を変数対記憶部８１から削除する。
【００８３】
このように、独立性検定処理２においては、数値変数である変数Ｘ，Ｙについての独立性検定が実行される。
【００８４】
図４のフローチャートに戻り、ステップＳ１３において、変数Ｘ，Ｙ、および条件変数Ｚが全て数値変数でないと判定された場合、処理はステップＳ１５に進み、制御部５２は、変数Ｘ，Ｙのいずれかがカテゴリ変数であるか否かを判定する。このとき、条件変数Ｚを構成する変数が、カテゴリ変数であるか数値変数であるかは問わない。
【００８５】
ステップＳ１５において、変数Ｘ，Ｙのいずれかがカテゴリ変数であると判定された場合、カテゴリ変数選択部７４は、カテゴリ変数記憶部８２に記憶されているカテゴリ変数である変数Ｘ（または変数Ｙ）を取得し、処理はステップＳ１６に進む。
【００８６】
ステップＳ１６において、離散化部７５は、カテゴリ変数選択部７４によって取得されたカテゴリ変数である変数Ｘ（または変数Ｙ）を基準として、数値変数である変数Ｙ（または変数Ｘ）と、条件変数Ｚに数値変数が含まれている場合には、その数値変数を離散化する。数値変数が離散化された離散化データは、離散化データ記憶部８３に一時的に保持される。なお、カテゴリ変数を基準として数値変数を離散化する手法としては、例えば非特許文献７に開示されている手法が適用されるものとするが、他の手法が適用されてももちろんよい。
【００８７】
このとき、変数Ｘ，Ｙ、および条件変数Ｚは、全てカテゴリ変数であるとみなすことができる。
【００８８】
そして、ステップＳ１７において、制御部５２は、カテゴリ変数である変数Ｘ，Ｙについて、図６のフローチャートを参照して説明した独立性検定処理１を実行する。
【００８９】
一方、ステップＳ１５において、変数Ｘ，Ｙのいずれかがカテゴリ変数でないと判定された場合、すなわち、変数Ｘ，Ｙがともにカテゴリ変数であるか、または数値変数である場合、処理はステップＳ１８に進む。
【００９０】
ステップＳ１８において、制御部５２は、条件変数Ｚを構成する変数のうちの１つのみがカテゴリ変数であるか否かを判定する。
【００９１】
ステップＳ１８において、条件変数Ｚを構成する変数のうちの１つのみがカテゴリ変数であると判定された場合、カテゴリ変数選択部７４は、カテゴリ変数記憶部８２に記憶されている、条件変数Ｚを構成するそのカテゴリ変数を取得し、ステップＳ１６，Ｓ１７の処理が実行される。
【００９２】
ステップＳ１８の後のステップＳ１６においては、カテゴリ変数選択部７４によって取得されたカテゴリ変数を基準として、条件変数Ｚを構成する他の数値変数と、ともに数値変数である変数Ｘ，Ｙが離散化される。そして、ステップＳ１７において、離散化されたカテゴリ変数である変数Ｘ，Ｙについて、独立性検定処理１が実行される。
【００９３】
さて、ステップＳ１８において、条件変数Ｚを構成する変数のうちの１つのみがカテゴリ変数でないと判定された場合、処理はステップＳ１９に進み、制御部５２は、変数Ｘ，Ｙがともにカテゴリ変数であるか否かを判定する。このとき、条件変数Ｚを構成する変数が、カテゴリ変数であるか数値変数であるかは問わない。
【００９４】
ステップＳ１９において、変数Ｘ，Ｙがともにカテゴリ変数であると判定された場合、カテゴリ変数選択部７４は、カテゴリ変数記憶部８２に記憶されているカテゴリ変数である変数Ｘ，Ｙを取得し、処理はステップＳ２０に進む。この場合、条件変数Ｚには、少なくとも１つの数値変数が含まれることになる。
【００９５】
ステップＳ２０において、制御部５２は、カテゴリ変数である変数Ｘ，Ｙについて、独立性検定処理３を実行する。
【００９６】
ここで、図７のフローチャートを参照して、制御部５２によって実行される独立性検定処理３の詳細について説明する。
【００９７】
ステップＳ５１において、離散化部７５は、カテゴリ変数選択部７４によって取得されたカテゴリ変数である２変数（変数Ｘ，Ｙ）の一方（例えば変数Ｘ）を基準として、条件変数Ｚに含まれる少なくとも１つの数値変数を離散化する。数値変数が離散化された離散化データは、離散化データ記憶部８３に一時的に保持される。
【００９８】
このとき、変数Ｘ，Ｙ、および条件変数Ｚは、全てカテゴリ変数であるとみなすことができる。
【００９９】
ステップＳ５２において、カテゴリ変数検定実行部７２は、カテゴリ変数である変数Ｘ，Ｙについて、独立性検定処理１を実行する。
【０１００】
ステップＳ５３において、実行判定部７６は、ステップＳ５２における独立性検定処理１において、独立性が棄却されたか否かを判定する。
【０１０１】
ステップＳ５３において、独立性が棄却されなかったと判定された場合、すなわち、ステップＳ５２における独立性検定処理１において、変数Ｘ，Ｙに独立性があると判定された場合、処理はステップＳ５４に進む。
【０１０２】
ステップＳ５４において、離散化部７５は、カテゴリ変数選択部７４によって取得されたカテゴリ変数である２変数（変数Ｘ，Ｙ）の他方（例えば変数Ｙ）を基準として、条件変数Ｚに含まれる少なくとも１つの数値変数を離散化する。
【０１０３】
そして、ステップＳ５５において、カテゴリ変数検定実行部７２は、再度、カテゴリ変数である変数Ｘ，Ｙについて、独立性検定処理１を実行する。
【０１０４】
一方、ステップＳ５４において、独立性が棄却されたと判定された場合、すなわち、ステップＳ５２における独立性検定処理１において、変数Ｘ，Ｙに依存性があると判定された場合、変数Ｘ，Ｙについての独立性検定はこれ以上実行されず、処理はステップＳ２０に戻る。
【０１０５】
このように、独立性検定処理３においては、複数のカテゴリ変数、すなわち変数Ｘ，Ｙそれぞれを基準として数値変数が離散化され、独立性検定が実行される。その中で、実行判定部７６によっていずれかの独立性検定において独立性が棄却されるか否かが判定され、独立性が棄却されると判定された場合には、カテゴリ変数検定実行部７２による独立性検定の実行は終了される。
【０１０６】
図４のフローチャートに戻り、ステップＳ１９において、変数Ｘ，Ｙがともにカテゴリ変数でないと判定された場合、すなわち、変数Ｘ，Ｙがともに数値変数である場合、条件変数Ｚには、少なくとも２つのカテゴリ変数が含まれることになる。この場合、カテゴリ変数選択部７４は、カテゴリ変数記憶部８２に記憶されているそのカテゴリ変数を取得し、処理はステップＳ２１に進む。
【０１０７】
ステップＳ２１において、制御部５２は、数値変数である変数Ｘ，Ｙについて、独立性検定処理４を実行する。
【０１０８】
ここで、図８のフローチャートを参照して、制御部５２によって実行される独立性検定処理４の詳細について説明する。
【０１０９】
ステップＳ６１において、制御部５２は、カテゴリ変数選択部７４によって取得された、条件変数Ｚに含まれる少なくとも２つのカテゴリ変数をＺｊとする。なお、値ｊは１乃至ｍとし、ｍは条件変数Ｚに含まれるカテゴリ変数の数を示している。
【０１１０】
ステップＳ６２において、制御部５２は、ｊ＝１とする。
【０１１１】
ステップＳ６３において、離散化部７５は、カテゴリ変数選択部７４によって取得された、条件変数Ｚに含まれるカテゴリ変数Ｚｊ（ここでは、Ｚ１）を基準として、変数Ｘ，Ｙと、条件変数Ｚに含まれている他の変数（数値変数）を離散化する。数値変数が離散化された離散化データは、離散化データ記憶部８３に一時的に保持される。
【０１１２】
このとき、変数Ｘ，Ｙ、および条件変数Ｚは、全てカテゴリ変数であるとみなすことができる。
【０１１３】
ステップＳ６４において、カテゴリ変数検定実行部７２は、カテゴリ変数である変数Ｘ，Ｙについて、独立性検定処理１を実行する。
【０１１４】
ステップＳ６５において、制御部５２は、値ｊを１インクリメントする。
【０１１５】
そして、ステップＳ６６において、実行判定部７６は、ステップＳ６４における独立性検定処理１において、独立性が棄却されたか、またはｊ＞ｍであるか否かを判定する。
【０１１６】
ステップＳ６６において、独立性が棄却されず、かつｊ＞ｍでないと判定された場合、すなわち、ステップＳ６４における独立性検定処理１において、変数Ｘ，Ｙに独立性があると判定され、かつ、全てのカテゴリ変数Ｚｊを基準とした数値変数の離散化および独立性検定が行われていない場合、処理はステップＳ６３に戻り、ステップＳ６３乃至ステップＳ６５の処理が繰り返される。
【０１１７】
一方、ステップＳ６６において、独立性が棄却されたか、またはｊ＞ｍであると判定された場合、すなわち、ステップＳ６４における独立性検定処理１において、変数Ｘ，Ｙに依存性があると判定されたか、または、全てのカテゴリ変数Ｚｊを基準とした数値変数の離散化および独立性検定が行われた場合、処理はステップＳ２１に戻る。
【０１１８】
このように、独立性検定処理４においては、複数のカテゴリ変数、すなわちカテゴリ変数Ｚｊそれぞれを基準として数値変数が離散化され、独立性検定が実行される。その中で、実行判定部７６によっていずれかの独立性検定において独立性が棄却されるか否かが判定され、独立性が棄却されると判定された場合には、カテゴリ変数検定実行部７２による独立性検定の実行は終了される。
【０１１９】
以上のようにして、独立性検定が実行された所定の変数Ｘ，Ｙについて、独立性が棄却された場合には、その変数対を辺で結んだグラフィカルモデルが、出力部５４としてのモニタ等に画像として出力されるようになる。ここで出力されるグラフィカルモデルは、どの条件変数によって条件付き独立性が棄却されなかったかを表す情報に基づいて、変数対を結んだ辺が部分的に有向化され、因果関係の向きが部分的に推定されたグラフとなる。
【０１２０】
以上の処理によれば、変数Ｘ，Ｙ、および条件変数Ｚに、少なくとも１つのカテゴリ変数と、少なくとも１つの数値変数とが含まれている場合、そのカテゴリ変数を基準として数値変数が離散化され、離散化された離散化変数とカテゴリ変数とを用いて、変数Ｘ，Ｙ間の条件付き独立性検定が実行される。したがって、多変数にカテゴリ変数と数値変数とが混在する場合であっても、多変数間の因果関係を推定することが可能となる。
【０１２１】
以上においては、所定の変数Ｘ，Ｙ、および条件変数の組Ｚのみに着目して因果関係推定処理の原理について説明したが、実際には、入力される変数集合に含まれる全ての変数に着目して因果関係推定処理が行われる必要がある。
【０１２２】
［因果関係推定処理の具体例］
そこで、図９乃至図１１のフローチャートを参照して、因果関係推定処理の具体例について説明する。記憶部５３には、変数の数Ｎと、それぞれの変数のとりうる２値以上の内部状態数が予め記憶されており、この変数全てについての状態が記述されたＭ個のデータが、入力部５１により入力されると、独立性検定処理が開始される。
【０１２３】
なお、初期状態として、変数対記憶部８１には、Ｎ個の変数がそれぞれ異なる(N-1)個の変数と対になった（辺で結ばれた）変数対が記憶されており、カテゴリ変数記憶部８２および離散化データ記憶部８３には何も記憶されていない。
【０１２４】
ステップＳ１１１において、制御部５２は、条件変数の組の数ｉを０、すなわち、条件変数の組を空集合とする。
【０１２５】
ステップＳ１１２において、制御部５２は、変数対記憶部８１に記憶されている変数対から、１つの変数対を選択する。
【０１２６】
ステップＳ１１３において、制御部５２は、変数対の２変数がともにカテゴリ変数であるか否かを判定する。
【０１２７】
ステップＳ１１３において、２変数がともにカテゴリ変数であると判定された場合、処理はステップＳ１１４に進み、独立性検定処理１が実行される。一方、２変数がともにカテゴリ変数でないと判定された場合、処理はステップＳ１１５に進む。
【０１２８】
ステップＳ１１５において、制御部５２は、２変数がともに数値変数であるか否かを判定する。
【０１２９】
ステップＳ１１５において、２変数がともに数値変数であると判定された場合、処理はステップＳ１１６に進み、独立性検定処理２が実行される。一方、２変数がともに数値変数でないと判定された場合、処理はステップＳ１１７に進む。
【０１３０】
この場合、２変数のいずれか一方はカテゴリ変数となり、他方は数値変数となる。
【０１３１】
ステップＳ１１７において、離散化部７５は、カテゴリ変数である２変数のうちの一方を基準として、数値変数である２変数のうちの他方を離散化する。その後、ステップＳ１１８において、独立性検定処理１が実行される。
【０１３２】
ステップＳ１１４、ステップＳ１１６、またはステップＳ１１８の後、ステップＳ１１９において、制御部５２は、変数対記憶部８１に記憶されている全ての変数対について、ステップＳ１１２乃至ステップＳ１１８の処理、すなわち条件のない独立性検定を実行したか否かを判定する。
【０１３３】
ステップＳ１１９において、全ての変数対について処理されていないと判定された場合、処理はステップＳ１１２に戻り、新たに選択される変数対について、ステップＳ１１２乃至ステップＳ１１８の処理が繰り返される。
【０１３４】
一方、ステップＳ１１９において、全ての変数対について処理されたと判定された場合、処理はステップＳ１２０（図１０）に進む。このとき、変数対記憶部８１は、独立性が棄却された（独立でない）２変数の変数対のみが記憶された状態となる。
【０１３５】
ステップＳ１２０において、制御部５２は、条件変数の組の数ｉを１とする。
【０１３６】
ステップＳ１２１において、制御部５２は、変数対記憶部８１に記憶されている変数対、すなわち、独立でない２変数の変数対から、１つの変数対を選択する。
【０１３７】
ステップＳ１２２において、制御部５２は、２変数および条件変数が全てカテゴリ変数であるか否かを判定する。
【０１３８】
ステップＳ１２２において、２変数および条件変数が全てカテゴリ変数であると判定された場合、処理はステップＳ１２３に進み、独立性検定処理１が実行される。一方、２変数がともにカテゴリ変数でないと判定された場合、処理はステップＳ１２４に進む。
【０１３９】
ステップＳ１２４において、制御部５２は、２変数および条件変数が全て数値変数であるか否かを判定する。
【０１４０】
ステップＳ１２４において、２変数および条件変数が全て数値変数であると判定された場合、処理はステップＳ１２５に進み、独立性検定処理２が実行される。一方、２変数および条件変数が全て数値変数でないと判定された場合、処理はステップＳ１２６に進む。
【０１４１】
ステップＳ１２６において、制御部５２は、２変数のいずれかがカテゴリ変数であるか否かを判定する。このとき、条件変数が、カテゴリ変数であるか数値変数であるかは問わない。
【０１４２】
ステップＳ１２６において、２変数のいずれかがカテゴリ変数であると判定された場合、処理はステップＳ１２７に進み、離散化部７５は、カテゴリ変数である２変数のうちの一方を基準として、数値変数である２変数のうちの他方と、条件変数が数値変数である場合には、その条件変数を離散化する。そして、ステップＳ１２８において、独立性検定処理１が実行される。
【０１４３】
一方、ステップＳ１２６において、２変数のいずれかがカテゴリ変数でないと判定された場合、すなわち、２変数がともにカテゴリ変数であるか、または数値変数である場合、処理はステップＳ１２９に進み、制御部５２は、条件変数のみがカテゴリ変数であるか否かを判定する。
【０１４４】
ステップＳ１２９において、条件変数のみがカテゴリ変数であると判定された場合、処理はステップＳ１２７に進み、その条件変数を離散化の基準として、ステップＳ１２７，Ｓ１２８の処理が実行される。
【０１４５】
一方、ステップＳ１２９において、条件変数のみがカテゴリ変数でないと判定された場合、すなわち、２変数がともにカテゴリ変数で、かつ条件変数が数値変数である場合、処理はステップＳ１３０に進み、独立性検定処理３が実行される。
【０１４６】
ステップＳ１２３、ステップＳ１２５、ステップＳ１２８、またはステップＳ１３０の後、ステップＳ１３１において、制御部５２は、変数対記憶部８１に記憶されている全ての変数対について、ステップＳ１２１乃至ステップＳ１３０の処理、すなわち条件変数の組の数を１とした条件付き独立性検定を実行したか否かを判定する。
【０１４７】
ステップＳ１３１において、全ての変数対について処理されていないと判定された場合、処理はステップＳ１２１に戻り、新たに選択される変数対について、ステップＳ１２１乃至ステップＳ１３０の処理が繰り返される。
【０１４８】
一方、ステップＳ１３１において、全ての変数対について処理されたと判定された場合、処理はステップＳ１３２（図１１）に進む。このときも、変数対記憶部８１は、独立性が棄却された（独立でない）２変数の変数対のみが記憶された状態となる。
【０１４９】
ステップＳ１３２において、制御部５２は、条件変数の組の数ｉを１インクリメントする。すなわち、まずは条件変数の組の数が２となる。
【０１５０】
ステップＳ１３３において、制御部５２は、変数対記憶部８１に記憶されている変数対、すなわち、独立でない２変数の変数対から、１つの変数対を選択する。
【０１５１】
ステップＳ１３４において、制御部５２は、２変数および条件変数を構成する変数（この場合２つの変数）が全てカテゴリ変数であるか否かを判定する。
【０１５２】
ステップＳ１３４において、２変数および条件変数を構成する変数が全てカテゴリ変数であると判定された場合、処理はステップＳ１３５に進み、独立性検定処理１が実行される。一方、２変数および条件変数に含まれる変数が全てカテゴリ変数でないと判定された場合、処理はステップＳ１３６に進む。
【０１５３】
ステップＳ１３６において、制御部５２は、２変数および条件変数を構成する変数が全て数値変数であるか否かを判定する。
【０１５４】
ステップＳ１３６において、２変数および条件変数を構成する変数が全て数値変数であると判定された場合、処理はステップＳ１３７に進み、独立性検定処理２が実行される。一方、２変数および条件変数を構成する変数が全て数値変数でないと判定された場合、処理はステップＳ１３８に進む。
【０１５５】
ステップＳ１３８において、制御部５２は、２変数のいずれかがカテゴリ変数であるか否かを判定する。このとき、条件変数を構成する変数が、カテゴリ変数であるか数値変数であるかは問わない。
【０１５６】
ステップＳ１３８において、２変数のいずれかがカテゴリ変数であると判定された場合、処理はステップＳ１３９に進み、離散化部７５は、カテゴリ変数である２変数のうちの一方を基準として、数値変数である２変数のうちの他方と、条件変数に数値変数が含まれている場合には、その数値変数を離散化する。そして、ステップＳ１４０において、独立性検定処理１が実行される。
【０１５７】
一方、ステップＳ１３８において、２変数のいずれかがカテゴリ変数でないと判定された場合、すなわち、２変数がともにカテゴリ変数であるか、または数値変数である場合、処理はステップＳ１４１に進み、制御部５２は、条件変数を構成する変数の１つのみがカテゴリ変数であるか否かを判定する。
【０１５８】
ステップＳ１４１において、条件変数を構成する変数の１つのみがカテゴリ変数であると判定された場合、処理はステップＳ１３９に進み、そのカテゴリ変数を離散化の基準として、ステップＳ１３９，Ｓ１４０の処理が実行される。
【０１５９】
一方、ステップＳ１４１において、条件変数を構成する変数の１つのみがカテゴリ変数でないと判定された場合、処理はステップＳ１４２に進み、制御部５２は、２変数がともにカテゴリ変数であるか否かを判定する。
【０１６０】
ステップＳ１４２において、２変数がともにカテゴリ変数であると判定された場合、処理はステップＳ１４３に進み、独立性検定処理３が実行される。
【０１６１】
一方、ステップＳ１４２において、２変数がともにカテゴリ変数でないと判定された場合、処理はステップＳ１４４に進み、独立性検定処理４が実行される。
【０１６２】
ステップＳ１３５、ステップＳ１３７、ステップＳ１４０、ステップＳ１４３、またはステップＳ１４４の後、ステップＳ１４５において、制御部５２は、変数対記憶部８１に記憶されている全ての変数対について、ステップＳ１３３乃至ステップＳ１４４の処理、すなわち条件変数の組の数を２とした条件付き独立性検定を実行したか否かを判定する。
【０１６３】
ステップＳ１４５において、全ての変数対について処理されていないと判定された場合、処理はステップＳ１３３に戻り、新たに選択される変数対について、ステップＳ１３３乃至ステップＳ１４４の処理が繰り返される。
【０１６４】
一方、ステップＳ１４５において、全ての変数対について処理されたと判定された場合、処理はステップＳ１４６に進む。このときも、変数対記憶部８１は、独立性が棄却された（独立でない）２変数の変数対のみが記憶された状態となる。
【０１６５】
ステップＳ１４６において、制御部５２は、条件変数の組の数ｉが、最大の数（変数セットに含まれる全ての組の数）imax（ｉ＝imax）であるか否かを判定する。なお、このimaxは、予めユーザによって定められた最大の数、推定処理時間に応じて計算機によって定められる最大の数、および計算の途中でユーザによって定められる最大の数のいずれかとすることも可能である。
【０１６６】
ステップＳ１４６において、ｉ＝imaxでないと判定された場合、処理はステップＳ１３２に戻り、条件変数の組の数ｉが１インクリメントされて、すなわち条件変数の組の数を３以上として、これ以降の処理が行われる。
【０１６７】
そして、ステップＳ１４６において、ｉ＝imaxであると判定された場合、処理は終了する。このようにして、実行可能な全ての検定が終了すると、変数対記憶部８１には、検定により独立ではないと判定され続けた２変数の変数対が残る。
【０１６８】
なお、記憶部５３に記憶されている内容は、制御部５２の制御の下、出力部５４に出力される。ここでは、上述したように、どの条件変数によって条件付き独立性が棄却されなかったかを表す情報に基づいて、変数対を結んだ辺は部分的に有向化される。これにより、例えば、変数間の因果関係を表す有向辺からなる有向（非）循環グラフ、因果関係を表す有向辺と依存関係を表す無向辺とが混在した部分有向（非）循環グラフ、混合先祖グラフ、または部分先祖グラフが出力される。
【０１６９】
ところで、独立性検定処理４（図８）においては、条件変数の組の数が多いほど、処理が繰り返される可能性がある。しかしながら、独立性検定処理４において、離散化の基準となる条件変数（カテゴリ変数）の中には、他の２変数の独立性検定の結果、着目している２変数の条件付き独立の条件になり得ないものが存在する可能性がある。すなわち、そのような条件変数で、独立性検定を行うことは無駄であり、全体的な計算量の増大を招くことになる。
【０１７０】
そこで、独立性検定処理４を、例えば、全ての変数対について独立性検定処理が実行された後に行われるようにしてもよい。
【０１７１】
［因果関係推定処理の他の具体例］
ここで、図１２のフローチャートを参照して、全ての変数対について独立性検定処理が実行された後に、独立性検定処理４を行うようにした因果関係推定処理について説明する。
【０１７２】
なお、図１２のフローチャートのステップＳ１４３までの処理は、図９乃至図１１のフローチャートのステップＳ１４３までの処理と同一であるので、その説明は省略する。
【０１７３】
すなわち、ステップＳ１３５、ステップＳ１３７、ステップＳ１４０、ステップＳ１４３の後、またはステップＳ１４２において２変数がともにカテゴリ変数でないと判定された場合、処理はステップＳ１４４に進む。
【０１７４】
ステップＳ１４４において、制御部５２は、変数対記憶部８１に記憶されている全ての変数対について、ステップＳ１３３乃至ステップＳ１４４の処理を実行したか否かを判定する。
【０１７５】
ステップＳ１４４において、全ての変数対について処理されていないと判定された場合、処理はステップＳ１３３に戻り、新たに選択される変数対について、ステップＳ１３３乃至ステップＳ１４３の処理が繰り返される。
【０１７６】
一方、ステップＳ１４４において、全ての変数対について処理されたと判定された場合、処理はステップＳ１４５に進む。
【０１７７】
ステップＳ１４５において、制御部５２は、変数対記憶部８１に記憶されている変数対から、１つの変数対を選択する。なお、ここで選択される変数対は、２変数がともに数値変数であるものだけとする。
【０１７８】
ステップＳ１４６において、制御部５２は、独立性検定処理４を実行する。
【０１７９】
ステップＳ１４７において、制御部５２は、変数対記憶部８１に記憶されている全ての変数対（２変数がともに数値変数である変数対）について、ステップＳ１４６の処理、すなわち独立性検定処理４を実行したか否かを判定する。
【０１８０】
ステップＳ１４７において、全ての変数対について処理されていないと判定された場合、処理はステップＳ１４５に戻り、新たに選択される変数対について、ステップＳ１４６の処理が繰り返される。
【０１８１】
一方、ステップＳ１４７において、全ての変数対について処理されたと判定された場合、処理はステップＳ１４８に進む。なお、ステップＳ１４８における処理は、図１１のステップＳ１４６における処理と同様であるので、その説明は省略する。
【０１８２】
以上の処理によれば、独立性検定処理４が、全ての変数対について独立性検定処理が実行された後に行われるようになるので、独立性検定処理４において無駄な処理が行われなくなり、全体的な計算量を低減することが可能となる。
【０１８３】
なお、以上においては、全ての変数対について独立性検定処理が実行された後に、独立性検定処理４が実行されるものとしたが、ある一定以上の数の変数対について独立性検定処理が実行された後に、独立性検定処理４が実行されるようにしても、上述と同様の効果を奏することは可能である。
【０１８４】
また、独立性検定処理４が実行されるタイミングは、図１２のフローチャートに示されるものに限らず、少なくとも、独立性検定処理３が実行された後であればよい。
【０１８５】
なお、独立性検定処理３においても、着目している２変数についての独立性検定が最大で２回繰り返される可能性がある。したがって、独立性検定処理３についても、例えば全ての変数対について独立性検定処理が実行された後に、独立性検定処理３が実行されるようにしてもよい。
【０１８６】
以上においては、情報処理装置１１内で、因果関係推定処理が実行されるものとしたが、ネットワークを介して接続される装置間で、因果関係推定処理が実行されるようにすることもできる。
【０１８７】
［ネットワークシステムの構成例］
図１３は、本技術を適用したネットワークシステムの構成例を示している。
【０１８８】
図１３に示されるネットワークシステムは、ユーザによって操作される携帯端末等のクライアント１１１と、インターネット等のネットワーク１１２を介して接続されるサーバ１１３により構成される。
【０１８９】
クライアント１１１は、図３の入力部５１および出力部５４のそれぞれに対応する、入力部１２１および出力部１２２を備えている。
【０１９０】
また、サーバ１１３は、図３の制御部５２および記憶部５３のそれぞれに対応する、制御部１３１および記憶部１３２を備えている。
【０１９１】
このような構成において、サーバ１１３は、クライアント１１１からの指示に応じて、因果関係推定処理を実行し、その結果を、クライアント１１１に出力することを可能とする。
【０１９２】
［本技術の適用例］
なお、本技術は、以下に挙げるような例に適用することが可能である。
【０１９３】
（１）因果構造発見プログラム
多変数間の統計的因果構造を発見する因果構造発見プログラムに、本技術の因果関係推定処理を適用する。なお、カテゴリ変数と数値変数とが混在した多変量確率変数がユーザによって定義され、データセットも予め用意されているものとする。これらのデータが入力されることにより、上述した因果関係推定処理において条件付き独立性検定を行う際に、必要に応じて数値変数が離散化され、独立性検定が行われる。
【０１９４】
ここで、独立性検定処理４のように、離散化の基準となるカテゴリ変数が多数存在する場合には、離散化の計算に時間がかかるため、離散化の基準となるカテゴリ変数を、予めユーザに指定させる機能を設けるようにしてもよい。この場合、ユーザに指定されたカテゴリ変数のみを基準とした離散化および独立性検定が行われるようになり、計算量を低減することができる。全ての検定が終了した後、有向化のルールに則って有向化が実行され、有向辺と無向辺の混在した因果構造を示すグラフィカルモデルが、出力部５４としてのモニタ等に画像として出力されるようになる。このとき、グラフィカルモデルが、同等の関係を表すテキストデータとして、モニタ等に出力されるようにしてもよい。これにより、ユーザは、変数間の因果関係や依存関係を発見、確認することが可能となる。
【０１９５】
（２）工場におけるデータ分析
工場における様々な測定項目と歩留りとの間の因果関係を発見するシステムに、本技術の因果関係推定処理を適用する。なお、確率変数として、｛良品か否かＹ，工場内温度Ｔ、工場内湿度Ｍ、測定項目１Ａ、測定項目２Ｂ，装置１Ｄ、および装置２Ｅ｝が定義されているものとする。ここで、変数Ｙは、製造される製品が良品であるか、良品でないかの２値を有するカテゴリ変数である。変数Ｄは、製品を製造する製造装置についての変数であり、３種類の型番を有するカテゴリ変数であり、変数Ｅもまた、２種類の型番を有するカテゴリ変数である。他の変数は全て数値変数であり、製品やその製品が製造される環境に関する数値を表す変数である。
【０１９６】
条件変数の組の数が０である場合、例えば、変数Ａ，Ｂの独立性検定においては、変数Ａ，Ｂがともに数値変数であるので、離散化は行われず、独立性検定処理２が実行される。変数Ｄ，Ｅの独立性検定においては、変数Ｄ，Ｅがともにカテゴリ変数であるので、独立性検定処理１が実行される。変数Ｄ，Ｍの独立性検定においては、変数Ｄがカテゴリ変数であり、変数Ｍが数値変数であるので、変数Ｄを基準として変数Ｍが離散化され、独立性検定処理１が実行される。
【０１９７】
条件変数の組の数が１である場合、例えば、変数Ａを条件変数としたときの変数Ｙ，Ｍの条件付き独立性検定においては、変数Ｙがカテゴリ変数であり、変数Ａ，Ｍが数値変数であるので、変数Ｙを基準として変数Ａ，Ｍが離散化され、独立性検定処理１が実行される。変数Ａを条件変数としたときの変数Ｙ，Ｄの条件付き独立性検定においては、変数Ｙ，Ｄがカテゴリ変数であり、変数Ａが数値変数であるので、まず変数Ｙを基準として変数Ａが離散化され、独立性検定処理１が実行される。棄却されなかった場合には、変数Ｄを基準として変数Ａが離散化され、再度独立性検定処理１が実行される。
【０１９８】
このようにして、独立性検定が繰り返し行われることに加え、Ｖ字構造と呼ばれるグラフ構造の推定と、有向化のルールの適用により、有向辺と無向辺の混在したグラフィカルモデルが、出力部５４としてのモニタ等に画像として出力されるようになる。Ｖ字構造は、例えば、変数Ｘと変数Ｙとが独立であり、かつ変数Ｘと変数Ｚ、変数Ｙと変数Ｚがそれぞれ独立でないグラフ構造である。この例では、変数間の因果関係として、例えば、｛Ｔ−Ｍ｝，｛Ｍ→Ａ｝，｛Ｄ→Ａ｝，｛Ａ→Ｙ｝，｛Ｂ→Ｙ｝，｛Ｂ−Ｅ｝等が出力される。なお、ここでは、変数間の"−"は無向辺を表し、"→"は有向辺を表す。
【０１９９】
（３）健康診断システム
健康診断により得られたデータと、被験者の組織内での立場との間の統計的因果構造を発見する健康診断システムに、本技術の因果関係推定処理を適用する。なお、確率変数のうち、数値変数として｛年齢Ａ、BMI（Body Mass Index）Ｂ、血圧Ｃ、尿酸値Ｄ、体脂肪率Ｅ、血糖値Ｆ、残業時間Ｇ｝が定義され、カテゴリ変数として｛性別Ｓ、職種Ｊ、役職Ｐ｝が定義されているものとする。変数Ｓは、男・女の２値を有するカテゴリ変数である。変数Ｊは、職種についての変数であり、例えば営業、研究、開発、人事等が予め定義されるカテゴリ変数である。変数Ｐは、役職についての変数であり、例えば、部長、課長、一般職員等が予め定義されるカテゴリ変数である。
【０２００】
この例においても、上述した因果関係推定処理において条件付き独立性検定を行う際に、必要に応じて数値変数が離散化され、独立性検定が行われることで、ユーザは、変数間の因果関係や依存関係を発見、確認することが可能となる。
【０２０１】
なお、この例においては、組織を構成するメンバについて、特徴的な依存関係を把握することが可能となる。具体的には、あるメンバについての２変数が、ともにカテゴリ変数であればＧ２統計量が、ともに数値変数であれば式（４）の左辺の値が、２変数の依存関係の強さとして出力される。また、あるメンバについての２変数が、それぞれカテゴリ変数と数値変数であれば、カテゴリ変数を基準として数値変数を離散化した場合のＧ２統計量が、２変数の依存関係の強さとして出力される。すなわち、２変数の依存関係の強さを数値的に把握することが可能となる。
【０２０２】
以上のように、本技術によれば、ユーザが、変数の形態について意識することなく、各種データの分析を行うことが可能となる。
【０２０３】
また、本技術は、上述した例の他にも、ユーザの選択行為を支援する意思決定支援装置、遺伝子解析装置、計量経済学的分析、心理学実験分析、アンケート結果分析、経営分析、人間行動分析等の社会科学的分析を行う分析装置、入力された文書を分類する文書分類装置、入力された画像を識別する画像識別装置、センサからの入力情報の解析を行う解析装置、ユーザの嗜好等に応じた推薦を行う推薦装置、その他のエージェントシステム等に適用することができる。
【０２０４】
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０２０５】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０２０６】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２０７】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２０８】
また、本技術は以下のような構成をとることができる。
（１）
多変数間の独立性を検定する情報処理装置において、
グラフィカルモデルにおいて少なくとも独立ではない２変数、および前記２変数間の独立性の条件となる条件変数の組に、少なくとも１つのカテゴリ変数と、少なくとも１つの数値変数とが含まれる場合、前記カテゴリ変数を基準として、前記数値変数を離散化する離散化部と、
前記カテゴリ変数と、前記数値変数が離散化された離散化変数とを用いて、前記２変数間の条件付き独立性検定を実行する検定実行部と
を備える情報処理装置。
（２）
前記離散化部は、前記２変数のうちの一方が前記カテゴリ変数である場合、前記２変数のうちの一方を基準として、前記２変数のうちの他方および前記条件変数の組に含まれる前記数値変数を離散化する
（１）に記載の情報処理装置。
（３）
前記離散化部は、前記条件変数の組を構成する変数のうちのいずれか１つのみが前記カテゴリ変数である場合、前記カテゴリ変数を基準として、前記数値変数である前記２変数および前記条件変数の組を構成する他の変数を離散化する
（１）または（２）に記載の情報処理装置。
（４）
２つ以上の前記カテゴリ変数それぞれを用いて、前記２変数間の条件付き独立性検定が実行される場合、前記２変数間の条件付き独立性検定のいずれかにおいて、前記２変数間の独立性が棄却されるか否かを判定する判定部をさらに備え、
前記検定実行部は、前記２変数間の独立性が棄却されると判定された場合、前記２変数間の条件付き独立性検定の実行を終了する
（１）乃至（３）のいずれかに記載の情報処理装置。
（５）
前記判定部は、前記２変数の両方が前記カテゴリ変数である場合、前記２変数それぞれを用いて実行される前記２変数間の条件付き独立性検定のいずれかにおいて、前記２変数間の独立性が棄却されるか否かを判定する
（４）に記載の情報処理装置。
（６）
前記判定部は、前記２変数の両方が前記数値変数で、かつ前記条件変数の組に２つ以上の前記カテゴリ変数が含まれる場合、前記カテゴリ変数それぞれを用いて実行される前記２変数間の条件付き独立性検定のいずれかにおいて、前記２変数間の独立性が棄却されるか否かを判定する
（４）に記載の情報処理装置。
（７）
前記判定部は、所定数の変数対について前記２変数間の条件付き独立性検定が実行された後に、前記カテゴリ変数それぞれを用いて実行される前記２変数間の条件付き独立性検定のいずれかにおいて、前記２変数間の独立性が棄却されるか否かを判定する
（４）乃至（６）のいずれかに記載の情報処理装置。
（８）
前記離散化部は、離散化の基準となる前記カテゴリ変数が複数ある場合、ユーザによって指定された前記カテゴリ変数を基準として、前記数値変数を離散化する
（１）乃至（７）のいずれかに記載の情報処理装置。
（９）
前記カテゴリ変数には、少なくとも、人間をカテゴライズする変数が含まれ、
前記数値変数には、少なくとも、人体に関する数値を表す変数が含まれる
（１）乃至（８）のいずれかに記載の情報処理装置。
（１０）
前記カテゴリ変数には、少なくとも、製品および前記製品を製造する製造装置のいずれかまたは両方をカテゴライズする変数が含まれ、
前記数値変数には、少なくとも、前記製品および前記製品が製造される環境のいずれかまたは両方に関する数値を表す変数が含まれる
（１）乃至（８）のいずれかに記載の情報処理装置。
（１１）
多変数間の独立性を検定する情報処理装置の情報処理方法において、
前記情報処理装置が、
グラフィカルモデルにおいて少なくとも独立ではない２変数、および前記２変数間の独立性の条件となる条件変数の組に、少なくとも１つのカテゴリ変数と、少なくとも１つの数値変数とが含まれる場合、前記カテゴリ変数を基準として、前記数値変数を離散化し、
前記カテゴリ変数と、前記数値変数が離散化された離散化変数とを用いて、前記２変数間の条件付き独立性検定を実行する
ステップを含む情報処理方法。
（１２）
多変数間の独立性を検定する処理をコンピュータに実行させるプログラムにおいて、
グラフィカルモデルにおいて少なくとも独立ではない２変数、および前記２変数間の独立性の条件となる条件変数の組に、少なくとも１つのカテゴリ変数と、少なくとも１つの数値変数とが含まれている場合、前記カテゴリ変数を基準として、前記数値変数を離散化する離散化ステップと、
前記カテゴリ変数と、前記数値変数が離散化された離散化変数とを用いて、前記２変数間の条件付き独立性検定を実行する実行ステップと
を含む処理をコンピュータに実行させるプログラム。
【符号の説明】
【０２０９】
１１  情報処理装置，  ５１  入力部，  ５２  制御部，  ５３  記憶部，  ５４  出力部，  ７１  カテゴリ変数検出部，  ７２  カテゴリ変数検定実行部，  ７３  数値変数検定実行部，  ７４  カテゴリ変数選択部，  ７５  離散化部，  ７６  実行判定部，  ８１  変数対記憶部，  ８２  カテゴリ変数記憶部，  ８３  離散化データ記憶部
【図１】
2014228991.tif 000007
【図２】
2014228991.tif 000008
【図３】
2014228991.tif 000009
【図４】
2014228991.tif 000010
【図５】
2014228991.tif 000011
【図６】
2014228991.tif 000012
【図７】
2014228991.tif 000013
【図８】
2014228991.tif 000014
【図９】
2014228991.tif 000015
【図１０】
2014228991.tif 000016
【図１１】
2014228991.tif 000017
【図１２】
2014228991.tif 000018
【図１３】
2014228991.tif 000019