(57)【要約】目的指標（目的変数）に影響を与える要因（イベントのパタン）を抽出する技術を提供する。  本開示によるデータ分析装置は、分析対象データに含まれる説明変数データについて、所定の範囲内における時系列パタンを生成する処理と、時系列パタンと分析対象データに含まれる少なくとも１つの目的変数データとの相関値を算出する処理と、相関値と共に、相関値に対応する時系列パタンを分析結果として出力する処理と、を実行する。
2017168524.tif 000002
【特許請求の範囲】
【請求項１】
分析対象データを分析するためのプログラムを格納する記憶装置と、
前記プログラムを前記記憶装置から読み込んで前記分析対象データを分析するプロセッサと、を備え、
前記プロセッサは、
前記分析対象データに含まれる説明変数データについて、所定の範囲内における時系列パタンを生成する処理と、
前記時系列パタンと前記分析対象データに含まれる少なくとも１つの目的変数データとの相関値を算出する処理と、
前記相関値と共に、前記相関値に対応する時系列パタンを分析結果として出力する処理と、
を実行する、分析用サーバ装置。
【請求項２】
請求項１において、
前記プロセッサは、さらに、前記説明変数データを所定のルールに基づいて抽象化する処理を実行し、
前記時系列パタンを抽出する処理において、前記プロセッサは、前記抽象化された説明変数データについて、前記時系列パタンを生成する、分析用サーバ装置。
【請求項３】
請求項１において、
前記出力する処理において、前記プロセッサは、前記相関値が所定の閾値以上である前記時系列パタンを前記分析結果として出力する、分析用サーバ装置。
【請求項４】
請求項２において、
前記抽象化する処理において、前記プロセッサは、前記説明変数データに含まれるテキストデータについては、当該テキストデータの文字列の類似性に基づいてクラスタリング処理を実行して、当該クラスタリング処理によって分類された前記テキストデータをラベルに変換する、分析用サーバ装置。
【請求項５】
請求項２において、
前記抽象化する処理において、前記プロセッサは、前記説明変数データに含まれる数値については、当該数値の発生分布に基づいて前記数値をラベルに変換する、分析用サーバ装置。
【請求項６】
請求項１において、
前記時系列パタンを生成する処理において、前記プロセッサは、前記説明変数データに含まれる時系列の各データについて、複数種類の時系列パタンを生成する、分析用サーバ装置。
【請求項７】
請求項１において、
前記出力する処理において、前記プロセッサは、前記分析対象データにおける前記時系列パタンの出現箇所を示す情報を出力する、分析用サーバ装置。
【請求項８】
請求項１において、
前記分析対象データは、それぞれが分析を行う単位である、複数のセッションに分割され、
前記時系列パタンを生成する処理において、前記プロセッサは、前記複数のセッションのそれぞれにおける前記時系列パタンの出現数をカウントし、
前記出力する処理において、前記プロセッサは、前記時系列パタンの前記セッションごとの出現回数と、前記目的変数データとの関係を示す情報を出力する、分析用サーバ装置。
【請求項９】
請求項１に記載の分析用サーバ装置と、
前記分析対象データを蓄積し、当該分析対象データを前記分析用サーバ装置に提供する、分析対象システムと、
前記時系列パタンを生成する際に用いられる時系列データ分析用パラメタを少なくとも入力するための端末装置と、を備え、
前記分析用サーバ装置と、前記分析対象システムと、前記端末装置とは、ネットワークを介して接続されている、データ解析システム。
【請求項１０】
分析対象データを分析するためのプログラムに従って、前記分析対象データを分析するプロセッサが、前記分析対象データに含まれる説明変数データについて、所定の範囲内における時系列パタンを生成することと、
前記プロセッサが、前記時系列パタンと前記分析対象データに含まれる少なくとも１つの目的変数データとの相関値を算出することと、
前記プロセッサが、前記相関値と共に、前記相関値に対応する時系列パタンを分析結果として出力することと、
を含む、データ解析方法。
【請求項１１】
請求項１０において、さらに、
前記プロセッサが、前記説明変数データを所定のルールに基づいて抽象化することを含み、
前記プロセッサは、前記抽象化された説明変数データについて、前記時系列パタンを生成する、データ解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、分析用サーバ装置、データ解析システム、及びデータ解析方法に関する。
【背景技術】
【０００２】
業務の改善につながる施策を作成したり、システムの不具合原因を発見したりするためには、組織内で生み出されるデータを分析することが有効である。例えば、小売・流通分野では、顧客の購買履歴データを分析することで、顧客単価の高い客層や、同時に購入される傾向にある商品を発見することができる。また、ＩＴ部門が管理するサーバのログデータを分析することで、サーバの負荷増加の要因となるプログラムやユーザの挙動などを発見できる。【０００３】
分析対象のデータは、何らかのイベントが発生した時刻とそのイベントの内容が時系列で並んでいる形式をしている。時刻の間隔は秒単位、月単位などデータごとに異なり、イベントの内容も気温のような数値データや商品名のようなテキストなど、形式はさまざまである。これらのデータを総称して時系列データと呼ぶ。時系列データから知見を得るために、イベントの発生規則（時系列パタンとよぶ）を抽出することが考案されている。【０００４】
例えば、特許文献１は、数値データを情報要素として含む時系列データ、テキストデータを情報要素として含む時系列データ、あるいは数値データおよびテキストデータを情報要素として含む時系列データのそれぞれに関して頻出時系列パタンを抽出することについて開示している。具体的には、数値データおよびテキストデータからキー概念が抽出され、抽出されたキー概念から構成される時系列データに対して頻出時系列パタン抽出が実行される。これにより、小売分野における売り上げデータまたは業務報告を記載した日報などから、当該データに内在する時間の流れを考慮した時系列的な規則性（時系列パタン）を発見することができる。また、特許文献１によれば、数値、テキストを含む時系列データから頻出時系列パタンを抽出することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２８７７９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、発生頻度を基に時系列パタン（時系列データ内でより多く発生した時系列パタン）が抽出されるだけであり、頻度が高い時系列パタンが目的指標（目的変数）に影響を与えるとは限らない。従って、この場合、目的指標（目的変数：例えば売り上げなど）に寄与する時系列パタンを抽出するという分析はできない。また、数値データおよびテキストデータからキー概念を抽出するためには、事前にキー概念抽出のルールを設定する必要がある。そのため、対象のデータに関する深い知識を持たないと分析を行うことができない。
本開示はこのような状況に鑑みてなされたものであり、目的指標（目的変数）に影響を与える要因（イベントのパタン）を抽出する技術を提供するものである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本開示によるデータ分析装置は、分析対象データに含まれる説明変数データについて、所定の範囲内における時系列パタンを生成する処理と、時系列パタンと分析対象データに含まれる少なくとも１つの目的変数データとの相関値を算出する処理と、相関値と共に、相関値に対応する時系列パタンを分析結果として出力する処理と、を実行する。【０００８】
本開示に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、本開示の態様は、要素及び多様な要素の組み合わせ及び以降の詳細な記述と添付される請求の範囲の様態により達成され実現される。
本明細書の記述は典型的な例示に過ぎず、本開示の請求の範囲又は適用例を如何なる意味に於いても限定するものではないことを理解する必要がある。
【発明の効果】
【０００９】
ユーザが仮説を立てることなく、目的指標に影響を与える要因（データ）を抽出できる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態による時系列データ解析システム１の概略構成例を示す図である。
【図２】本実施形態による時系列データ分析部１２３が実行する処理概要を説明するための図である。
【図３】本実施形態による目的変数テーブル１２６の例を示す図である。
【図４】本実施形態による説明変数テーブル１２７の例を示す図である。
【図５】図４の説明変数テーブル１２７の例を抽象化して得られた、抽象化データ２０２の例を示す図である。
【図６】本実施形態による時系列データ分析用パラメタ２０４の例を示す図である。
【図７】本実施形態による時系列パタンテーブル２０５の例を示す図である。
【図８】本実施形態による時系列分析結果２０７の例を示す図である。
【図９】本実施形態によるテキスト抽象化処理の例を示す図である。
【図１０】本実施形態による数値抽象化処理の例を示す図である。
【図１１】時系列データ分析部１２３が実行するデータ抽象化処理２０１の詳細を説明するためのフローチャート（例）である。
【図１２】時系列データ分析部１２３が実行する時系列パタン抽出処理２０３の詳細を説明するためのフローチャート（例）である。
【図１３】時系列データ分析部１２３が実行する相関計算処理２０６の詳細を説明するためのフローチャート（例）である。
【図１４】本実施形態による分析結果レポートの表示画面の例を示す図である。
【発明を実施するための形態】
【００１１】
本開示では、一般的な目的指標（目的変数）に寄与する、頻度以外の時系列パタンを説明変数に現れるイベントから抽出し、当該時系列パタンと目的変数との相関が算出される。このように抽出された時系列パタンと目的変数との相関を取ることにより、目的変数に影響を与えるイベントの時系列パタンを知ることができるようになる。また、本実施形態では、時系列パタンを抽出する際に、説明変数の各イベントの内容を所定の規則に従って抽象化する。これにより、説明変数の値の種類を減らして、理解しやすい時系列パタンを抽出することが可能となる。また、テキストや数値に関する事前の知識を必要とせずに時系列データを分析することができるようになる。
【００１２】
以下、添付図面を参照して本開示の実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は本開示の原理に則った具体的な実施形態と実装例を示しているが、これらは本開示の理解のためのものであり、決して本開示を限定的に解釈するために用いられるものではない。
【００１３】
本実施形態では、当業者が本開示を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本開示の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
【００１４】
更に、本実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装しても良い。
【００１５】
なお、以後の説明では「テーブル」形式によって本開示の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、ＤＢ、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「ＤＢ」、「キュー」等について単に「情報」と呼ぶことがある。
【００１６】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
【００１７】
以下では、プログラムとしての各処理部（例えば、時系列データ分析部）を主語（動作主体）として本実施形態における各処理について説明を行うが、プログラムはプロセッサ（ＣＰＵ）によって実行されることで定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行う。このため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【００１８】
＜時系列データ解析システムの構成＞
図１は、本実施形態による時系列データ解析システム１の概略構成例を示す図である。
【００１９】
図１に示すように、時系列データ解析システム１は、分析対象システム１１０と、分析用サーバ１２０と、分析用端末１３０と、を含み、これらの装置はネットワーク１０１を介して相互に接続されて構成される。図１は、ネットワーク１０１を介して各装置が接続された構成を示しているが、各装置がネットワークを介さずに直接接続されていても良い。
【００２０】
分析対象システム１１０は、分析対象となるシステムの総称であり、具体的なシステムは所属する組織や分析の目的ごとに異なる。例えば、小売・流通分野では、売り上げや在庫を管理するＰＯＳ（Point of Sales）システム、物流分野では、ＷＭＳ（Warehouse Management System）などが分析対象システム１１０となりうる。また、例えば、分野共通で使われるメールシステム、グループウェアなども分析対象になりうる。分析対象システム１１０は、システム内で発生した各種のデータを保存している。これらを分析対象データ１１１と呼ぶ。例えば、分析対象システム１１０がＰＯＳシステムであった場合、分析対象データ１１１には、いつ、何の商品が、どれだけ売れたかという情報が保存されている。本実施形態では、分析対象システム１１０の具体的な形態は限定されないが、以下では、説明の都合上、情報系システムを例としている。
【００２１】
分析用サーバ１２０は、時系列データの分析を実行するサーバであり、目的変数テーブル記憶部（以下、「記憶部」は便宜上省略する）１２６と、説明変数テーブル記憶部（以下、「記憶部」は便宜上省略する）１２７と、分析レポート記憶部（以下、「記憶部」は便宜上省略する）１２８と、プログラムとしての、データ収集部１２１と、データ整形部１２２と、時系列データ分析部１２３と、レポート表示部１２４と、パラメタ設定部１２５と、を含む。
【００２２】
目的変数テーブル１２６は、１つ以上の目的変数を格納したテーブルである。ここで、目的変数（目的指標とも言う）とは、例えば、店舗の売り上げや、サーバのＣＰＵ負荷など、その値を変動させている要因を分析したい変数（予測や分析の対象となる変数）である。目的変数は、分析単位（たとえば、店舗や日にち）ごとに数値データとして表される。目的変数テーブル１２６の詳細は図３で説明する。
【００２３】
説明変数テーブル１２７は、１つ以上の説明変数を格納したテーブルである。ここで、説明変数とは、目的変数に影響を与える可能性のある変数である。例えば、売り上げやサーバ負荷などの目的変数に対しては、来客の客層（年齢、性別など）やサーバで動いているプロセス名などがそれぞれ説明変数になる。説明変数テーブル１２７の詳細は図４で説明する。
【００２４】
分析レポート１２８は、分析用サーバ１２０が分析用対象データに対して分析を行った結果を格納している。例えば、分析レポート１２８は、目的指標（売り上げなど）に寄与する時系列パタンなどを含む。また、分析レポート１２８は、レポート表示部１２４を介して分析用端末１３０の表示画面（図示せず）に表示される。
【００２５】
データ収集部１２１は、分析対象システム１１０に接続して、分析対象データ１１１を取得する機能を備える。取得するデータの格納場所は、分析を実行する者（分析者（単にユーザと言うこともある））があらかじめ指定しておく。また、データを取得するタイミングも、分析者があらかじめ指定しておく。一日に一回など定期的に取得しても良いし、分析者が取得命令を実行したタイミングで取得してもよい。分析システムが保持するデータは、一般にさまざまな形式をしている。例えば、ＣＳＶ（Comma Separated Values）ファイルや、データベースとして保持されていても良い。データ収集部１２１は、それらのデータを収集した後、統一的な形式（例えば、リレーショナルデータベースの形式）に変換する。
【００２６】
データ整形部１２２は、データ収集部１２１が取得した分析対象データ１１１に対して、外れ値の除去や、欠損のあるデータの削除などの機能を提供する。また、分析者が分析対象から説明変数テーブル１２７、目的変数テーブル１２６を生成するための機能を提供する。
【００２７】
時系列データ分析部１２３は、例えば、目的変数テーブル１２６と説明変数テーブル１２７とを読み込み、目的変数に寄与する時系列パタンを抽出する処理（本システムにおいて中枢となる処理）を実行する。時系列データ分析部１２３の詳細は図２で説明する。
レポート表示部１２４は、時系列データ分析部１２３が生成した分析レポート１２８を分析用端末１３０に表示するための機能を備える。
【００２８】
パラメタ設定部１２５は、分析用サーバ１２０のパラメタを分析者が設定するための機能を備える。図で説明する時系列分析パラメタのほか、データ収集部１２１のデータ取得のタイミングなどが設定対象のパラメタである。
【００２９】
分析用端末１３０は、分析者が分析用サーバ１２０にアクセスするための端末である。分析者は、分析端末を利用し、分析用サーバ１２０のパラメタの設定や、分析レポート１２８の閲覧などを行う。
【００３０】
なお、ネットワークに接続された、これらの各装置は、一般的な計算機におって構成され、例えば、少なくともＣＰＵ（Central Processing Unit）、ハードディスクドライブなどの補助記憶装置、ＲＯＭ（Read Only Memory）などの主記憶装置、キーボードやマウスといった入力装置と接続されるＩ（Input）／Ｏ（Output）インターフェース、ローカルエリアネットおよびインターネットに接続するためのネットワークインターフェースなどを備える。
【００３１】
分析対象データを分析するための各種プログラム（データ収集部１２１、データ整形部１２２、時系列データ分析部１２３、レポート表示部１２４、パラメタ設定部１２５）、目的変数テーブル１２６、説明変数テーブル１２７、及び分析レポート１２８は、例えば補助記憶装置に格納するようにしても良い。
【００３２】
＜時系列データ分析部の処理概要＞
図２は、本実施形態による、プログラムとしての時系列データ分析部１２３が実行する処理概要を説明するための図である。
【００３３】
時系列データ分析部１２３は、一例として、データ抽象化処理２０１と、抽象化された説明変数を記憶装置に格納する処理（抽象化データ２０２）と、時系列データ分析用パラメタ２０４を読み込み、抽象化された説明変数の中から時系列パタンを抽出する時系列パタン抽出処理２０３と、抽出した時系列パタンを時系列パタンテーブル２０５に格納する処理と、目的変数テーブル１２６から分析対象の目的変数を読み込み、時系列パタンとの相関を計算する相関計算処理２０６と、得られた相関値を時系列分析結果２０７に格納する処理と、レポートを生成するレポート生成処理２０８と、を実行する。
【００３４】
データ抽象化処理２０１において、時系列データ分析部１２３は、説明変数テーブル１２７を読み込み、抽象化データ２０２を生成する。説明変数テーブル１２７は、数値及び／又はテキストデータからなる時系列データが格納されている。一般に、数値データは実数値で表される。記録されている値の範囲が限定的（例えば、０以上１以下）であっても、値の変動の幅が小さい（例えば、0.0001単位で変動する）場合、取り得る値の種類は膨大になりうる。そのような数値列に対して時系列パタンを抽出する場合、数値を記号化する必要がある。記号化せずに、時系列パタンを抽出すると、時系列パタンの種類が膨大になってしまい、結果を分析者が解釈しにくいからである。なお、記号化には、数値を一定間隔で分割する方法や数値例の隠れ状態を推定する方法などがある。また、説明変数がテキストデータの場合も値の種類が膨大になりうる。例えば、サーバが出力するログのメッセージなどは、ＩＰアドレスなど変動するパラメタが多いため、メッセージの種類が多くなる。数値の場合と同様、テキスト列から時系列パタンを抽出するためには、複数のテキストをまとめて記号化する必要がある。本実施形態では、後述するように、テキストの類似性に基づいてクラスタリングすることにより、記号化を行う。なお、数値、テキストを記号に変換する処理をデータ抽象化と呼ぶ。データ抽象化処理２０１の詳細については、図１１で説明する。
【００３５】
抽象化データ２０２は、データ抽象化処理２０１の結果である。抽象化されたデータは、例えばラベルで表現される。抽象化データ２０２の詳細については図５で説明する。
【００３６】
時系列パタン抽出処理２０３において、時系列データ分析部１２３は、抽象化データ２０２から目的変数に寄与する可能性のある時系列パタンの候補を抽出する。この段階では、あくまで候補となる時系列パタンが抽出される。時系列パタンが実際に目的変数に寄与するかどうかは相関計算部２０６が相関値を計算することで判断される。時系列パタン抽出処理２０３の詳細については、図１２で説明する。
【００３７】
時系列分析用パラメタ２０４は、時系列パタン抽出処理２０３において抽象化データ２０２から時系列パタンを抽出するのに必要な情報を保持する。時系列分析用パラメタ２０４は、例えば、分析者がパラメタ設定部１２５を介してあらかじめ設定してもよいし、時系列パタン抽出処理２０３を実行する際に時系列データ解析システム１が分析者に入力を要求するようにしても良い。時系列分析用パラメタ２０４の詳細については、図６で説明する。
時系列パタンテーブル２０５は、目的変数に寄与する時系列パタンの候補を保持する。時系列パタンテーブル２０５の詳細は、図９で説明する。
【００３８】
相関計算処理２０６において、時系列データ分析部１２３は、目的変数テーブル１２６と時系列パタンテーブル２０５から、目的変数と時系列パタンの間の相関値を計算する。時系列データ分析部１２３は、目的変数および時系列パタンの組み合わせが複数存在する場合、全ての組み合わせについて、相関値を計算する。相関値を計算することで、各時系列パタンが目的変数に与える影響を定量化することができる。相関計算処理２０６の詳細については、図１３で説明する。
【００３９】
時系列分析結果２０７は、相関計算処理２０６によって得られた目的指標と時系列パタンとの相関値を保持する。時系列分析結果２０７の詳細については、図８で説明する。
【００４０】
レポート生成処理２０８において、時系列データ分析部１２３は、時系列分析結果２０７を読み込み、分析レポート１２８を生成する。具体的には、時系列データ分析部１２３は、時系列分析結果２０７に基づいて、目的変数に対してある閾値（例えば、０．５）以上の相関値の絶対値を持つ時系列イベントのみを抽出するなどの処理を行う。また、時系列データ分析部１２３は、時系列パタンの発生頻度の遷移を表すグラフや目的変数に対して相関の高い時系列イベントのリストなどを生成する。生成された分析レポート１２８は、レポート表示部１２４によって、分析用端末１３０の画面に表示される。画面の詳細については、図１４で説明する。
【００４１】
＜目的変数テーブルの例＞
図３は、本実施形態による目的変数テーブル１２６の例を示す図である。前述したとおり、本開示は分析対象システム１１０の種類によらず適用可能であるが、以下では説明のために、情報系システム（例えば、メールシステムやグループウェア）を分析対象システム１１０として想定する。当該目的変数テーブル１２６は、上述したように、分析対象データ１１１から抽出される、例えば、店舗の売り上げやサーバのＣＰＵ負荷など、結果としての値を変動させている要因を分析したい変数（予測や分析の対象となる変数）を保持する。分析対象データ１１１は、情報系システムが出力するログを想定している。例えば、情報系システムにおいて、分析対象データ１１１は、レコードＩＤ、時刻、ＣＰＵ使用率、残メモリ、プロセス、メッセージなどを含んでいる。ここでは、ＣＰＵ負荷の増加に影響を与える要素を、残メモリ、プロセス、及びメッセージの時系列パタンとして発見することを分析の目的とする。
目的変数テーブル１２６は、セッションＩＤ３０１と、目的変数カラム３０２と、を構成項目として含む。
【００４２】
セッションＩＤ３０１は、目的変数テーブル１２６のレコードを一意に特定・識別するための識別情報である。ここで、セッションとは、分析を行いたい単位をいう。セッションは、ある時間間隔（例えば、３０分）で定義しても良いし、分析対象データ１１１に含まれるカラムを基に定めても良い（例えば、ホスト名が同じデータを同じセッションとするなど）。
【００４３】
目的変数カラム３０２は、目的変数の値を格納したカラムであり、１つ以上のカラムから構成される。目的変数は、分析対象システム１１０および分析の目的ごとに異なる。例えば、店舗の売り上げを増加する要因を知りたい場合は、店舗ごとの売り上げが目的変数になる。図３の例では、目的変数カラム３０２としてＣＰＵ平均使用率、ＣＰＵ最大使用率を指定している。
【００４４】
目的変数テーブル１２６には、セッションごとに目的変数の値が記録されている。図３の例では、ある３０分間のＣＰＵ平均使用率は５２％であり、次の３０分間は１０％であったことを表している。
【００４５】
＜説明変数テーブルの例＞
図４は、本実施形態による説明変数テーブル１２７の例を示す図である。説明変数テーブル１２７は、分析対象データ１１１から抽出される、目的変数に影響を与える可能性のある変数を保持する。
説明変数テーブル１２７は、説明変数レコードＩＤ４０１と、セッションＩＤ４０２と、時刻４０３と、説明変数カラム４０４と、を構成項目として含む。
説明変数レコードＩＤ４０１は、説明変数テーブル１２７のレコードを一意に特定する識別子である。
【００４６】
セッションＩＤ４０２は、目的変数テーブル１２６のセッションＩＤ３０１に対応する情報である。ただし、目的変数テーブル１２６においては、セッションＩＤ３０１がユニークなキーとなるが、説明変数テーブル１２７においては、ユニークなキーとは限らず、同一のセッションＩＤを持つ異なるレコードが複数存在しても良い。この例では、セッションは３０分単位なので、ある３０分で発生したイベントは全て同じセッションＩＤを持っている。
時刻４０３は、イベントが発生した時刻を表している。
【００４７】
説明変数カラム４０４は、説明変数の値を格納したカラムであり、１つ以上のカラムから構成される。図４の例では、残メモリ、プロセス、及びメッセージが説明変数として利用されている。
【００４８】
従来の時系列パタン抽出方法は、説明変数テーブル１２７内で頻出する時系列パタンを抽出するという問題設定である。それに対して、本実施形態では、目的変数テーブル１２６の値に影響を与える時系列パタンを説明変数テーブル１２７から抽出するという問題設定をとることで、従来手法では扱えなかった分析を可能にする。
【００４９】
＜抽象化データの例＞
図５は、図４の説明変数テーブル１２７の例を抽象化して得られた、抽象化データ２０２の例を示す図である。抽象化データ２０２は、例えば、抽象化説明変数テーブル５０１と、イベントテーブル５０２と、で構成される。もちろん、他の情報を含んでいても良い。
【００５０】
抽象化説明変数テーブル５０１は、説明変数テーブル１２７の説明変数カラム４０３が抽象化されたデータを保持する。抽象化説明変数テーブル５０１は、説明変数レコードＩＤ５０１１と、セッションＩＤ５０１２と、時刻５０１３と、抽象化説明変数カラム５０１４と、を構成項目として含む。
【００５１】
ここで、説明変数レコードＩＤ５０１１、セッションＩＤ５０１２、及び時刻５０１３は、説明変数テーブル１２７（図４参照）における説明変数レコード４０１、セッションＩＤ４０２、及び時刻４０３と同一である。
【００５２】
抽象化説明変数カラム５０１４は、説明変数テーブル１２７の説明変数カラム４０４を抽象化した値を保持する。データ抽象化処理２０１において、説明変数カラム４０４の各変数の値が全てイベントに変換される。当該イベントは、例えばラベルで表現することが可能である。図５の例では、「残メモリ」が抽象化されて「イベントＡ」として格納され、「プロセス」が抽象化され「イベントＢ」として格納され、「メッセージ」が抽象化され「イベントＣ」として格納されている。説明変数テーブル１２７において数値やテキストだった値は、抽象化説明変数テーブル５０１では全てラベルで表される。図５の例では、レコードＩＤ＝１におけるイベントＡの値は「ａ１」となっている。「ａ１」がどのような意味を持つかは、イベントテーブル５０２で定義される。なお、データ抽象化処理の詳細は図１１で説明する。
【００５３】
イベントテーブル５０２は、データ抽象化処理２０１によって生成したイベントに関する情報を保持する。イベントテーブル５０２は、イベントＩＤ５０２１と、生成元カラム５０２２と、データ種別５０２３と、イベント表現５０２４と、を構成項目として含む。
【００５４】
イベントＩＤ５０２１は、イベントを一意に特定・識別するための識別情報である。抽象化説明変数テーブル５０１の抽象化説明変数カラム５０１４の値（抽象化された値）がイベントＩＤ５０２１に用いられる。
【００５５】
生成元カラム５０２２は、説明変数テーブル１２７内で、イベントの生成元になったカラムを示す。図５の例では、イベントＩＤ５０２１が「a1」のイベントが説明変数テーブル１２７の「残メモリ」から生成されたことを示している。
データ種別５０２３は、抽象化前のデータ種別を示している。データ種別には、例えば、数値とテキストが含まれる。
【００５６】
イベント表現５０２４は、抽象化前のデータとの対応を示す。例えば、「ａ１」というイベントは、「残メモリ」が「５３０００から５４０００」の範囲に入っていることを示している。一方、抽象化処理を行ったとしても、元のデータが変化しない場合もある。その場合には、元のデータの値をそのままイベント表現５０２４として用いても良い。また、テキストが抽象化された場合は、テキスト抽象化処理で生成された縮約表現がイベント表現５０２４として用いられる。
【００５７】
＜時系列データ分析用パラメタの例＞
図６は、本実施形態による時系列データ分析用パラメタ２０４の例を示す図である。時系列データ分析用パラメタ２０４は、例えば、カラムＩＤ６０１と、パタン種別６０２と、最大要素数６０３と、ウィンドウ幅（個数）６０４と、ウィンドウ幅（時間）６０５と、最小頻度６０６と、を構成項目として含む。
カラムＩＤ６０１は、時系列パタンを抽出する対象となる説明変数のカラムを示す情報である。
【００５８】
パタン種別６０２は、時系列パタンの種類を示す情報である。時系列パタンは、イベントの時間的特徴や順序的特徴を表現するものであり、表現方法は複数種類考えられる。図６では、例えば、n-gram、アソシエーション、及びシーケンスという３種類のパタンを定義している。以下、それぞれのパタン種類について説明する。
【００５９】
（i）n-gram
n-gramは、時間的に連続して発生するイベントのリストを表す。例えば、「a1=>a4」は、イベントa1の直後にイベントa4が発生したことを意味する。これは、要素数２のn-gram（すなわち2-gram）である。要素数3のn-gram（3-gram）は、「a1=>a4=>a3」と表す。N-gramは、イベント間の遷移を表現する特徴量である。
【００６０】
（ii）アソシエーション
アソシエーションは、ある時間間隔内で複数のイベントが発生している（共起している）ことを表す特徴量をいう。アソシエーションでは、N-gramとは異なり、発生した順序は考慮されず、要素数ごとに特徴量が定義される。例えば、「{a1、a4}」は、a1とa4がセッション内で共起したことを意味する。アソシエーションは、イベント間の共起性を表現する特徴量である。
【００６１】
（iii）シーケンス
シーケンスは、ある時間間隔内で複数のイベントがある順序で発生していることを表す特徴量をいう。シーケンスでは、アソシエーションとは異なり、発生した順序が考慮され、またn-gramとは異なり、イベントは必ずしも連続で発生している必要はない。例えば、「a1>a3」は、セッション内で、a1とa3がこの順番で発生したことを意味する。ただし、a1とa3の間に別のイベントが発生しても良い。シーケンスはイベント間の順序性を表現する特徴量である。
【００６２】
最大要素数６０３は、抽出対象の時系列パタンの要素数（イベント数）の最大値を示す。一般に、時系列パタンはイベントの組み合わせで生成されるので、要素数（イベント数）が多くなると時系列パタンの種類も多くなる。要素数に最大値を設定することで、時系列パタンの種類を抑えることができる。
【００６３】
ウィンドウ幅（個数）６０４は、時系列パタンを抽出する際の元となるイベント（レコード）の個数幅を定めるものである。ある複数のイベントがウィンドウ幅６０４より少ないイベント数内で発生している場合のみ、時系列パタンとして抽出する。時系列パタンを抽出する元データ（イベント）の個数幅を限定することにより、関連性の強い特徴量を抽出することが可能となる。
【００６４】
ウィンドウ幅（時間）６０５は、時系列パタンを抽出する際の時間幅を定めるものである。ある複数のイベントがウィンドウ幅６０５より小さい間隔で発生している場合のみ、時系列パタンとして抽出する。一般に時間が大きく離れたイベント間は関連が小さいと考えられる。ウィンドウ幅６０４を設定することで、時間的に大きく離れたイベント間で特徴量を生成することを回避できる。
【００６５】
最小頻度６０６は、対象となる時系列パタンを含むセッション数の最小値を示している。セッション数そのもので表してもよいし、全体のセッションに占める割合で表してもよい。時系列パタンが出現するセッション数が多いことは、必ずしも目的変数への相関が高いことを意味しない。しかし、出現するセッション数が少なすぎる場合は、相関を計算するのに十分なサンプル量が得られず、計算された相関値の信頼性が弱くなる。そのため、ある程度以上のサンプルが得られることを保障する必要がある。最小頻度６０６を設定することで、サンプル数が少ない時系列パタンは相関係数計算の対象から除外することができる。また、最小頻度６０６を設定することで、時系列パタンを効率的に探索するアルゴリズム（apriori、apioriAllなど）を利用できるメリットもある。
【００６６】
＜時系列パタンテーブルの例＞
図７は、本実施形態による時系列パタンテーブル２０５の例を示す図である。時系列パタンテーブル２０５は、例えば、パタンＩＤ７０１と、時系列パタン種別７０２と、時系列パタン７０３と、出現セッションリスト７０４と、を構成項目として含む。
パタンＩＤ７０１は、時系列パタンを一意に特定・識別するための識別情報である。
【００６７】
時系列パタン種別７０２は、対象となる時系列パタンの種別であり、図６の時系列パタン種別６０２と同一の情報である。例えば、n-gram、アソシエーション、シーケンスなどの情報が保持される。
【００６８】
時系列パタン７０３は、時系列パタン抽出処理２０３によって抽出した時系列パタンの具体的な値を示す。図７のパタンＩＤ＝１のレコードでは、一例として、2-gramを表す「a1=>a2」が時系列パタンとして抽出されたことが示されている。
【００６９】
出現セッションリスト７０４は、対象となる時系列パタンが出現したセッションＩＤとその出現回数のタプル（「出現セッションＩＤ」、「出現回数」）をリスト化したものである。図７のパタンＩＤ＝１のレコードでは、セッションＩＤ＝１で４回、セッションＩＤ＝２で３回出現したことが示されている。図７では、出現回数が０のセッションは表示していないが、全てのセッションに対する時系列パタンの出現回数が保持されている。なお、相関計算処理２０６では、後述するように、出現セッションリスト７０４を基に、目的変数と時系列パタンの相関値が演算される。
【００７０】
＜時系列分析結果の例＞
図８は、本実施形態による時系列分析結果２０７の例を示す図である。時系列分析結果２０７は、パタンＩＤ８０１と、相関値カラム８０２と、を構成項目として含む。
【００７１】
パタンＩＤ８０１は、時系列パタン抽出処理によって抽出された時系列パタンを一意に特定・識別する識別情報であり、図７の時系列パタンテーブル２０５のパタンＩＤ７０１に対応するものである。
【００７２】
相関値カラム８０２は、パタンＩＤで表される時系列パタンの発生回数と目的変数の間の相関値を示している。相関値カラム８０２は、目的変数ごとに定義される。図８の例では、パタンＩＤ＝１の時系列パタンの出現回数と目的変数１（例えば、平均使用率）の相関値が０．４２であることが示されている。相関値の計算方法の詳細については図１３で説明する。
【００７３】
＜テキスト抽象化処理＞
図９は、本実施形態によるテキスト抽象化処理の例を示す図である。テキスト抽象化処理は、類似するテキスト集合をクラスタリングしてひとつのラベルにするために実行される。テキスト抽象化処理は、例えば、（i）クラスタリング処理、及び（ii）縮約表現生成処理の２段階で行われる。以下、これらについて説明する。
【００７４】
（i）クラスタリング処理
テキストをクラスタリングするためには、テキスト間に類似度または距離関数を設定する必要がある。テキスト間の距離関数として、例えば、編集距離と呼ばれる関数が知られている。編集距離は、1文字の挿入・削除・置換によって、一方の文字列をもう一方の文字列に変形するのに必要な手順の最小回数として定義される。下記文献に動的プログラミングを使って、効率よく編集距離を計算する手法が開示されている。
【００７５】
E. W. Myers: "An O(ND) difference algorithm and its variations"、 Algorithmixa、 1、pp.251-266 986.
【００７６】
テキスト間の距離関数を利用すればテキストをクラスタリングすることができる。そして、例えば、ward法などの公知のクラスタリングアルゴリズムを用いてクラスタリングすることができる。
【００７７】
（ii）縮約表現生成処理
縮約表現生成処理では、各クラスタに対してユニークなラベルを割り当てることにより、テキストをラベルに変換する。時系列パタンを抽出するだけであれば、ラベルのみあればよいが、分析者が解釈しやすいように縮約表現を生成する。縮約表現は、次の方法で生成される。まず、クラスタに属するテキスト集合から共通部分文字列を抽出する。次に、共通部分文字列以外の部分を記号（例えば、「＊」）で置換する。
【００７８】
図９では、テキスト集合９０１からクラスタリング処理をすることにより、各クラスタに属するテキストデータ群９０２が得られる。そして、クラスタ毎（クラスタＩＤ＝１、クラスタＩＤ＝２のそれぞれ）に共通部分が抽出される。例えば、クラスタＩＤ＝１の場合、「Router interface down」が共通部分となる。また、クラスタＩＤ＝２の場合、「Authentication fail 」が共通部分となる。
【００７９】
そして、各クラスタに対して縮約表現が生成される。例えば、クラスタＩＤ＝１の場合、「Router ＊ interface ＊ down」が縮約表現となる。また、クラスタＩＤ＝２の場合、「Authentication ＊ fail ＊」が縮約表現となる。
【００８０】
＜数値抽象化処理＞
図１０は、本実施形態による数値抽象化処理の例を示す図である。数値抽象化処理は、連続する数値を離散的なラベルとするために実行される。数値抽象化処理の方法としては複数考えられるが、ここでは、例として（i）量子化による方法と（ii）隠れ状態推定による方法についてそれぞれ説明する。例えば、（i）及び（ii）の何れかの方法、または両方を用いることにより、数値データの列を離散的なラベルの列に変換することができる。
【００８１】
（i）量子化による方法
単純な方法として、説明変数の最小値と最大値から決まる値域をあらかじめ定めた分割数（例えば、１０）で等分割する方法がある。ただし、この方法では、データ分布に偏りがあると、分割した領域に入る数値の数も偏りができてしまう。そこで、データ分布の密度が大きいところを細かく分割し、密度が小さいところを粗く分割することにより、なるべく均等にデータを分けるようにする。なお、データ分布密度に応じて分割を行う手法として、以下の文献に示されるGrid-base clusteringが知られている。
【００８２】
R. Agrawal, J. Gehrke, D. Gunopulus, and P. Raghavan, “Automatic Subspace Clustering of High Dimensional Data for Data Mining Applications,” Proc. ACM/SIGMOD Int’l Conf. Management of Data, pp. 94-105, 1998.
量子化による方法を用いて、例えば、図５におけるイベント表現の範囲を決めることができる。
【００８３】
（ii）潜在変数の推定による方法
観測されているデータ列の背後に潜在変数の存在を仮定して、観測データ列から潜在変数を推定する手法が知られている。例えば、隠れマルコフモデルなどを利用することができる。隠れマルコフモデルは、潜在変数の遷移確率Aij= Pr(zj|zi)、初期確率πi=Pr(z1)、出力確率Pr(xi|zi)を観測列{xi}から推定する。推定アルゴリズムとしてBaum-Welchアルゴリズムが知られている。また、潜在変数を推定するアルゴリズムとしてVitabiアルゴリズムが知られている。これらのアルゴリズムを適用することで、観測列{xi}(図１０の例では残メモリに相当)から、潜在変数の列を推定することができる。隠れマルコフモデルを利用するためには、あらかじめ、状態数を決めておく必要がある。状態数をあらかじめ指定しない手法としては、以下の文献に示されるノンパラメトリックベイズなどが知られており、これらのアルゴリズムを適用しても良い。
【００８４】
Y. W. The, M. I. Jordan、 M. J. Beal, and D. M. Blei. “Hierarchical Dirichlet processes.” Journal of the American Statistical Association, 101(476):1566-1581, 2006.
【００８５】
＜データ抽象化処理＞
図１１は、時系列データ分析部１２３が実行するデータ抽象化処理２０１の詳細を説明するためのフローチャート（例）である。なお、上述したように、時系列データ分析部１２３は例えばプログラムで実現されるため、以下の説明では動作主体をプロセッサ（ＣＰＵ）と読み替えることも可能である。データ抽象化処理２０１は、説明変数テーブル１２７を読み込んだタイミングで開始される。
【００８６】
（i）ステップ１１０１
時系列データ分析部１２３は、説明変数テーブル１２７の説明変数カラム４０４のうち、１つのカラムを選択する。当該ステップを最初に行う場合は、説明変数カラム４０４のうち任意のカラムを選択することが可能である。当該ステップの実行が２回目以降である場合には、まだ選択されていないカラムが選択される。カラムを選択すると、処理はステップ１１０２に進む。
【００８７】
（ii）ステップ１１０２
時系列データ分析部１２３は、ステップ１１０１で選択したカラムのデータ種別５０２３を判定する。データ種別５０２３は、数値データ、テキストデータなどがある。データ判別の方法としては、例えば、手動で行う方法と自動で行う方法がある。
【００８８】
手動で行う場合、分析者は、各カラムに対して「数値データ」か「テキストデータ」のラベルをあらかじめ判断し、分析対象データ１１１と共に保存しておく。そして、時系列データ分析部１２３は分析対象データ１１１と共に保存されたラベルを参照し、当該カラムが「数値データ」か「テキストデータ」か判別する。
【００８９】
自動で行う場合、時系列データ分析部１２３は、当該カラムに含まれる値を走査し、文字列の種類から判別する。カラムの値に数値（０から９）以外の文字列が含まれる場合は、テキストデータと判断する。全てのデータが数値データから構成される場合は、データの分布に応じて判断する。これは、数値からなるデータでもＩＤ情報のように、テキストデータとして判別したいケースを考慮している。例えば「００１」「００２」のようなＩＤ情報は、数値の大きさに意味を持たないものである。それらは名義尺度と呼ばれる。一方、温度（１０．３、１０．５）など数値の大きさに意味を持つものは比例尺度と呼ばれる。文字列の種類だけでは、名義尺度と比例尺度を区別できないが、データ分布の違いを利用して区別することができる。例えば、比例尺度のデータについては正規分布に近い分布を取り、名義尺度は一様分布に近い分布を取るなどの特徴を利用することにより、両者を区別することができる。データ種別５０３を判別した後、処理はステップ１１０３に進む。
【００９０】
（iii）ステップ１１０３
時系列データ分析部１２３は、選択したカラムに対して抽象化処理を行うかどうかを判断する。前述したように、抽象化処理の目的は、説明変数の値の種類を減らして、理解しやすい時系列パタンを抽出することである。元の説明変数の値の種類が多くない場合は、抽象化処理を行わなくても良い（処理が煩雑にならない）。判断の基準として、例えば、説明変数の値のユニーク数（カラムの値の種類数）に上限値を設定し、選択したカラムに含まれる値のユニーク数が上限値を下回っている場合は、抽象化処理を行わないと判断する。判断した後、処理はステップ１１０４に進む。
【００９１】
（iv）ステップ１１０４
時系列データ分析部１２３は、ステップ１１０３の結果に基づいて抽象化処理を行うか否か決定する。抽象化処理を行うと決定した場合（ステップ１１０４でＹｅｓの場合）には、処理はステップ１１０５に進む。行わない場合（ステップ１１０４でＮｏの場合）は、処理はステップ１１０７に進む。
【００９２】
（v）ステップ１１０５
時系列データ分析部１２３は、抽象化に使うパラメタを設定する。テキスト抽象化の場合は、クラスタリングに使う閾値などを設定する。数値抽象化の場合は、潜在変数の要素数などをパラメタとして設定する。例えば、分析者に当該パラメタを入力するように促す。そして、分析者がパラメタを入力したら、時系列データ分析部１２３は、それらを閾値や要素数などとして設定する。また、例えば、分析者が分析を開始する前に予め当該パラメタを入力していた場合には、時系列データ分析部１２３はそれらを読み込んで閾値や要素数などとして設定する。当該パラメタが設定された後、処理はステップ１１０６に進む。
【００９３】
（vi）ステップ１１０６
時系列データ分析部１２３は、カラムの値の抽象化処理を行う。抽象化処理は、カラムが数値データかテキストデータかで分けて行われる。数値データの抽象化処理の具体的内容は、図１０で説明した通りである。また、テキストデータの抽象化処理の具体的内容は、図９で説明した通りである。抽象化処理が行われた後、処理はステップ１１０７に進む。
【００９４】
（vii）ステップ１１０７
時系列データ分析部１２３は、現在の抽象化したカラムを抽象化説明変数テーブル５０１に出力する。その後、処理はステップ１１０８に進む。
【００９５】
（viii）ステップ１１０８
時系列データ分析部１２３は、説明変数テーブル１２７に含まれる説明変数カラム４０３のうち、全てのカラムについて抽象化処理を実行したか判定する。全てのカラムが抽象化処理されている場合（ステップ１１０８でＹｅｓの場合）、処理は終了する。未処理のカラムが存在する場合（ステップ１１０８でＮｏの場合）、処理はステップ１１０１に戻る。
【００９６】
＜時系列パタン抽出処理＞
図１２は、時系列データ分析部１２３が実行する時系列パタン抽出処理２０３の詳細を説明するためのフローチャート（例）である。なお、上述したように、時系列データ分析部１２３は例えばプログラムで実現されるため、以下の説明では動作主体をプロセッサ（ＣＰＵ）と読み替えることも可能である。時系列パタン抽出処理２０３は、抽象化データ２０２を読み込んだタイミングで開始される。
【００９７】
（i）ステップ１２０１
時系列データ分析部１２３は、時系列分析用パラメタ２０４の１レコードを読み込む。読み込んだ後ステップ１２０２に進む。
【００９８】
（ii）ステップ１２０２
時系列データ分析部１２３は、ステップ１２０１で読み込んだレコードのカラムＩＤに基づいて、抽象化説明変数テーブル５０１の抽象化説明変数カラム４０３を読み込む。例えば、図６の１レコード目は、カラムＩＤが「残メモリ」であるので、イベントテーブル５０２が確認され、生成元カラム「残メモリ」に対応するイベントＩＤが取得される。イベントＩＤが「ａ１，ａ２，・・」であるので、抽象化説明変数テーブル５０１の「イベントＡ」のカラムが選択され、当該カラムの各値が読み込まれることになる。読み込んだ後ステップ１２０３に進む。
【００９９】
（iii）ステップ１２０３
時系列データ分析部１２３は、ステップ１２０１で読み込んだ時系列データ分析用パラメタに基づいて、ステップ１２０２で読み込んだ抽象化説明変数カラムのデータから時時系列パタンを抽出する。時系列パタンの種別ごとに抽出方法を下記で説明する。
【０１００】
（iii-1）時系列パタン種別６０２がN-gramのとき
要素数ｋを２から最大要素数６０３まで変化させ下記の処理を行う。
ステップ１：セッションＩＤごとにイベント列が読み込まれる。図５のイベントＡの例では、（a1,a1,a2,a2,a1）となる。
ステップ２：k-gramが生成される。当該例では、(a1=>a1, a1=>a2, a2=>a2, a2=>a1)となる。
【０１０１】
ステップ３：はじめの要素と最後の要素の発生時刻の差がウィンドウ幅６０５以内の場合は、k-gramが登録される。ウィンドウ幅６０５より大きい場合は登録されない。当該例では、説明数レコードＩＤ＝１（a1）と説明変数レコードＩＤ＝５（a1）との時間差が１０分（ウィンドウ幅６０５）を超えるので、説明変数ＩＤ＝５については登録されない。よって、この場合、（a1=>a1, a1=>a2, a2=>a2）のみが登録される。
【０１０２】
ステップ４：全てのセッションＩＤ（セッション１，セッション２，・・）に対してステップ１〜４が行われ、k-gramの出現した回数がカウントされる。
ステップ５：最小頻度６０６を超えるn-gramのみが出力される。
【０１０３】
（iii-2）アソシエーションの場合
Aprioriアルゴリズムを応用した時系列パタンの抽出について説明する。Aprioriアルゴリズムの詳細は、例えば、文献「R. Agrawal and R. Srikant, “Fast algorithms for mining association rules in large databases,” Proceedings of the 20th International Conference on Very Large Data Bases, VLDB, pages 487-499, Santiago, Chile, September 1994.」に示されている。
【０１０４】
初期化：要素数１の時系列パタンのうち、最小頻度６０６を越えるものを全て列挙し、L_1とする(例：L_1=<{a1}、{a2}、{a3}>)。そして、k=1として要素数が最大要素数６０３に達するか、L_kが空集合になるまで下記ステップ１〜３を繰り返される。
【０１０５】
ステップ１：要素数kの時系列パタンのうち、最小頻度６０６を越えるものが全て列挙され、L_1とされる。(例：L_1=<{a1}、{a2}、{a3}>)
【０１０６】
ステップ２：L_kを組み合わせて要素数k+1の時系列パタン候補が生成され、C_k+1とされる（C_2={a1、a2}、{a2、a3}、{a3、a1}）
【０１０７】
ステップ３：C_k+1の各要素が出現するセッションを検索する。このとき、出現するかどうかは、ウィンドウ幅６０４を考慮して判断される。例えば、a1とa2がセッションに含まれていても、a1とa2との間がウィンドウ幅（個数）６０４を超える場合は、{a1、a2}はそのセッションで出現しないと判断される。出現したセッション数が最小頻度６０６を超えるものだけ残され、L_k+1とされる（L_2={a1、a2}、{a2、a3}）
【０１０８】
（iii-3）シーケンスの場合
AprioriAllアルゴリズムを応用した時系列パタンの抽出について説明する。AprioriAllアルゴリズムの詳細は、例えば、文献「R.Agrawal and R.Srikant、 "Mining Sequential Patterns," Proc. of The 11th Int'l Conf. on Data Engineering, pp.3-14, 1995.」に示されている。
【０１０９】
初期化：要素数１の時系列パタンのうち、出現セッション数が最小頻度６０６を越えるものを全て列挙しL_1とする（例：L_1=<a1、a2、 a3>）。そして、k=1として要素数が最大要素数６０３に達するか、L_kが空集合になるまでステップ１及び２を繰り返す。
【０１１０】
ステップ１：L_kを組み合わせて要素数k+1の時系列パタン候補が生成され、C_k+1とされる。ここで、時系列パタン候補は、各要素の部分系列が全て、L_kに含まれているという条件を満たす（例：C_2= a1>a2、 a2>a3 、 a3>a1）。
【０１１１】
ステップ２：C_k+1の各要素がセッションごとに検索され、時系列パタンがセッションに含まれるか判定される。判定はアソシエーション同様、ウィンドウ幅（個数）６０４及びウィンドウ幅（時間）６０５を考慮して行われる。そして、出現頻度が算出され、最小頻度６０６を超える時系列パタンだけが残され、L_k+1とされる（L_2=a1>a2、a2>a3）
上記の方法でイベントパタンが抽出した後、処理はステップ１２０４に進む。
【０１１２】
（iv）ステップ１２０４
時系列データ分析部１２３は、ステップ１２０３において抽出された時系列パタンを整理する。時系列パタンの整理では、包含関係にある時系列パタンの削除などを行う。例えば、n-gramの時系列パタン「a=>b」が出現している箇所では、必ず「a=>b=>c」が出現している場合、時系列パタンとしてより要素数が大きい「a=>b=>ｃ」を採用するなどの処理を行う。これにより、分析者が確認すべき時系列パタンの数を減らすことができる。時系列パタンを整理した後、処理はステップ１２０５に進む。
【０１１３】
（v）ステップ１２０５
時系列データ分析部１２３は、ステップ１２０４で整理した時系列パタンについて、セッションごとの出現頻度を算出する。なお、計算量の削減のため、時系列パタンを抽出する処理の中で出現頻度を算出しても良い。出現頻度を算出した後、処理はステップ１２０６に進む。
【０１１４】
（vi）ステップ１２０６
時系列データ分析部１２３は、ステップ１２０５で算出した出現頻度を時系列パタンテーブル２０５に書き込む。出現頻度を時系列パタンテーブル２０５に書き込んだ後、処理はステップ１２０７に進む。
【０１１５】
（vii）ステップ１２０７
時系列データ分析部１２３は、時系列分析用パラメタ２０４の全てのレコードについて時系列パタン抽出処理を実行したか判定する。全てのレコードについて処理が完了している場合（ステップ１２０７でＹｅｓの場合）、処理は終了する。未処理のレコードが残っている場合（ステップ１２０７でＮｏの場合）、処理はステップ１２０１に戻る。
【０１１６】
＜相関計算処理＞
図１３は、時系列データ分析部１２３が実行する相関計算処理２０６の詳細を説明するためのフローチャート（例）である。なお、上述したように、時系列データ分析部１２３は例えばプログラムで実現されるため、以下の説明では動作主体をプロセッサ（ＣＰＵ）と読み替えることも可能である。相関計算処理２０６は、時系列パタンテーブル２０５と目的変数を読み込んだタイミングで開始される。
【０１１７】
（i）ステップ１３０１
時系列データ分析部１２３は、目的変数テーブル１２６から目的変数カラム３０２を１つ選択する。相関計算処理２０６を最初に行う場合は、説明変数カラム４０３のうち任意のカラムを選択することができる。２回目以降の処理の場合は、未選択のカラムの中から任意の１つを選択することができる。カラムを選択した後、処理はステップ１３０２に進む。
【０１１８】
（ii）ステップ１３０２
時系列データ分析部１２３は、時系列パタンテーブル２０５からレコードを１つ選択する。以下では、この選択したレコードに含まれる時系列パタンに関する相関値を計算する。レコードを選択した後、処理はステップ１３０３に進む。
【０１１９】
（iii）ステップ１３０３
時系列データ分析部１２３は、ステップ１３０１で選択した目的変数とステップ１３０２で選択した時系列パタンとの相関値を計算する。相関値の計算には、例えば、ピアソンの相関係数を用いることが可能である。この場合、時系列データ分析部１２３は、時系列パタンテーブル２０５を参照することにより、対象となる時系列パタンのセッションiでの出現回数fiを得ることができる。また、時系列データ分析部１２３は、目的変数テーブル１２６を参照することにより、対象となる目的変数の値yiを得ることができる。そして、fiとyiを用いるとピアソンの相関係数は下記式で表される。時系列データ分析部１２３は、当該式に基づいて相関値を計算する。相関係数を計算した後、処理はステップ１３０４に進む。
【０１２０】
2017168524.tif 000003
【０１２１】
（iv）ステップ１３０４
時系列データ分析部１２３は、計算結果を時系列分析結果２０７に出力する。計算結果を出力した後、処理はステップ１３０５に進む。
【０１２２】
（v）ステップ１３０５
時系列データ分析部１２３は、時系列パタンテーブル２０５の全てのレコードについて相関計算処理を実行したか判定する。全てのレコードについて相関計算処理をしている場合（ステップ１３０５でＹｅｓの場合）、処理はステップ１３０６に進む。未処理のレコードが存在する場合（ステップ１３０５でＮｏの場合）、処理はステップ１３０２に戻る。
【０１２３】
（vi）ステップ１３０６
時系列データ分析部１２３は、全ての目的変数について相関計算処理を実行したかを判定する。全ての目的変数について相関計算処理をしている場合（ステップ１３０６でＹｅｓの場合）、処理は終了する。未処理の目的変数が存在する場合（ステップ１３０６でＮｏの場合）、処理はステップ１３０１に戻る。
【０１２４】
＜分析結果レポートの表示例＞
図１４は、本実施形態による分析結果レポートの表示画面の例を示す図である。分析レポート１２８に基づいて生成される分析レポート表示画面は、例えば、時系列パタン表示画面１４０１と、分析対象データ閲覧画面１４０２と、によって構成される。
時系列パタン表示画面１４０１は、例えば、パタンリスト１４０１１と、パタン詳細画面１４０１２と、グラフ画面１４０１３と、を含んでいる。
【０１２５】
パタンリスト１４０１１には、時系列データ分析部１２３が抽出した、少なくとも１つの時系列パタンの情報がリストアップされる。パタンリスト１４０１１は、リストアップされる時系列パタンのパタンＩＤ、時系列パタンの種別、目的変数との相関値などを表示する。また、パタンリスト１４０１１では、相関値の絶対値が大きい順に時系列パタンが表示される。これにより、分析者の確認作業を支援することができる。なお、目的変数が複数ある場合には、複数の相関値が目的変数に対応して表示される。例えば、図８のような場合には、目的変数１、２、・・に対応する相関値（例えば、パタンＩＤ＝１に対して０．４２及び０．２３）がそれぞれ表示される。なお、相関値は、所定の閾値以上のものがリストアップされるようにしても良い。
【０１２６】
パタン詳細画面１４０１２は、パタンリスト１４０１１で選択された時系列パタン（例えば、パタンリスト１４０１１で時系列パタンを選択するとパタンＩＤが太字で表示される）の詳細情報を表示する。例えば、時系列パタンを構成するイベントのイベント表現５０２４などが表示される。これにより、分析者は時系列イベントを解釈しやすくすることができる。
【０１２７】
グラフ画面１４０１３は、目的指標（目的変数）と時系列パタンの出現回数の関係を示すグラフなどを表示する。これにより、分析者は目的指標と時系列パタンとの相関を目視で確認することができるようになる。
【０１２８】
分析対象データ閲覧画面１４０２は、時系列パタン出現箇所確認するための画面であって、分析対象データ１１１において選択した時系列パタンが出現する箇所をハイライト表示などする画面である。セッションにおいて選択した時系列パタンが出現する箇所は、時系列パタンテーブル２０５の出現セッションリスト７０４に基づいて特定される。また、イベントテーブル５０２に含まれるイベント表現５０２４に基づいてセッション内のレコードを検索することにより、時系列パタンに対応するレコードを特定することができる。
【０１２９】
＜まとめ＞
（i）本実施形態では、分析対象データに含まれる説明変数データに関し、所定の範囲内（各セッション）において時系列パタン（複数種類の時系列パタン（例えば、N-gram、アソシエーション、シーケンスなど））が生成される。また、当該時系列パタンと目的変数データ（少なくとも１つ分析対象データから抽出される）との相関値が算出される。そして、相関値と共に、相関値に対応する時系列パタンが分析結果として出力される。このように、説明変数データから時系列パタンを抽出しているので、分析者が仮説を立てることなく目的変数（目的指標）に影響を与える要因（イベントのパタン）を抽出することが可能となる。また、出現頻度に依存せずに目的変数に影響を与える要因を発見することができるようになる。
【０１３０】
また、本実施形態では、説明変数データを所定のルールに基づいて抽象化している。そして、その抽象化された説明変数データについて、時系列パタンが生成される。このようにすることにより、説明変数の値の種類を減らして、理解しやすい時系列パタンを抽出することが可能となる。抽象化する際、テキストデータについては、例えば、当該テキストデータの文字列の類似性に基づいてクラスタリング処理を実行して、分類されたテキストデータをラベルに変換する。また、数値については、例えば、当該数値の発生分布に基づいて数値をラベルに変換するようにする。このようにすることにより、テキストや数値に関する事前の知識を必要とせずに時系列データを分析することができるようになる。
【０１３１】
分析結果を出力する場合、相関値が所定の閾値以上を示す時系列パタンのみを出力するようにしても良い。これにより、目的変数に大きく影響する要因のみを提示することができるようになる。
【０１３２】
また、分析結果を出力する場合、分析対象データにおける時系列パタンの出現箇所が示される。これにより、当該時系列パタンがどのような状況で発生したか確認することが可能となる。
【０１３３】
さらに、分析結果を出力する場合、複数のセッションのそれぞれにおける時系列パタンの出現数と、目的変数との関係を示す情報が出力される。これにより、相関値という数値によってだけでなく、時系列パタンと目的変数との相関を目視で確認することが可能となる。
【０１３４】
（ii）本開示は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本開示を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１３５】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【０１３６】
さらに、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【０１３７】
最後に、ここで述べたプロセス及び技術は本質的に如何なる特定の装置に関連することはなく、コンポーネントの如何なる相応しい組み合わせによってでも実装できることを理解する必要がある。更に、汎用目的の多様なタイプのデバイスがここで記述した教授に従って使用可能である。ここで述べた方法のステップを実行するのに、専用の装置を構築するのが有益であることが判るかもしれない。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。本開示は、具体例に関連して記述したが、これらは、全ての観点に於いて限定の為ではなく説明の為である。本分野にスキルのある者には、本開示を実施するのに相応しいハードウェア、ソフトウェア、及びファームウエアの多数の組み合わせがあることが解るであろう。例えば、記述したソフトウェアは、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１３８】
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
【０１３９】
加えて、本技術分野の通常の知識を有する者には、本開示のその他の実装がここに開示された本開示の明細書及び実施形態の考察から明らかになる。記述された実施形態の多様な態様及び／又はコンポーネントは、単独又は如何なる組み合わせでも使用することが出来る。明細書と具体例は典型的なものに過ぎず、本開示の範囲と精神は後続する請求範囲で示される。
【符号の説明】
【０１４０】
１  時系列データ解析システム、１０１  ネットワーク、１１０  分析対象システム、１１１  分析対象データ、１２０  分析用サーバ、１２１  データ収集部、１２２  データ整形部、１２３  時系列データ分析部、１２４  レポート表示部、１２５  パラメタ設定部、１２６  目的変数テーブル、１２７  説明変数テーブル、１２８  分析レポート
【図１】
2017168524.tif 000004
【図２】
2017168524.tif 000005
【図３】
2017168524.tif 000006
【図４】
2017168524.tif 000007
【図５】
2017168524.tif 000008
【図６】
2017168524.tif 000009
【図７】
2017168524.tif 000010
【図８】
2017168524.tif 000011
【図９】
2017168524.tif 000012
【図１０】
2017168524.tif 000013
【図１１】
2017168524.tif 000014
【図１２】
2017168524.tif 000015
【図１３】
2017168524.tif 000016
【図１４】
2017168524.tif 000017
【国際調査報告】
2017168524.tif 000018
2017168524.tif 000019
2017168524.tif 000020
2017168524.tif 000021