(57)【要約】  より少ない計算時間で相関係数が高い変数のペアを抽出する目的で、複数の変数間の相関変数を計算するデータ処理システムを、複数の相関係数を格納するテーブルを記憶する記憶部（３１０）と、第１の変数（Ｉ）と第２の変数（Ｊ）の間の相関係数である第１の相関係数（RIJ）の計算の要否を判定することを選択する第１の選択部（４０４〜４０５）と、第１の変数との間の相関係数である第２の相関係数（RIK）、および、第２の変数との間の相関係数である第３の相関係数（RJK）が前記テーブルに格納されている変数である第３の変数（Ｋ）を選択する第２の選択部（４０６）と、第２の相関係数および第３の相関係数に基づいて、第１の相関係数の計算の要否を判定する第１の判定部（４０７）と、を有する構成とする。
2016027297.tif 000002
【特許請求の範囲】
【請求項１】
複数の変数間の相関変数を計算するデータ処理システムであって、
前記複数の相関係数を格納するテーブルを記憶する記憶部と、
第１の変数と第２の変数の間の相関係数である第１の相関係数の計算の要否を判定することを選択する第１の選択部と、
前記第１の変数との間の相関係数である第２の相関係数、および、前記第２の変数との間の相関係数である第３の相関係数が、前記テーブルに格納されている変数である第３の変数を選択する第２の選択部と、
前記第２の相関係数および前記第３の相関係数に基づいて、前記第１の相関係数の計算の要否を判定する第１の判定部と、
を有することを特徴とするデータ処理システム。
【請求項２】
請求項１において、
前記第１の相関係数の下限である閾値を入力する入力部をさらに有し、
前記第１の判定部は、前記第２の相関係数および前記第３の相関係数に基づいて、前記第１の相関係数が前記閾値を超える可能性があるかを判定することを特徴とするデータ処理システム。
【請求項３】
請求項１において、
前記第２の選択部は、前記第１の変数との間の相関係数である相関係数、および、前記第２の変数との間の相関係数である相関係数が、前記テーブルに格納されている他の変数をさらに選択し、
前記第１の判定部は、前記他の変数の相関係数に基づいて、前記第１の相関係数の計算の要否をさらに判定し、
前記データ処理システムは、前記第１の判定部が計算が不要であると判定できない場合に、前記第１の相関係数を計算する計算部をさらに有することを特徴とするデータ処理システム。
【請求項４】
請求項１において、
前記第２の選択部は、前記第３の変数となる条件を満たす変数が複数存在する場合には、前記第２の相関係数または前記第３の相関係数が大きいものから順番に選択することを特徴とするデータ処理システム。
【請求項５】
請求項１において、
前記複数の変数のそれぞれは正規化されていることを特徴とするデータ処理システム。
【請求項６】
請求項２において、
前記入力部は、前記閾値を変更可能に構成され、
前記データ処理システムは、前記閾値が変更された際に、変更後の前記閾値が、前記テーブルに格納されている相関係数の最小値よりも小さい場合に、前記第１の選択部に選択をさせる第２の判定部をさらに有することを特徴とするデータ処理システム。
【請求項７】
請求項１において、
前記データ処理システムは、前記複数の変数、前記複数の相関係数のうち前記閾値を超えるもの、および、前記閾値を超える前記相関係数を持つ前記複数の変数間をつなぐリンクを表示する表示部をさらに有することを特徴とするデータ処理システム。
【請求項８】
複数の変数間の相関変数を計算するデータ処理方法であって、
第１の変数と第２の変数の間の相関係数である第１の相関係数の計算の要否を判定する工程と、
前記第１の変数との間の相関係数である第２の相関係数、および、前記第２の変数との間の相関係数である第３の相関係数が、前記複数の相関係数を格納するテーブルに格納されている変数である第３の変数を選択する工程と、
前記第２の相関係数および前記第３の相関係数に基づいて、前記第１の相関係数の計算の要否を判定する工程と、
を有することを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多くの変数を含むデータに関して、変数間の関係を明らかにするために、相関の高い変数のペアを高速に抽出する技術に関する。
【背景技術】
【０００２】
近年、ＢＩＧＤＡＴＡと呼ばれる社会の大量の情報間の関係を明らかにするような技術が発展してきている。これら大量の情報間の関係を明らかにする最も基本的な方法として、例えば特許文献１に記載の技術がある。特許文献１においては、ユーザー集合Ｓを特定し、ユーザー集合Ｓ間の類似度を算出することによりネットワーク図を作成し、ユーザー集合間の関係を可視化している。【０００３】
また、特許文献２には、相関係数の計算時間を削減しようとする技術として、相関計算に用いる領域を限定することで、変数間の全データを用いないで相関係数を求めて短縮する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−８６０６２
【特許文献２】特開平７−１０５３８２
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで本願発明者は、図１に示す相関ネットワークを検討した。図１に係る相関ネットワークは、各変数を１０３に示されるようなノードとし、変数間の関係が強い場合には１０１に示されるリンクを貼る表現方法である。相関ネットワークによって、１０２に示されるような複数の変数からなるクラスタや、１０４に示されるようなどの変数とも関係性を持たないクラスタ外のデータを、視覚的に読み取れるようになる。【０００６】
このような相関ネットワークを作成するためには、変数間の関係の強さを相関係数により表現する方法が一般的である。この場合、相関ネットワークを作成するためには、事前に図２に示すような相関表２０１を生成する必要がある。しかし、一般に変数間の相関係数を全て求めようとした場合、変数が増えるにしたがってＯ（Ｎ＾２）で計算時間が増えてしまうという問題がある。【０００７】
ここで、図２の相関表２０１には各変数間の相関係数が格納されていて、その中で相関係数が有る閾値以上のペアがリンクで結ばれる。例えば、閾値を０．５とすると、Ａ１とＡ２の相関係数は閾値以上の相関係数なので、図１のＡ１とＡ２はリンクで結ばれている。そのため、図２において黒く塗った各相関係数２０２は、いずれも図１の相関ネットワークを作成するために計算が必要な相関係数である。【０００８】
逆に、Ａ１とＢ２の相関係数は閾値以下の相関係数なので、図１のＡ１とＢ２はリンクで結ばれていない。そのため、図２において黒く塗られていない各相関係数２０３は、図１の相関ネットワークを作成するためには必ずしも必須ではなく、これらの相関係数の計算時間を削減することが望ましい。しかしながら、どの相関係数が結果的にリンクで結ばれないかは、従来は相関係数を求めた結果初めて分かることであり、相関係数の計算前に既知の情報ではなかったため、特許文献２に記載の技術では、このような計算時間の削減は実現できなかった。【０００９】
以上を踏まえ、本発明の目的は、より少ない計算時間で、相関係数が高い変数のペアを抽出する技術を提供することにある。
【課題を解決するための手段】
【００１０】
本願発明における課題を解決するための手段のうち代表的なものを例示すれば、複数の変数間の相関変数を計算するデータ処理システムであって、複数の相関係数を格納するテーブルを記憶する記憶部と、第１の変数と第２の変数の間の相関係数である第１の相関係数の計算の要否を判定することを選択する第１の選択部と、第１の変数との間の相関係数である第２の相関係数、および、第２の変数との間の相関係数である第３の相関係数が、テーブルに格納されている変数である第３の変数を選択する第２の選択部と、第２の相関係数および第３の相関係数に基づいて、第１の相関係数の計算の要否を判定する第１の判定部と、を有することを特徴とする。【００１１】
または、複数の変数間の相関変数を計算するデータ処理方法であって、第１の変数と第２の変数の間の相関係数である第１の相関係数の計算の要否を判定する工程と、第１の変数との間の相関係数である第２の相関係数、および、第２の変数との間の相関係数である第３の相関係数が、複数の相関係数を格納するテーブルに格納されている変数である第３の変数を選択する工程と、第２の相関係数および第３の相関係数に基づいて、第１の相関係数の計算の要否を判定する工程と、を有することを特徴とする。
【発明の効果】
【００１２】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、より少ない計算時間で、相関係数が高い変数のペアを抽出することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】：関係ネットワーク
【図２】：相関表
【図３】：システム構成図
【図４】：全相関計算処理
【図５】：相関計算の必要性判定
【図６】：変数群テーブル
【図７】：正規化変数群テーブル
【図８】：相関結果テーブル
【図９】：相関結果テーブル
【図１０】：媒介変数を用いた相関係数の絞り込み
【図１１】：入出力画面
【図１２】：入出力画面（動的更新）
【図１３】：全相関計算処理（動的更新）
【発明を実施するための形態】
【実施例１】
【００１４】
以下、本発明の一実施形態を図面を参照して説明する。図３は、本システムの構成を示すシステム構成図である。本システムは、大きく中央処理装置３０１、二次記憶装置３１０、主記憶装置３２０、入力装置３４０、出力装置３５０によって構成されるサーバシステムである。中央処理装置３０１は、主記憶装置３２０に格納されたプログラムを実行するプロセッサである。【００１５】
二次記憶装置３１０の内部には、本システムで相関計算を行うための入力となる変数群テーブル３１２、変数群テーブルを正規化した正規化変数群テーブル３１３、及び相関計算の結果が格納される相関結果テーブル３１１が格納される。ここで、二次記憶装置３１０は、例えば、磁気記憶装置、フラッシュメモリ等の大容量かつ不揮発性の記憶装置である。また、二次記憶装置３１０装置に記憶されている各テーブルは、主記憶装置３２０に格納して、より高速にアクセスすることを可能にすることも考えられる。【００１６】
主記憶装置３２０は、例えば、ＤＲＡＭ（ＤＹＮＡＭＩＣ  ＲＡＮＤＯＭ  ＡＣＣＥＳＳ  ＭＥＭＯＲＹ）のような高速かつ揮発性の記憶装置であり、オペレーティングシステム（ＯＳ）及びアプリケーションプログラムを格納する。中央処理装置１００がオペレーティングシステムを実行することによって、計算機の基本機能が実現され、アプリケーションプログラムを実行することによって、計算機が提供する機能が実現される。【００１７】
具体的には、主記憶装置３２０は、全相関計算処理部３３０、媒介変数選択部３３１、相関計算の必要性判定部３３２、相関計算部３３３を実現するためのプログラムを格納する。【００１８】
入力装置３４０は、キーボード、マウスなどのユーザインターフェースである。出力装置３５０は、ディスプレイ装置、プリンタなどのユーザインターフェースである。【００１９】
なお、中央処理装置３０１によって実行されるプログラムは、不揮発性の記憶媒体又はネットワークを介して計算機に提供される。このため、計算機は、記憶媒体（ＣＤ−ＲＯＭ、フラッシュメモリ等）を読み込むインターフェースを備えるとよい。【００２０】
図４に、本システムの具体的な全相関計算処理部３３０のフローを示す。本システムでは、変数群テーブル３１２に格納されている各変数の組から、ある閾値ＴＨ１以上の相関係数の値を持つ相関係数に関しては全て計算し、それ以外の相関係数に関しては出来るだけ計算しないことで、計算時間を大幅に高速化する。【００２１】
変数群テーブル３１２は、本システムで計算する変数が格納されているテーブルである。変数群テーブル３１２の具体的な構成については、図６にて説明する。【００２２】
ステップ４０３は、変数群テーブル３１２の各変数を正規化するための処理である。この処理は、後の相関計算３３３の処理の計算量を減らし、高速化するための処理である。本処理部では、変数群テーブル３１２の各変数を平均０、分散１に正規化する。正規化された各変数は正規化変数群テーブル３１３に格納される。正規化変数群テーブル３１３の具体的な構成については、図７にて説明する。【００２３】
ここで、具体的に各変数間の相関の計算を効率的に行う処理を説明する。具体的には、二つの変数、変数Ｉと変数Ｊの相関係数ＩＪを全ての組み合わせに対して計算する際に、ある変数Ｋに着目することで、相関係数ＩＪが今回必要とする相関係数の閾値ＴＨ１以下であるということ確定された場合には、計算時間のかかる相関計算を行わず、相関係数ＩＪは閾値ＴＨ１以下であったということだけを記録することで、計算時間を短縮していく。【００２４】
ここで、本願明細書において、相関係数ＩＪとは変数Ｉと変数Ｊとの相関係数のこととする。また、本願明細書において、ある相関係数がある正の閾値ＴＨ１以下と表現した場合には、当該相関係数の絶対値が閾値ＴＨ１以下であるということとする。これは、相関ネットワークを形成する場合に、リンクを貼るか否かは、変数間の関係性が強いか否かで決める場合が多いからである。つまり、変数間の相関が正で強い場合も、負で強い場合も同様に興味があり、出力する必要があるということである。【００２５】
ステップ４０４では、これから求める相関係数の変数の一つを選択する。本システムでは、全ての変数間の相関係数を求める必要があるため、変数Ｉとして選ぶｉ番目の変数はｉ＝０から、ｉ＝Ｎまで全ての変数をとる。ここで、Ｎは変数の総数である。【００２６】
ステップ４０５では、変数Ｉとの相関係数を計算する変数を選択する。ここで、全ての変数は自分自身との相関係数は１と予めわかっている。また、相関係数ＩＪは相関係数ＪＩと等しいことから、全ての変数の組み合わせの相関係数は、図２のように対角を除いた半分になる。よって、変数Ｊとして選ぶｊ番目の変数はｊ＝ｉ＋１から、ｊ＝Ｎまでの範囲となる。【００２７】
ステップ４０６では、媒介変数選択部３３１により、先に述べた相関係数ＩＪを計算する必要があるかを判定するのに使う媒介変数Ｋを選択する。媒介変数Ｋとして満たすべき条件は、相関係数ＩＫと相関係数ＪＫがともに計算されていることである。よって、相関結果テーブル３１１から相関係数ＩＫと相関係数ＪＫがともに計算されているＫの集合を取り出し、当該Ｋ集合の中からＫを一つずつ選択していく。この際に、Ｋ集合の中からＫを取り出していく順番は、順不同にランダムに取りだしていくことも可能であるし、相関係数ＩＫもしくは相関係数ＪＫの大きいものから順に取りだしていくことも可能である。相関係数ＩＫもしくは相関係数ＪＫの大きいものから順に取りだすメリットは、変数Ｋが変数Ｉもしくは変数Ｊのどちらかと強い相関がある場合に、後段の相関係数ＩＪ必要性判定処理部３３２において、相関計算が不要であると判定される可能性が上がることがあり、そのため少ない媒介変数Ｋのループで相関係数ＩＪの計算が不要であると判定することが可能になる場合があるからである。【００２８】
ステップ４０７では、相関計算の必要性判定部３３２により、媒介変数Ｋを用いて、変数Ｉと変数Ｊの相関係数ＩＪが閾値ＴＨ１よりも小さい、つまり相関係数ＩＪをわざわざ計算しなくてもよいかどうかを判定する。判定の詳細については、図５を用いて後述する。相関ＩＪの計算が不要と判定された場合、相関ＩＪは閾値ＴＨ１よりも小さいことが確定されるので、相関結果テーブル３１１にその結果を格納する。具体的には、図８の相関結果テーブル３１１の８０４のように計算が省略された記号”−”を格納し、変数Ｉ（図８中ではＡ２）と変数Ｊ（図８中ではＣ３）の相関計算の必要性の判定を終了した結果、閾値ＴＨ１以下であることがわかるようにする。【００２９】
ステップ４０８では、Ｋ集合の全てのＫを選択したかを判定する。ここで、すべてのＫを選択していない場合に、まだ選択されていないＫを媒介変数として用いて、相関ＩＪの必要性判定を繰り返し行う。一方、全てのＫを選択した場合は、全てのＫを用いても相関ＩＪが閾値ＴＨ１よりも小さいと断定出来なかったということを意味する。よって、後段の全相関計算処理部において相関係数ＩＪを計算する。ここで、注意しなければいけないのは、全てのＫを用いても相関ＩＪが閾値ＴＨ１よりも小さいと断定出来なかったからといって、実際に相関ＩＪが閾値ＴＨ１よりも大きいとは限らないということである。そのため、後述する３３３で実際に相関ＩＪを計算する必要がある。また、ここの判定部４０８では、必ずしもＫ集合の全てのＫを選択しなくても良い。なぜならば、Ｋ集合の数が大きくなりすぎると、Ｋ集合の全てのＫを用いて判定する計算コストの方が相関係数ＩＪを単独に計算するよりも大きくなるからである。この場合は、Ｋ集合に対して判定するＫの数の上限を設けるといった方法も可能となる。例えば、（相関係数ＩＪを単独に計算する際の演算コスト）×1/2を判定するＫの数の上限と設けることで、直接計算する方が計算が早い場合には自動的に直接計算することが可能となる。【００３０】
ステップ４０９では、相関計算部３３３により、全ての媒介変数Ｋを用いても相関係数ＩＪが閾値ＴＨ１よりも小さいと断定することが出来なかった（または、Ｋの数の上限に達したため、ステップ４０８の判定を打ち切った）組に関して、相関係数を実際に計算する。ここでは、ピアソンの積率相関係数を用いて変数Ｉと変数Ｊの相関関係を求める。具体的には変数Ｉ、変数Ｊに関して次式（１）の内積計算を行って相関係数ＩＪ（＝RIJ）を計算する。ただし、XI、XJはそれぞれ変数Ｉ、変数Ｊのデータ部分をベクトル化したものである。ここで、XI、XJは事前の正規化処理４０３によって、平均０、分散１に正規化されていることに注意する。【００３１】
【数１】
2016027297.tif 000003
【００３２】
ステップ４１０では、全てのＪを選択したかを判定し、選択していなかった場合には、まだ選択していないＪを変数Ｊ選択４０５に戻り選択する。全てのＪを選択していた場合には、全てのＩを選択したか４１１を行う。【００３３】
ステップ４１１では、全てのiを選択したかを判定し、選択していなかった場合には、ステップ４０４に戻り選択する。全てのＩを選択していた場合には、相関計算フローは終了となる。【００３４】
図５は、ステップ４０７の詳細を示すフローである。ここでは変数Ｉ、変数Ｊ、媒介変数Ｋ、相関係数ＩＫ、相関係数ＪＫが与えられた時に、相関係数ＩＪが閾値ＴＨ１よりも小さいと断定できるかを判定する。相関係数ＩＫと相関係数ＪＫから、相関係数ＩＪが閾値ＴＨ１よりも小さいかどうか判定できる原理は図１０にて説明する。【００３５】
本フローの入力５０２は変数Ｉ，変数Ｊ，媒介変数Ｋである。この入力に対し、ステップ５０３において、相関結果４１２より、相関係数ＩＫと相関係数ＪＫを取得する。【００３６】
ステップ５０４では、相関係数ＩＪが閾値ＴＨ１よりも大きくなるのに必要な上限角θThmaxと下限角θThminをそれぞれ、相関係数の閾値ＴＨ１（＝RTH1）を用いて、それぞれ次式で求める。【００３７】
【数２】
2016027297.tif 000004
【００３８】
【数３】
2016027297.tif 000005
【００３９】
ステップ５０５では、相関係数ＩＫ（＝RIK）と相関係数ＪＫ（＝RJK）から、変数Ｉと変数Ｊの相関角和ＩＪを次式の様に計算する。【００４０】
【数４】
2016027297.tif 000006
【００４１】
ただし、θ+IJが条件式（θ+IJ>π）を満たす場合には、π>θ+IJ>0の範囲を満たすように、次の変換（θ+IJ=2π−θ+IJ）を行う。【００４２】
ステップ５０６では、相関係数ＩＫ（＝RIK）と相関係数ＪＫ（＝RJK）から、変数Ｉと変数Ｊの相関角差ＩＪを次式の様に計算する。【００４３】
【数５】
2016027297.tif 000007
【００４４】
ステップ５０７では、相関角差ＩＪを用いて、相関係数ＩＪを計算する必要があるか否かを判定する。具体的には、以下の条件式（１）を満たす場合には、相関係数ＩＪが閾値ＴＨ１よりも確実に小さくなることが確定するので、計算不要と判定する。条件式（１）を満たさない場合には、ステップ５０８の判定に進む。【００４５】
【数６】
2016027297.tif 000008
【００４６】
ステップ５０８では、相関角和ＩＪを用いて、相関係数ＩＪを計算する必要があるか否かを判定する。具体的には、以下の条件式（２）を満たす場合には、相関係数ＩＪが閾値ＴＨ１よりも確実に小さくなることが確定するので、計算不要と判定する。条件式（２）を満たさない場合には、相関角和と相関角差どちらを用いても、相関係数ＩＪが閾値ＴＨ１よりも小さくなると断定することができなかったことになるので、判定不能と判断する。【００４７】
【数７】
2016027297.tif 000009
【００４８】
ここでは、最も一般的な相関計算の必要性判定部３３２のフローについて説明したが、式（２）及び式（３）における、余弦関数の逆関数の計算を減らすために、相関係数を格納する相関結果テーブルの他に対応する余弦関数の逆関数の結果も保管しておく構成も考えられる。【００４９】
図６に、変数群テーブル３１２の例を示す。テーブルの各カラムには、その変数の名前である変数名６０１を格納する部分と、その変数のデータである変数データ６０２を格納する部分を有する。【００５０】
図７は正規化変数群テーブル３１２を示している。このテーブルはステップ４０３によって、変数群テーブル３１２の各変数が平均０、分散１に正規化されている。【００５１】
図８は、相関結果テーブル３１１の、特に計算途中の状態の例を示したものである。図４にて説明したように、相関結果テーブル３１１には、なるべく不要な計算を排除した相関計算の結果が随時格納されていく。【００５２】
例えば８０２等の、黒塗りの数値が格納されたセルは、相関計算の必要性判定部３３２で相関計算の必要性があると判定されて、相関計算部３３３で相関係数を計算した結果、相関が実際に閾値ＴＨ１よりも大きかった例である。ただし、本例ではＴＨ１＝０．５とした。【００５３】
例えば８０３等の、黒塗りでない数値が格納されたセルは、相関計算の必要性判定部３３２で相関計算の必要性があると判定されたものの、相関計算部３３３で相関係数を計算した結果、相関係数が実際は閾値ＴＨ１よりも小さかった例である。本図では説明を分かりやすくするために、８０２と８０３の表示を変えているが、基本的にこれらの二つの結果は特に区別しなくても良い。【００５４】
例えば８０４等の、計算が省略された記号”−”が格納されたセルは、相関計算の必要性判定部３３２で相関計算の必要性が無いと判定された例である。【００５５】
例えば８０５等の空欄のセルは、相関計算の必要性判定処理がまだ行われていない例である。【００５６】
図９に最終的に出力される相関結果テーブルの例を示す。図９の相関結果テーブル３１１は、基本的には図８のものと同じであるが、計算が終了している時点では８０５の未処理のセルは残っておらず、全てのセルに、相関係数か相関計算不要を意味する記号”−”のどちらかが格納されている。【００５７】
図１０は、媒介変数を用いた相関係数の絞り込みの原理を示す図である。ここで述べる絞り込みとは、図１０（Ａ）に示されているように相関係数ＩＫと相関係数ＪＫが与えられているときに、未知の相関係数ＩＪの範囲を絞り込むことに相当する。ここで、相関係数の定義に戻ると、全ての変数が平均０、分散１に正規化されている場合、相関係数とは二つの変数の内積に等しくなる。また、分散が１に正規化されているので、図１０（Ａ）の例で示されているように、変数Ｉと変数Ｋの内積は原点からみた変数Ｉと変数Ｋの角度θIKを用いて、cosθIKとなる。今、相関係数ＩＫ（＝RIK）と相関係数ＪＫ（＝RJK）が既知であるので、角度θIK=cos-1(RIK)と角度θJK=cos-1(RJK)が既知となる。ここで、相関係数ＩＪが閾値ＴＨ１よりも小さいかどうかを判定したいので、角度θIJの取り得る範囲が分かればよい。変数Ｉ、変数Ｊ、変数Ｋは変数のベクトルの次元と同じ次元数の超球面上に存在するため、角度θIKと角度θJKからは角度θIJは一意には定まらないことに注意する。しかし、角度θIJの取り得る範囲を考えるのに重要な角度θIJの取り得る最大値θmaxIJと最小値θminIJは同定することができる。なぜならば、角度θIKと角度θJKが定まっている変数Ｉ、変数Ｊ、変数Ｋが自由に超球面上を移動できる場合に、最大値θmaxIJと最小値θminIJはどちらも図１０（Ｂ）に示すように、変数Ｉ、変数Ｊ、変数Ｋが原点を含んで同一平面上にあるときに取る値であるからである。よって、最大値θmaxIJと最小値θminIJはそれぞれ下式のように求まる。【００５８】
【数８】
2016027297.tif 000010
【００５９】
【数９】
2016027297.tif 000011
【００６０】
以上より、角度θIJの取り得る最大値θmaxIJと最小値θminIJが求まるので、式（１）から相関係数ＩＪはこの角度θIJが最小値から最大値まで動いた時にcosθIJが取り得る値に限定することができる。よって、全ての取り得る角度θIJに対して、常にcosθIJが閾値ＴＨ１よりも小さければ、相関係数ＩＪは閾値ＴＨ１よりも確実に小さいと判定することができる。そして、この判定は角度θIJの最大値と最小値の２点で評価すれば十分であるので、当該２点における、cos(θmaxIJ)とcos(θminIJ)を計算するだけで、相関係数ＩＪが閾値ＴＨ１を超える可能性があるかを判定できることがわかる。【００６１】
これを踏まえ、本実施例に係るデータ処理システムは、複数の相関係数を格納するテーブルを記憶する記憶部（３１０）と、第１の変数（Ｉ）と第２の変数（Ｊ）の間の相関係数である第１の相関係数（RIJ）の計算の要否を判定することを選択する第１の選択部（４０４〜４０５）と、第１の変数との間の相関係数である第２の相関係数（RIK）、および、第２の変数との間の相関係数である第３の相関係数（RJK）が前記テーブルに格納されている変数である第３の変数（Ｋ）を選択する第２の選択部（４０６）と、第２の相関係数および第３の相関係数に基づいて、第１の相関係数の計算の要否を判定する第１の判定部（４０７）と、を有することを特徴とする。または、複数の変数間の相関変数を計算するデータ処理方法であって、第１の変数（Ｉ）と第２の変数の間の相関係数である第１の相関係数（RIJ）の計算の要否を判定する工程（４０４〜４０５）と、第１の変数との間の相関係数である第２の相関係数（RIK）、および、前記第２の変数との間の相関係数である第３の相関係数（RJK）が、前記複数の相関係数を格納するテーブルに格納されている変数である第３の変数（Ｋ）を選択する工程（４０６）と、第２の相関係数および第３の相関係数に基づいて、第１の相関係数の計算の要否を判定する工程（４０７）と、を有することを特徴とする。【００６２】
係る特徴により、既知の相関係数から計算要否を判定可能な相関係数を実際に求めることなく、図１に示すような関係ネットワークを図示することが可能となる。【００６３】
図１１は本システムにおける入出力画面１１０１の例を示したものである。相関ネットワーク出力部１１０２は、計算された相関結果テーブルの値より、各変数間の相関関係をネットワークで図示したものである。ノード１１０３は各変数を表す。ノード１１０３には、どの変数を表したノードかが分かるように変数名６０１を同時に表示することも可能である。また、相関ネットワークにおける重要性に応じて、ノード１１０３の表示を変えることも可能である。例えば、他の変数と多くリンクが結ばれているノードは大きく表示する、または色を変えて表示するといったことが考えられる。【００６４】
リンク１１０４は、各変数間の相関係数が閾値ＴＨ１よりも大きい場合に変数間に引かれる線である。相関係数の大小を強調するために、相関係数がより大きいものをより太くする、また相関係数の大きさでいくつかに分類し線種を変えて表示することも可能である。【００６５】
入力ファイル指定部１１０５は、変数群テーブルを指定する部分である。入力ファイルとしては、ＣＳＶファイル、ＤＢのテーブル、テキストファイル等あらゆる形式のデータが想定される。【００６６】
相関閾値指定部１１０６は、相関係数の閾値ＴＨ１をユーザが入力できる部分である。【００６７】
計算実行ボタン１１０７は、上記閾値ＴＨ１と入力ファイルを用いて、全相関計算処理部３３０を実行するためのトリガーである。当該ボタンが押されて、相関結果テーブル３１１が生成されると、自動的に相関ネットワーク出力部１１０２にネットワークが表示される。【００６８】
相関係数１１０８はリンク上に貼られる、リンクが結んでいる変数間の相関係数値である。【００６９】
以上が実施例１となる。実施例１では、図１１のネットワーク図表示をユーザへの出力結果の中心としたが、本特許のコアはある閾値以上の相関結果テーブルを高速に出力することであるので、ある閾値以上の相関結果テーブルを用いるあらゆるアプリも対象となる。
【実施例２】
【００７０】
以下、本発明の二つ目の実施形態を、図面を参照して説明する。実施例２は、実施例１における相関計算が閾値ＴＨ１に応じて動的に、かつ必要最小限に行われる例である。【００７１】
図１２に入出力画面（動的更新）の例を示す。入出力画面（動的更新）１２０１の基本的な構成は入出力画面１１０１の場合と同じであるので、同じ部分に関しては省略する。入出力画面１１０１との違いは相関閾値設定バー１２０２である。【００７２】
相関閾値設定バー１２０２は、入出力画面１１０１における相関閾値指定部１１０６を動的に代えられるようにバーにしたものである。入出力画面（動的更新）１２０１ではユーザがバーを移動し終えたら自動的に図１３に示す全相関計算処理部（動的更新）が実行される。【００７３】
図１３に、全相関計算処理部（動的更新）のフローを示す。図４と同じ処理は以後の説明では省略する。本フローでは、閾値ＴＨ１が動的に変更されたときに、基本的には過去に計算した相関結果を用いる。しかし、本システムは相関係数が閾値以下であることが確定している変数の組に関しては相関の計算を省略する。そこで、当該省略された結果に関して、新閾値ＴＨ１が動的に変更された結果、新たに計算が必要となった場合には計算する、というのが本フローの基本的な流れである。【００７４】
ステップ１３０１では、ユーザが動的に変更した、最新の閾値ＴＨ１を取得する。【００７５】
ステップ１３０２では、ユーザが動的に変更した新閾値ＴＨ１が過去に計算した最低閾値ＴＨＭＩＮよりも大きいかを判定する。ここで、新閾値ＴＨ１が最低閾値ＴＨＭＩＮよりも大きい場合には、過去に計算を省略した相関係数は確実に新閾値ＴＨ１よりも小さいので、改めて計算する必要が無い。この場合、計算終了となり本フローは終了となる。新閾値ＴＨ１が最低閾値ＴＨＭＩＮよりも小さい場合には、過去に計算を省略した相関係数の中に新閾値ＴＨ１よりは大きいものがある可能性があるので、相関計算のフローに入る。【００７６】
ステップでは、変数Ｉと変数Ｊの相関係数を相関結果テーブル３１１より取得する。【００７７】
ステップ１３０５では、ステップ１３０４で取得した相関係数ＩＪについて、既に計算が済んでいるかを判定する。既に計算が済んでいる場合には、改めて計算する必要が無いので、ステップ４０５に進む。過去の計算では、最低閾値ＴＨＭＩＮよりも小さいことが確定されていて、相関計算が省略されている場合には、最低閾値ＴＨＭＩＮよりも小さい新閾値ＴＨ１よりは大きい可能性があるので、再度相関計算の必要性の判定を行う。【００７８】
このように、本実施例に係るデータ処理システムは、閾値が変更された際に、変更後の閾値が、テーブルに格納されている相関係数の最小値よりも小さい場合に、第１の選択部に選択をさせる（１３０２）。これによって、閾値が動的に変更された際の計算量増加を最小限に抑えることが可能となる。【００７９】
本フローが終了すると、相関結果テーブルには新閾値ＴＨ１よりも大きい相関係数は全て格納されていることが保証されるので、最低閾値ＴＨＭＩＮの更新部１３１３で、過去の最低閾値ＴＨＭＩＮを新閾値ＴＨ１に更新する。
【符号の説明】
【００８０】
１０１：関係ネットワーク
１０２：クラスタ
１０３：ノード
１０４：クラスタ外
２０１：相関表
２０２：閾値以上の相関
２０３：閾値以下の相関
３０１：中央処理装置
３１０：二次記憶装置
３１１：相関結果テーブル
３１２：変数群テーブル
３１３：正規化変数群テーブル
３２０：主記憶装置
３３０：全相関計算処理部
３３１：媒介指標選択部
３３２：相関計算の必要性判定部
３３３：相関計算部
３４０：入力装置
３５０：出力装置
４０３〜４１１：ステップ
５０２：指標Ｉ，  指標Ｊ，  指標Ｋ
５０３：相関ＩＫ，  相関ＪＫ取得
５０４：相関角の必要上限／下限の計算
５０５：相関角和ＩＪの計算
５０６：相関角差ＩＪの計算
５０７：相関角差による判定
５０８：相関角和による判定
６０１：変数名
６０２：変数データ
８０１：相関結果テーブル
８０２：閾値以上相関結果
８０３：閾値以下相関結果
８０４：相関計算不要結果
８０５：未処理
９０１：相関結果テーブル
９０２：相関計算不要結果
１１０１：入出力画面
１１０２：相関ネットワーク出力部
１１０３：ノード
１１０４：リンク
１１０５：入力ファイル指定部
１１０６：相関閾値指定部
１１０７：計算実行ボタン
１１０８：相関係数
１２０１：入出力画面（動的更新）
１２０２：相関閾値設定バー
１２０３：計算再実行ボタン
１３０１〜１３１３：ステップ。
【図１】
2016027297.tif 000012
【図２】
2016027297.tif 000013
【図３】
2016027297.tif 000014
【図４】
2016027297.tif 000015
【図５】
2016027297.tif 000016
【図６】
2016027297.tif 000017
【図７】
2016027297.tif 000018
【図８】
2016027297.tif 000019
【図９】
2016027297.tif 000020
【図１０】
2016027297.tif 000021
【図１１】
2016027297.tif 000022
【図１２】
2016027297.tif 000023
【図１３】
2016027297.tif 000024
【手続補正書】
【提出日】平成28年12月16日(2016.12.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の変数間の相関変数を計算するデータ処理システムであって、
複数の相関係数を格納するテーブルを記憶する記憶部と、
第１の変数と第２の変数の間の相関係数である第１の相関係数の計算の要否を判定することを選択する第１の選択部と、
前記第１の変数との間の相関係数である第２の相関係数、および、前記第２の変数との間の相関係数である第３の相関係数が、前記テーブルに格納されている変数である第３の変数を選択する第２の選択部と、
前記第２の相関係数および前記第３の相関係数に基づいて、前記第１の相関係数の計算の要否を判定する第１の判定部と、
を有することを特徴とするデータ処理システム。
【請求項２】
請求項１において、
前記第１の相関係数の下限である閾値を入力する入力部をさらに有し、
前記第１の判定部は、前記第２の相関係数および前記第３の相関係数に基づいて、前記第１の相関係数が前記閾値を超える可能性があるかを判定することを特徴とするデータ処理システム。
【請求項３】
請求項１において、
前記第２の選択部は、前記第１の変数との間の相関係数である相関係数、および、前記第２の変数との間の相関係数である相関係数が、前記テーブルに格納されている他の変数をさらに選択し、
前記第１の判定部は、前記他の変数の相関係数に基づいて、前記第１の相関係数の計算の要否をさらに判定し、
前記データ処理システムは、前記第１の判定部が計算が不要であると判定できない場合に、前記第１の相関係数を計算する計算部をさらに有することを特徴とするデータ処理システム。
【請求項４】
請求項１において、
前記第２の選択部は、前記第３の変数となる条件を満たす変数が複数存在する場合には、前記第２の相関係数または前記第３の相関係数が大きいものから順番に選択することを特徴とするデータ処理システム。
【請求項５】
請求項１において、
前記複数の変数のそれぞれは正規化されていることを特徴とするデータ処理システム。
【請求項６】
請求項２において、
前記入力部は、前記閾値を変更可能に構成され、
前記データ処理システムは、前記閾値が変更された際に、変更後の前記閾値が、前記テーブルに格納されている相関係数の最小値よりも小さい場合に、前記第１の選択部に選択をさせる第２の判定部をさらに有することを特徴とするデータ処理システム。
【請求項７】
請求項１において、
前記データ処理システムは、前記複数の変数、前記複数の相関係数のうち閾値を超えるもの、および、前記閾値を超える前記相関係数を持つ前記複数の変数間をつなぐリンクを表示する表示部をさらに有することを特徴とするデータ処理システム。
【請求項８】
複数の変数間の相関変数を計算するデータ処理方法であって、
第１の変数と第２の変数の間の相関係数である第１の相関係数の計算の要否を判定する工程と、
前記第１の変数との間の相関係数である第２の相関係数、および、前記第２の変数との間の相関係数である第３の相関係数が、複数の相関係数を格納するテーブルに格納されている変数である第３の変数を選択する工程と、
前記第２の相関係数および前記第３の相関係数に基づいて、前記第１の相関係数の計算の要否を判定する工程と、
を有することを特徴とするデータ処理方法。
【国際調査報告】
2016027297.tif 000025
2016027297.tif 000026