(57)【要約】【課題】データの集合に対して統計解析を行うことができるように結合することができるようにする。【解決手段】第１ランク算出部１３０が、複数のデータからなるデータ集合を行列表現で表したデータ行列から、不要な行又は列を削除したデータ行列のランクを算出し、当該ランクがデータ行列の行数又は列数の何れか小さい方以上でない場合、行列変更部１５０が、データ行列の行数又は列数を増加又は減少させるようにデータ行列を変更し、小さい方以上である場合、行列結合部１６０が、データ行列に、データ行列と同一種類のデータ集合を表す他のデータ行列を、行列の行方向又は列方向に結合させた結合行列を生成し、行列再変更部１９０が、結合行列のランクが結合行列の行数又は列数の何れか小さい方以上でない場合、不要な行又は列の削除、データ行列のランクの算出、データ行列のランクの判定、及び変更をやり直す。【選択図】図１
2020042520.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータからなるデータ集合を行列表現で表したデータ行列から、不要な行又は列を削除する行列削除部と、
前記行列削除部により不要な行又は列が削除された前記データ行列のランクを算出する第１ランク算出部と、
前記第１ランク算出部により算出された前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上であるか否かを判定する第１判定部と、
前記第１判定部によって前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上でないと判定された場合、前記データ行列の行数又は列数を増加又は減少させるように前記データ行列を変更する行列変更部と、
前記第１判定部によって前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上であると判定された場合、前記データ行列に、前記データ行列と同一種類のデータ集合を表す他のデータ行列を、行列の行方向又は列方向に結合させた結合行列を生成する行列結合部と、
前記結合行列のランクを算出する第２ランク算出部と、
前記第２ランク算出部により算出された前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上であるか否かを判定する第２判定部と、
前記第２判定部によって前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上でないと判定された場合、前記データ行列及び前記他のデータ行列の各々について、前記行列削除部による削除、前記第１ランク算出部による算出、前記第１判定部による判定、及び前記行列変更部による変更をやり直すか、又は前記行列結合部による生成、前記第２ランク算出部による算出、及び前記第２判定部による判定をやり直す行列再変更部と、
前記第２判定部によって前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上であると判定された場合に、前記結合行列を出力する出力部と、
を含むデータ結合装置。
【請求項２】
前記データ行列と結合すべき前記他のデータ行列が複数ある場合には、前記他のデータ行列のすべてを結合するまで、前記行列再変更部は、前記行列結合部による生成、前記第２ランク算出部による算出、前記第２判定部による判定、前記行列再変更部によるやり直し、及び前記出力部による出力を繰り返す
請求項１記載のデータ結合装置。
【請求項３】
コンピュータを、
複数のデータからなるデータ集合を行列表現で表したデータ行列から、不要な行又は列を削除する行列削除部、
前記行列削除部により不要な行又は列が削除された前記データ行列のランクを算出する第１ランク算出部、
前記第１ランク算出部により算出された前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上であるか否かを判定する第１判定部、
前記第１判定部によって前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上でないと判定された場合、前記データ行列の行数又は列数を増加又は減少させるように前記データ行列を変更する行列変更部、
前記第１判定部によって前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上であると判定された場合、前記データ行列に、前記データ行列と同一種類のデータ集合を表す他のデータ行列を、行列の行方向又は列方向に結合させた結合行列を生成する行列結合部、
前記結合行列のランクを算出する第２ランク算出部、
前記第２ランク算出部により算出された前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上であるか否かを判定する第２判定部、
前記第２判定部によって前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上でないと判定された場合、前記データ行列及び前記他のデータ行列の各々について、前記行列削除部による削除、前記第１ランク算出部による算出、前記第１判定部による判定、及び前記行列変更部による変更をやり直すか、又は前記行列結合部による生成、前記第２ランク算出部による算出、及び前記第２判定部による判定をやり直す行列再変更部、及び、
前記第２判定部によって前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上であると判定された場合に、前記結合行列を出力する出力部
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ結合装置及びプログラムに関する。
【背景技術】
【０００２】
従来から、必要とされるセンシングデータを適切なセンシングデータを流通させるために、膨大なセンサデータの中からセンサとアプリとの双方のメタデータをマッチングさせて制御する技術がある（特許文献１）。
【０００３】
また、時系列データの異常度の検知精度を高めることを目的として、テスト用時系列データと、参照用正常時系列データの各々について生成した相関係数行列から、Ｇｒａｐｈｉｃａｌ  ＬＡＳＳＯのアルゴリズムにより、疎の精度行列を作成して、テスト用時系列データと参照用正常時系列データの各々について、好適には多変量ガウスモデルによって近傍性の確率分布を記述することにより、負のエントロピーの計算により、時系列データの異常度をカルバックライブラー距離として計算する技術がある（特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許５４４５７２２号公報
【特許文献２】特開２０１０−０７８４６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１の技術は、仮想センサはデータそのものの量を減らさないため、空白を多く含む場合や、大部分の構成要素が空白であるようなデータが存在する場合に、解析処理ができなくなってしまう、という問題があった。
【０００６】
この問題は、データの中に解析上不要である空白データを残したまま、データの操作を行うことで、計算を行うのに必要なメモリサイズが確保できなくなることや、行列計算を確実に行える保証がないこと（行列式の計算が行える技術的な担保がないこと）が原因で生じることが知られている。
【０００７】
上記問題は、データに関する行列のランクが行列の行数または列数の小さい方よりも更に小さい「ランク落ち」と呼ばれる状況として、数学上表現される。
【０００８】
この問題は、掃出し法と呼ばれる、ファイルの全て最小に統合して、統合後に不要データを削除する方法や、一つのファイル単位で不要データを削除し、削除後に統合する方法を行っても、解決できないことが知られている（参考文献１）。
［参考文献１］Ｄ．Ａ．ハーヴィル、伊理正夫、「統計のための行列代数」、シュプリンガージャパン、２００７年。
【０００９】
また、特許文献２では、Ｇｒａｐｈｉｃａｌ  ＬＡＳＳＯによる疎の精度行列が計算できることを前提としているため、データの形状によってはＬ１正則による計算でも、疎の精度行列の計算が可能となる保証が無い、という問題があった。
【００１０】
本発明は、上記問題点を解決するためになされたもので、データの集合に対して統計解析を行うことができるように結合することができるデータ結合装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために、本発明のデータ結合装置は、複数のデータからなるデータ集合を行列表現で表したデータ行列から、不要な行又は列を削除する行列削除部と、前記行列削除部により不要な行又は列が削除された前記データ行列のランクを算出する第１ランク算出部と、前記第１ランク算出部により算出された前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上であるか否かを判定する第１判定部と、前記第１判定部によって前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上でないと判定された場合、前記データ行列の行数又は列数を増加又は減少させるように前記データ行列を変更する行列変更部と、前記第１判定部によって前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上であると判定された場合、前記データ行列に、前記データ行列と同一種類のデータ集合を表す他のデータ行列を、行列の行方向又は列方向に結合させた結合行列を生成する行列結合部と、前記結合行列のランクを算出する第２ランク算出部と、前記第２ランク算出部により算出された前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上であるか否かを判定する第２判定部と、前記第２判定部によって前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上でないと判定された場合、前記データ行列及び前記他のデータ行列の各々について、前記行列削除部による削除、前記第１ランク算出部による算出、前記第１判定部による判定、及び前記行列変更部による変更をやり直すか、又は前記行列結合部による生成、前記第２ランク算出部による算出、及び前記第２判定部による判定をやり直す行列再変更部と、前記第２判定部によって前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上であると判定された場合に、前記結合行列を出力する出力部と、を含んで構成されている。
【００１２】
また、本発明のプログラムは、コンピュータを、複数のデータからなるデータ集合を行列表現で表したデータ行列から、不要な行又は列を削除する行列削除部、前記行列削除部により不要な行又は列が削除された前記データ行列のランクを算出する第１ランク算出部、前記第１ランク算出部により算出された前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上であるか否かを判定する第１判定部、前記第１判定部によって前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上でないと判定された場合、前記データ行列の行数又は列数を増加又は減少させるように前記データ行列を変更する行列変更部、前記第１判定部によって前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上であると判定された場合、前記データ行列に、前記データ行列と同一種類のデータ集合を表す他のデータ行列を、行列の行方向又は列方向に結合させた結合行列を生成する行列結合部、前記結合行列のランクを算出する第２ランク算出部、前記第２ランク算出部により算出された前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上であるか否かを判定する第２判定部、前記第２判定部によって前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上でないと判定された場合、前記データ行列及び前記他のデータ行列の各々について、前記行列削除部による削除、前記第１ランク算出部による算出、前記第１判定部による判定、及び前記行列変更部による変更をやり直すか、又は前記行列結合部による生成、前記第２ランク算出部による算出、及び前記第２判定部による判定をやり直す行列再変更部、及び、前記第２判定部によって前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上であると判定された場合に、前記結合行列を出力する出力部として機能させるためのプログラムである。
【００１３】
本発明のデータ結合装置装置及びプログラムによれば、行列削除部が、複数のデータからなるデータ集合を行列表現で表したデータ行列から、不要な行又は列を削除し、第１ランク算出部が、前記行列削除部により不要な行又は列が削除された前記データ行列のランクを算出し、第１判定部が、前記第１ランク算出部により算出された前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上であるか否かを判定し、行列変更部が、前記第１判定部によって前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上でないと判定された場合、前記データ行列の行数又は列数を増加又は減少させるように前記データ行列を変更する。
【００１４】
そして、行列結合部が、前記第１判定部によって前記ランクが、前記データ行列の行数又は列数の何れか小さい方以上であると判定された場合、前記データ行列に、前記データ行列と同一種類のデータ集合を表す他のデータ行列を、行列の行方向又は列方向に結合させた結合行列を生成し、第２ランク算出部が、前記結合行列のランクを算出し、第２判定部が、前記第２ランク算出部により算出された前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上であるか否かを判定し、行列再変更部が、前記第２判定部によって前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上でないと判定された場合、前記データ行列及び前記他のデータ行列の各々について、前記行列削除部による削除、前記第１ランク算出部による算出、前記第１判定部による判定、及び前記行列変更部による変更をやり直すか、又は前記行列結合部による生成、前記第２ランク算出部による算出、及び前記第２判定部による判定をやり直し、出力部が、前記第２判定部によって前記ランクが、前記結合行列の行数又は列数の何れか小さい方以上であると判定された場合に、前記結合行列を出力する。
【００１５】
このように、複数のデータからなるデータ集合を行列表現で表したデータ行列から、不要な行又は列を削除し、削除されたデータ行列のランクを算出し、当該ランクが、データ行列の行数又は列数の何れか小さい方以上でないと判定された場合、データ行列の行数又は列数を増加又は減少させるようにデータ行列を変更し、当該ランクが、データ行列の行数又は列数の何れか小さい方以上であると判定された場合、データ行列に、データ行列と同一種類のデータ集合を表す他のデータ行列を、行列の行方向又は列方向に結合させた結合行列を生成し、結合行列のランクを算出し、当該ランクが、結合行列の行数又は列数の何れか小さい方以上でないと判定された場合、データ行列及び他のデータ行列の各々について、削除、データ行列のランクの算出、データ行列のランクの判定、及び変更をやり直すか、又は生成、結合行列のランクの算出、及び結合行列のランクの判定をやり直すことにより、データの集合に対して統計解析を行うことができるように結合することができる。
【００１６】
また、本発明のデータ結合装置の前記行列再変更部は、前記データ行列と結合すべき前記他のデータ行列が複数ある場合には、前記他のデータ行列のすべてを結合するまで、前記行列結合部による生成、前記第２ランク算出部による算出、前記第２判定部による判定、前記行列再変更部によるやり直し、及び前記出力部による出力を繰り返すことができる。
【発明の効果】
【００１７】
以上説明したように、本発明のデータ結合装置及びプログラムによれば、複数のデータからなるデータ集合を行列表現で表したデータ行列から、不要な行又は列を削除し、削除されたデータ行列のランクを算出し、当該ランクが、データ行列の行数又は列数の何れか小さい方以上でないと判定された場合、データ行列の行数又は列数を増加又は減少させるようにデータ行列を変更し、当該ランクが、データ行列の行数又は列数の何れか小さい方以上であると判定された場合、データ行列に、データ行列と同一種類のデータ集合を表す他のデータ行列を、行列の行方向又は列方向に結合させた結合行列を生成し、結合行列のランクを算出し、当該ランクが、結合行列の行数又は列数の何れか小さい方以上でないと判定された場合、データ行列及び他のデータ行列の各々について、削除、データ行列のランクの算出、データ行列のランクの判定、及び変更をやり直すか、又は生成、結合行列のランクの算出、及び結合行列のランクの判定をやり直すことにより、データの集合に対して統計解析を行うことができるように結合することができる、という効果が得られる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態における概略構成を示すブロック図である。
【図２】本発明の実施の形態におけるデータ行列の一例を示す図である。
【図３】本発明の実施の形態における処理後のデータ行列の一例を示す図である。
【図４】本発明の実施の形態における結合行列の一例を示す図である。
【図５】本発明の実施の形態におけるデータ結合処理ルーチンの内容を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２０】
＜データ結合システムのシステム構成＞
図１に示すように、本発明の実施の形態に係るデータ結合システム１０は、データ結合装置１００と、データ集合記憶部３００と、解析用データ記憶部４００とを備えて構成される。
【００２１】
データ集合記憶部３００には、複数のデータからなるデータ集合が複数格納されている。
【００２２】
本実施形態では、１日に１つの値を出力し、土曜日・日曜日・祝日には値が出力されないデータを例に説明する。当該データは、縦に出力日、横に出力項目となる行列形式とする。この時、値が出力されない日の値を「０」とする。
【００２３】
このとき、９個の計測項目の値を月曜日から日曜日までの７日間出力し、この1週間のデータを１つのデータ集合都市、図２の行列Ａに示すような、列数が９、行数が７のデータ行列として表す。本実施形態では、データ集合記憶部３００に、複数のデータ集合を表す複数のデータ行列が格納されている。
【００２４】
解析用データ記憶部４００には、データ結合装置１００により結合されたデータ集合が格納されている。
【００２５】
データ結合装置１００は、ＣＰＵと、ＲＡＭと、後述するデータ結合処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備え、機能的には次に示すように構成されている。
【００２６】
データ結合装置１００は、取得部１１０と、行列削除部１２０と、第１ランク算出部１３０と、第１判定部１４０と、行列変更部１５０と、行列結合部１６０と、第２ランク算出部１７０と、第２判定部１８０と、行列再変更部１９０と、出力部２００とを備えて構成される。
【００２７】
取得部１１０は、データ集合記憶部３００から、複数のデータ行列を取得する。
【００２８】
そして、取得部１１０は、取得した複数のデータ行列を、行列削除部１２０に渡す。
【００２９】
行列削除部１２０は、データ行列から、不要な行又は列を削除する。処理対象となるデータ行列に対して、データ行列を結合する方向に応じて、不要な行を削除するのか、列を削除するのか、予め定められている。
【００３０】
具体的には、行列削除部１２０は、データ行列Ａから、要素が全て０である土曜日及び日曜日の行（６行目及び７行目）を削除して、データ行列Ａ−１とする（図３）。
【００３１】
そして、行列削除部１２０は、削除した後のデータ行列Ａ−１を、第１ランク算出部１３０に渡す。
【００３２】
第１ランク算出部１３０は、行列削除部１２０により不要な行又は列が削除されたデータ行列のランクを算出する。
【００３３】
具体的には、第１ランク算出部１３０は、不要な行又は列が削除されたデータ行列Ａ−１に対して、行列式ｄｅｔ（Ａ−１）を求め、ランクを算出する。
【００３４】
そして、第１ランク算出部１３０は、データ行列Ａ−１及び算出したランクを、第１判定部１４０に渡す。
【００３５】
第１判定部１４０は、第１ランク算出部１３０により算出されたランクが、データ行列の行数又は列数の何れか小さい方以上であるか否かを判定する。
【００３６】
具体的には、第１判定部１４０は、第１ランク算出部１３０により算出されたランクが、不要な行又は列を削除した後のデータ行列Ａ−１の行数である５、又はデータ行列Ａ−１の列数である９の何れか少ない方である５以上であるか否かを判定する。
【００３７】
第１判定部１４０は、ランクが５以上でないと判定した場合、少ない方であるデータ行列Ａ−１の５つの行に対して、データ行列Ａ−１の９つの列のうち、少なくとも５つの列のいずれかが退化した（他の列の係数倍となった状態となっている）と判断できる。このため、かかる場合には、第１判定部１４０は、行列変更部１５０に対し、データ行列Ａ−１を渡す。
【００３８】
一方、第１判定部１４０は、ランクが５以上であると判定した場合、ランク落ちが無いため、行列結合部１６０にデータ行列Ａ−１を渡す。
【００３９】
行列変更部１５０は、データ行列の行数又は列数を増加又は減少させるようにデータ行列を変更する。
【００４０】
具体的には、行列変更部１５０は、第１判定部１４０からデータ行列Ａ−１を受け取ると、出力項目を減らすことにより、データ行列Ａ−１の列数を減少させる（例えば、図３の行列Ａ−２）。
【００４１】
そして、行列変更部１５０は、変更したデータ行列Ａ−２を、行列削除部１２０に渡して、行列削除部１２０、第１ランク算出部１３０、及び第１判定部１４０の処理を繰り返す。
【００４２】
なお、行列変更部１５０は、データ行列の列数を減少させるようにデータ行列を変更する変わりに、データ行列の行数を減少させるようにデータ行列を変更するようにしてもよい。例えば、データ行列Ａ−１を、同じ列の値で、行番号が１つ異なる同士の差分を求めた値を要素とする行列に変更することにより、行数を減少させる構成としてもよい（例えば、図３の行列Ａ−３）。
【００４３】
また、行列変更部１５０は、他のデータを結合することにより、データ行列の行数又は列数を増加させるようにデータ行列を変更するようにしてもよい。
【００４４】
また、行列変更部１５０によりデータ行列の行数又は列数を増加又は減少させるようにデータ行列を変更した場合には、結合する他のデータ行列に対しても同様に変更する。
【００４５】
行列結合部１６０は、データ行列に、データ行列と同一種類のデータ集合を表す他のデータ行列を、行列の行方向又は列方向に結合させた結合行列を生成する。
【００４６】
具体的には、行列結合部１６０は、まず、第１判定部１４０から、データ行列Ａ−１を含む複数のデータ行列を受け取る。
【００４７】
次に、行列結合部１６０は、当該データ行列Ａ−１に、データ行列Ａ−１と同一種類のデータ集合を表す他のデータ行列を、行列の行数又は列数が同じ数である行列の方向に結合させた結合行列Ｂを生成する（図４の結合行列Ｂは、列方向に結合した場合）。
【００４８】
そして、行列結合部１６０は、生成した結合行列Ｂを、第２ランク算出部１７０に渡す。
【００４９】
第２ランク算出部１７０は、結合行列のランクを算出する。
【００５０】
具体的には、第２ランク算出部１７０は、行列結合部１６０から受け取った結合行列Ｂに対して、行列式ｄｅｔ（Ｂ）を求め、ランクを算出する。
【００５１】
そして、第２ランク算出部１７０は、算出したランクを、第２判定部１８０に渡す。
【００５２】
第２判定部１８０は、第２ランク算出部１７０により算出されたランクが、結合行列の行数又は列数の何れか小さい方以上であるか否かを判定する。
【００５３】
具体的には、第２判定部１８０は、第２ランク算出部１７０により算出されたランクが、結合行列Ｂの行数である１０、又は結合行列Ｂの列数である９の何れか少ない方である９以上であるか否かを判定する。
【００５４】
第２判定部１８０は、ランクが９以上でないと判定した場合、少ない方である結合行列Ｂの９つの列に対して、結合行列Ｂの１０の行のうち、少なくとも９つの行のいずれかが退化したと判断できる。このため、かかる場合には、第２判定部１８０は、行列再変更部１９０に対し、結合行列Ｂを渡す。
【００５５】
一方、ランクが９以上であると判定した場合、結合行列Ｂにランク落ちが無いため、当該結合行列Ｂは、統計解析をすることが可能な形の行列であると判断することができる。この場合、第２判定部１８０は、データ行列と結合すべき他のデータ行列がまだあるか否かを判定する。
【００５６】
データ行列と結合すべき他のデータ行列がまだある場合には、行列結合部１６０に、その旨を通知する。
【００５７】
データ行列と結合すべき他のデータ行列がない場合には、出力部２００に結合行列Ｂを渡す。
【００５８】
行列再変更部１９０は、データ行列及び他のデータ行列の各々について、行列削除部１２０による削除、第１ランク算出部１３０による算出、第１判定部１４０による判定、及び行列変更部１５０による変更をやり直す。
【００５９】
具体的には、行列再変更部１９０は、データ行列Ａ及び他のデータ行列の各々について、行列削除部１２０に対して、削除方針を変更して再度削除処理を行うよう通知する。
【００６０】
変更後の削除方針は、例えば、削除対象となった行又は列の全てではなく、それらのうち一部の行又は列を削除する等の方針である。
【００６１】
また、行列結合部１６０は、第２判定部１８０から、データ行列と結合すべき他のデータ行列がまだある旨の通知を受けた場合、当該他のデータ行列と結合行列Ｂとを結合し、第２ランク算出部１７０に渡す。これにより、データ行列と結合すべき他のデータ行列のすべてを結合するまで、行列結合部１６０による生成、第２ランク算出部１７０による算出、及び第２判定部１８０による判定、及び行列再変更部１９０によるやり直しが繰り返される。
【００６２】
出力部２００は、結合行列を出力する。
【００６３】
具体的には、出力部２００は、第２判定部１８０から受け取った結合行列Ｂを、解析用データ記憶部４００に格納する。
【００６４】
＜データ結合装置１００の動作＞
次に、図５を参照して、本実施形態のデータ結合装置１００のデータ結合処理ルーチンについて説明する。
【００６５】
まず、ステップＳ１００において、取得部１１０は、データ集合記憶部３００から、１つのデータ行列を取得する。具体的には、後述するステップＳ１６０によるデータ行列の結合が行われていない状態では、結合すべきデータ行列のうちの１つのデータ行列を、データ集合記憶部３００から取得する。後述するステップＳ１６０によるデータ行列の結合が既に行われた状態では、後述するステップ１６０により結合されたデータ行列のうちの何れか１つのデータ行列を、データ集合記憶部３００から取得する。
【００６６】
ステップＳ１１０において、行列削除部１２０は、上記ステップＳ１００により取得したデータ行列から、不要な行又は列を削除する。
【００６７】
ステップＳ１２０において、第１ランク算出部１３０は、上記ステップＳ１１０により不要な行又は列が削除されたデータ行列のランクを算出する。
【００６８】
ステップＳ１３０において、第１判定部１４０は、上記ステップＳ１２０により得られたランクが、データ行列の行数又は列数の何れか小さい方以上であるか否かを判定する。ここで、図５においてｍｉｎ（行数，列数）は、行数又は列数の何れか小さい方を意味する。
【００６９】
上記ステップＳ１２０により得られたランクが、データ行列の行数又は列数の何れか小さい方以上でない場合（ステップＳ１３０のＮＯ）、ステップＳ１４０において、行列変更部１５０は、データ行列の行数又は列数を増加又は減少させるようにデータ行列を変更し、ステップＳ１１０に戻る。
【００７０】
一方、上記ステップＳ１２０により得られたランクが、データ行列の行数又は列数の何れか小さい方以上である場合（ステップＳ１３０のＹＥＳ）、ステップＳ１５０において、第１判定部１４０は、後述するステップＳ１６０によるデータ行列の結合が行われていない状態では、結合すべきデータ行列のすべてについて上記ステップＳ１１０〜ステップＳ１５０の処理を行ったか否かを判定する。また、第１判定部１４０は、後述するステップＳ１６０によるデータ行列の結合が既に行われた状態では、結合されたデータ行列のすべてについて上記ステップＳ１１０〜ステップＳ１５０の処理を行ったか否かを判定する。
【００７１】
データ行列のすべてについて処理を行っていない場合（ステップＳ１５０のＮＯ）、ステップＳ１００に戻り、次のデータ行列を取得して、ステップＳ１１０〜ステップＳ１５０の処理を行う。
【００７２】
一方、データ行列のすべてについて処理を行っている場合（ステップＳ１５０のＹＥＳ）、ステップＳ１６０において、行列結合部１６０は、上記ステップＳ１１０〜ステップＳ１５０の処理が行われた２つのデータ行列を、行列の行方向又は列方向に結合させた結合行列を生成する。後述するステップＳ１８０により、ランクが、結合行列の行数又は列数の何れか小さい方以上である結合行列がある場合には、当該結合行列と、上記ステップＳ１１０〜ステップＳ１５０の処理が行われた１つのデータ行列とを結合させた結合行列を生成する。
【００７３】
ステップＳ１７０において、第２ランク算出部１７０は、上記ステップＳ１６０により得られた結合行列のランクを算出する。
【００７４】
ステップＳ１８０において、第２判定部１８０は、上記ステップＳ１７０により得られたランクが、結合行列の行数又は列数の何れか小さい方以上であるか否かを判定する。
【００７５】
ランクが、結合行列の行数又は列数の何れか小さい方以上でない場合（ステップＳ１８０のＮＯ）、行列再変更部１９０は、データ行列及び他のデータ行列の各々について、上記ステップＳ１１０〜ステップＳ１５０の処理を、削除方針を変更してやり直す。
【００７６】
一方、ランクが、結合行列の行数又は列数の何れか小さい方以上である場合（ステップＳ１８０のＹＥＳ）、ステップＳ１９０において、第２判定部１８０は、データ行列と結合すべき他のデータ行列がまだあるか否かを判定する。
【００７７】
データ行列と結合すべき他のデータ行列がまだある場合（ステップＳ１９０のＹＥＳ）、データ行列と結合すべき他のデータ行列のすべてを結合するまで、上記ステップＳ１６０〜ステップＳ１８０の処理を繰り返す。
【００７８】
一方、データ行列と結合すべき他のデータ行列がない場合（ステップＳ１９０のＮＯ）、ステップＳ２００において、出力部２００は、上記ステップＳ１６０により得られた結合行列を出力し、処理を終了する。
【００７９】
以上説明したように、本発明の実施の形態に係るデータ結合装置によれば、複数のデータからなるデータ集合を行列表現で表したデータ行列から、不要な行又は列を削除し、削除されたデータ行列のランクを算出し、当該ランクが、データ行列の行数又は列数の何れか小さい方以上でないと判定された場合、データ行列の行数又は列数を増加又は減少させるようにデータ行列を変更し、当該ランクが、データ行列の行数又は列数の何れか小さい方以上であると判定された場合、データ行列に、データ行列と同一種類のデータ集合を表す他のデータ行列を、行列の行方向又は列方向に結合させた結合行列を生成し、結合行列のランクを算出し、当該ランクが、結合行列の行数又は列数の何れか小さい方以上でないと判定された場合、データ行列及び他のデータ行列の各々について、削除、データ行列のランクの算出、データ行列のランクの判定、及び変更をやり直すか、又は生成、結合行列のランクの算出、及び結合行列のランクの判定をやり直すことにより、データの集合に対して統計解析を行うことができるように結合することができる。
【００８０】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００８１】
例えば、行列再変更部１９０は、行列削除部１２０による削除、第１ランク算出部１３０による算出、第１判定部１４０による判定、及び行列変更部１５０による変更をやり直す構成としたが、データ行列及び他のデータ行列の各々について、行列削除部１２０による削除をやり直さずに、行列結合部１６０による生成、第２ランク算出部１７０による算出、及び第２判定部１８０による判定をやり直す構成としてもよい。
【００８２】
この場合、行列再変更部１９０は、行列結合部１６０に対して、ファイルの結合を変える旨を通知する。
【００８３】
行列結合部１６０は、行列再変更部１９０からファイルの結合を変える旨の通知を受け取ると、データ行列に、データ行列と同一種類のデータ集合を表す他のデータ行列を、前回行った結合の方向行列の行方向又は列方向と異なる行列の行方向又は列方向に結合させた結合行列を生成する。
【００８４】
そして、行列結合部１６０は、生成した結合行列を、第２ランク算出部１７０に渡す。
【００８５】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【００８６】
１０   データ結合システム
１００ データ結合装置
１１０ 取得部
１２０ 行列削除部
１３０ 第１ランク算出部
１４０ 第１判定部
１５０ 行列変更部
１６０ 行列結合部
１７０ 第２ランク算出部
１８０ 第２判定部
１９０ 行列再変更部
２００ 出力部
３００ データ集合記憶部
４００ 解析用データ記憶部
【図１】
2020042520.tif 000003
【図２】
2020042520.tif 000004
【図３】
2020042520.tif 000005
【図４】
2020042520.tif 000006
【図５】
2020042520.tif 000007