(58)【調査した分野】(Int.Cl.,DB名)
前記時系列モデル推定手段において、前記丸め処理後の時系列データが非定常であると判定された場合において、当該丸め処理後の時系列データに対して、時系列変換を実行する時系列変換手段を備え、
前記時系列変換が実行された場合に、前記時系列モデル推定手段は、前記時系列変換が実行された後の時系列データを前記丸め処理後の時系列データとして時系列モデル推定処理を実行し、前記時系列モデル適用手段は、前記時系列変換が実行された後の時系列データを前記丸め処理後の時系列データとして時系列モデル適用処理を実行する
ことを特徴とする請求項1に記載のモデル判定装置。
前記丸め処理手段は、前記データ期間に対して予め定められた丸め単位候補集合と、前記サンプリング間隔に対して予め定められた丸め単位候補集合との論理積により得られる丸め単位を、前記時系列データに適用する丸め単位として抽出する
ことを特徴とする請求項3に記載のモデル判定装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
時系列データに適合した時系列モデルを決定することを、以下で説明するとおり、従来は人(分析者)の判断により行っていた。
【0006】
具体的には、時系列データの特性(周期性(季節性)の有無、トレンドの有無、定常性、自己相関関数の形、偏自己相関関数の形等)によって適用できる時系列モデルが決まるため、分析者は、時系列データの特性を計算し、周期性(季節性)の有無や自己相関関数のグラフの形状などを目で見て判断し、適応する時系列モデルを選択する。
【0007】
また、時系列データが例えば指数関数的に増加している場合は、時系列データを対数変換して対数系列を作る前処理を行わなければ、適用できる時系列モデルが存在しない場合がある。また、時系列データが周期的な変動を示している場合は、時系列データを差分変換して差分系列を作る方が、より適合度の良い時系列モデルを決定できる場合がある。このように、時系列データに変換を加える必要性についても、時系列データのグラフの形状を分析者の目で見て判断することが多い。
【0008】
時系列データはノイズが多く含まれる場合や、サンプリング間隔にばらつきがある場合があり、ある時間単位でデータを丸めて入力データを作る必要がある。丸め単位を長くするとノイズの影響が小さくなり、適合度の高い時系列モデルが得られる一方、長くしすぎると時系列モデル化によって得たい時系列データの特性が消えてしまう他、予測粒度が荒くなるという問題もある。よって、ノイズの影響を受けない、適合度の高い時系列モデルを得るためには、長くも短くもない最適な丸め単位を決めることが重要である。また、データの丸め単位によって、時系列データの特性が変わるため、適応する時系列モデルが変わる。そのため、現状では最もよく時系列データに合う時系列モデルを作成するために、分析者がデータの丸め単位と適応する時系列モデルを試行錯誤しながら計算する必要があり、非常に手間暇がかかる。
【0009】
上記のように、時系列データに適合した時系列モデルを決定するモデル化の作業は、難しい作業であり、時間がかかるものである。
【0010】
本発明は上記の点に鑑みてなされたものであり、時系列データに適合する時系列モデルを複数の丸め単位で決定し、適合度で比較することを、容易に可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明の実施の形態によれば、入力された時系列データに適合する時系列モデルを判定するモデル判定装置であって、
前記時系列データのサンプリング間隔とデータ期間とに基づいて、当該時系列データに適用する
複数の丸め単位を決定し、
丸め単位毎に、当該時系列データに対して当該丸め単位での丸め処理を実行し、丸め処理後の時系列データを取得する丸め処理手段と、
丸め単位毎に、前記丸め処理後の時系列データの特性値を計算し、当該特性値と所定の閾値とを比較することにより、前記丸め処理後の時系列データに適した時系列モデルを推定する時系列モデル推定手段と、
丸め単位毎に、前記時系列モデル推定手段により推定された時系列モデルを前記丸め処理後の時系列データに適用することにより、前記時系列モデルと前記丸め処理後の時系列データとの適合度を最良とするパラメータを決定する時系列モデル適用手段とを備え、
適合度の良い順番に並べられた、丸め単位と時系列モデルとを含む情報のリストを出力する
ことを特徴とするモデル判定装置が提供される。
【0012】
また、本発明の実施の形態によれば、入力された時系列データに適合する時系列モデルを判定するモデル判定装置が実行するモデル判定方法であって、
前記時系列データのサンプリング間隔とデータ期間とに基づいて、当該時系列データに適用する
複数の丸め単位を決定し、
丸め単位毎に、当該時系列データに対して当該丸め単位での丸め処理を実行し、丸め処理後の時系列データを取得する丸め処理ステップと、
丸め単位毎に、前記丸め処理後の時系列データの特性値を計算し、当該特性値と所定の閾値とを比較することにより、前記丸め処理後の時系列データに適した時系列モデルを推定する時系列モデル推定ステップと、
丸め単位毎に、前記時系列モデル推定ステップにより推定された時系列モデルを前記丸め処理後の時系列データに適用することにより、前記時系列モデルと前記丸め処理後の時系列データとの適合度を最良とするパラメータを決定する時系列モデル適用ステップと、
適合度の良い順番に並べられた、丸め単位と時系列モデルとを含む情報のリストを出力するステップと
を備えることを特徴とするモデル判定方法が提供される。
【発明の効果】
【0013】
本発明の実施の形態によれば、時系列データに適合する時系列モデルを複数の丸め単位で決定し、適合度で比較することを、容易に可能とする技術が提供される。
【発明を実施するための形態】
【0015】
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【0016】
(装置構成)
図1に、本実施の形態におけるモデル判定装置100の構成例を示す。
図1に示すように、モデル判定装置100は、入力部101、データ記憶部102、データ期間分析・丸め処理部103、時系列モデル推定部104、時系列変換部105、時系列モデル適用部106、時系列モデル比較部107、及び出力部108を備える。各部の概要は以下のとおりである。
【0017】
入力部101は、時系列モデル化の対象となる時系列データを入力する。データ記憶部102は、入力された時系列データ、各機能部により得られた結果等を格納する。データ期間分析・丸め処理部103は、入力された時系列データに適した複数種類の丸め単位を決定し、決定した丸め単位毎に時系列データに対する丸め処理を行う。
【0018】
時系列モデル推定部104は、丸め単位毎に、丸め処理を経た時系列データに適した時系列モデルを推定(決定)する。また、時系列変換部105は、時系列モデル推定部104において時系列変換処理が必要であると判定された場合に、時系列変換処理を実行する。
【0019】
時系列モデル適用部106は、丸め単位毎・時系列変換毎に得られた時系列データに関し、時系列モデル推定部104において決定された時系列モデルについて、パラメータ(係数と次数)を変えながら時系列データとの適合度を計算し、適合度が最良のパラメータを最適なパラメータとして決定する。
【0020】
時系列モデル比較部107は、時系列モデル適用部106にて、丸め単位毎・時系列変換毎に決定された最適なパラメータを用いて計算された時系列モデルを、得られた適合度順に並べるとともに、各時系列モデルと時系列データの妥当性を判断するための評価指標を計算し、グラフ化する。更に、時系列モデル比較部107は、各時系列モデルによる予測を行う。出力部108は、時系列モデル比較部107における処理結果(並べられた時系列モデルの情報、グラフ等)を出力する。
【0021】
本実施の形態に係るモデル判定装置100(
図1、
図15)は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、モデル判定装置100が有する機能は、当該コンピュータに内蔵されるCPUやメモリ、ハードディスクなどのハードウェア資源を用いて、モデル判定装置100で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【0022】
上記のプログラムは、例えば、各種の統計処理を行う関数(モジュール)の集合を含む。当該関数(モジュール)の集合を提供するアプリケーションとして、本実施の形態では、統計分析ソフトである「R」を使用しているが、これは例であり、例えば、既存の統計分析ソフトを利用せずに、各関数のプログラムを構築して利用することとしてもよい。
【0023】
以下、モデル判定装置100の動作例についてシーケンス図等を参照して説明する。
【0024】
(全体処理手順)
図2は、モデル判定装置100により実行される処理の全体の流れを示すフローチャートである。
図2に示すように、まず、時系列モデル化の対象となる時系列データが入力部101から入力される(ステップS100)。
【0025】
次に、データ期間分析・丸め処理部103が、入力された時系列データに適した複数種類の丸め単位を決定し、決定した丸め単位毎に時系列データに対する丸め処理を行う(ステップS200)。そして、時系列モデル推定部104は、丸め単位毎に、丸め処理を経た時系列データに適した時系列モデルを推定する(ステップS300)。また、必要に応じて、時系列変換部105が時系列変換処理を実行する(ステップS400)。
【0026】
続いて、時系列モデル適用部106は、丸め単位毎・時系列変換毎に、時系列モデル推定部104において決定された時系列モデルについて、パラメータ(係数と次数)を変えながら時系列データとの適合度を計算し、適合度が最良のパラメータを最適なパラメータとして決定する(ステップS500)。
【0027】
そして、時系列モデル比較部107は、丸め単位毎・時系列変換毎に得られた適合度順に、時系列モデルの情報を並べるとともに、各時系列モデルと時系列データの妥当性を判断するための評価指標を計算し、グラフ化し、更に、各時系列モデルによる予測を行い、出力部108を介して結果を出力する(ステップS600)。
【0028】
以下、ステップS200〜S600の処理をより詳細に説明する。なお、以下では各種の閾値を使用しているが、当該閾値は例であり、これに限定されるわけではない。
【0029】
(S200:データ期間分析・丸め処理)
本実施の形態では、データ期間分析・丸め処理部103が、入力された時系列データのサンプリング間隔とデータの取得期間とから、最大4つ、最少1つの推奨丸め単位を自動で計算し、全ての推奨丸め単位で時系列データの丸め処理を行い、丸め単位毎の時系列データを出力する。
【0030】
データ期間分析・丸め処理部103が実行する丸め処理の方法を
図3〜
図5を参照して説明する。
【0031】
図3の中のグラフは、入力される時系列データのイメージを示している。
図3に示されるとおり、Iはデータのサンプリング間隔を示す。また、Lはデータ期間であり、入力データ全体の期間を示す。例えば、1年分のデータであればLは1年になる。Rは丸め単位を示す。データ期間分析・丸め処理部103は、時系列データのサンプリング間隔Iの平均を求める等して、Iを自動的に計算してもよいし、ユーザからIを入力してもらうこととしてもよい。また、データ期間Lについても、時系列データの開始と終了から計算してもよいし、ユーザからLを入力してもらうこととしてもよい。
【0032】
図3(a)、(c)に示すように、本実施の形態では、IとLのそれぞれについて、所定の間隔の区分に分けられている。例えば、
図3(a)の例において、Iの区分の3は、Iが1分以上、1時間以下であることを示す。また、
図3(b)に示すように、選択する対象である丸め単位についても、予め区分に分けられている。
【0033】
また、I≦R<Lという関係と、経験則とから、IとRの取り得る組み合わせとして
図4(a)中の〇で示す組み合わせが予め決められ、RとLの取り得る組み合わせとして
図4(b)中の〇で示す組み合わせが予め決められており、これらの組み合わせを示すデータがデータ記憶部102に格納されている。
【0034】
図4(a)に示す組み合わせは、I≦Rの関係から必然的に得られる。例えば、Iの区分3(1min<I≦1hour)の場合、丸め単位は、1時間以上の区分になる。
図4(b)に示す組み合わせにおいては、R<Lの関係から必然的に決まる点と、経験則で決めた点がある。R<Lの関係から必然的に決まる点は、例えば、Lの区分6において、Rを1週間以下とする点である。また、Lの区分6において、Rの区分1(1秒)、区分2(1分)は組み合わせに含められていないが、これは、経験則から、Lの区分6に対し、1秒での丸め処理や、1分での丸め処理を行っても、あまり効果がないことがわかっているためである。
【0035】
データ期間分析・丸め処理部103は、
図4(a)に示す組み合わせのうち、時系列データのIに対応するRの集合と、
図4(b)に示す組み合わせのうち、時系列データのLに対応するRの集合との論理積を当該時系列データに対して使用するRの集合として決定する。
図5は、Iの区分とLの区分の組み合わせ毎のRの区分を示す図である。
【0036】
例えば、時系列データのIの区分が3(1min<I≦1hour)であり、Lの区分が5(1week<L≦1month)である場合、
図4(a)に示す組み合わせから、Rの集合として3〜8が得られる。また、
図4(b)に示す組み合わせから、Rの集合として2〜5が得られる。よって、当該時系列データに対して使用する丸め単位Rとして、3〜8と2〜5の論理積をとって3、4、5が得られる。この場合、R=1hour、6hour、1dayのそれぞれを用いて、時系列データの丸め処理を行う。つまり、この場合、3つの丸め処理後の時系列データが生成される。なお、丸める際の手法として、丸め区間毎にデータを加算する方法や、平均をとる方法などがある。この方法については、ユーザが選択して入力することとしてもよいし、各方法で丸め処理を行ってもよい。各方法で丸め処理を行う場合、その分だけ、丸め処理後の時系列データが生成される。例えば、Rが3種類で、丸め処理方法が2種類の場合、6種類の丸め処理後の時系列データが生成される。
【0037】
図6は、データ期間分析・丸め処理部103が実行する処理の手順を示すフローチャートである。
図6に示すとおり、まず、丸め手法が選択され、入力される(ステップS201)。データ期間分析・丸め処理部103は、例えば、時系列データを解析することにより、時系列データのデータ期間(Lの区分)、及びサンプリング間隔(Iの区分)を決定する(ステップS202、S203)。
【0038】
そして、データ期間分析・丸め処理部103は、上述した方法により、時系列データに対する1つ又は複数の丸め単位を決定し、各丸め単位を用いて時系列データに対して丸め処理を実行する。丸め処理が施された各時系列データは、データ記憶部102に格納され、次の処理において読み出される。
【0039】
(S300:時系列モデル推定処理、S400:時系列変換処理)
次に、時系列モデル推定処理と時系列変換処理を
図7〜
図10を参照して詳細に説明する。以下では、ある丸め単位の丸め処理で得られた1つの時系列データに関する処理を説明する。以下で説明する処理が、各丸め単位(また、必要に応じて各時系列変更後)の時系列データに対して実行される。以下、時系列データ解析用の関数を提供するアプリケーション"R"に実装されている関数を例に説明する。
【0040】
図7のステップS301において、まず、時系列モデル推定部104が、時系列データ(図中のdata)に対してfrequency関数を適用することで、周期性の計算を行う。計算結果はfreq.dataに入れられる。なお、freq.dataが1以外の場合に周期性ありと判定する。次に、時系列モデル推定部104は、時系列データにaggregate関数を適用することにより、時系列データのトレンドの有無を判定する(ステップS302、S303)。本例では、グラフの傾きの絶対値が0.1以上である場合に、トレンドが有りと判定し、trend.dataに1を設定する。
【0041】
続いて、時系列モデル推定部104は、CADFtest関数を適用することにより、定常性の判定を行う(ステップS305)。ここでは、パラメータの1つとしてステップS301で求めた周期性の値が用いられる。ステップS305の計算の結果、得られたp値(帰無仮説が成立する確率)が0.05より小さければ定常であると判定し(ステップS306、S307)、閾値0.05より小さくなければ非定常であると判定する(ステップS306、S308)。
【0042】
定常と判定した場合、ステップS309に進み、時系列変換がなされているかどうかを判定する(ステップS309)。時系列変換処理については後述する。時系列変換がなされている場合はステップS310に進み、トレンドの有無で場合に分かれる。トレンドが有る場合(ステップS310のNo)、モデルをSARIMA(seasonal autoregressive integrated moving average)と決定する(ステップS311)。トレンドが無い場合(ステップS310のYes)、モデルをARIMA(autoregressive integrated moving average)と決定する(ステップS312)。
【0043】
ステップS309でNoの場合、ステップS313に進み、acf関数を適用することにより自己相関検定を行う。なお、自己相関とは、ある時点でのデータが異なる時点のデータと相関関係を持っているか否かを表す指標であり、時点間の差をラグと呼ぶ。自己相関があれば、ある時点でのデータを異なる時点のデータを用いて説明できるということになり、時系列モデルを推定するのに非常に重要な情報となる。
【0044】
ステップS313の計算の結果、得られたp値が0.05より小さくなければ自己相関なしと判定し(ステップS314のNo、S315)、閾値0.05より小さければ自己相関ありと判定する(ステップS314のYes、S322)。
【0045】
自己相関なしの場合、期待値と自己共分散を計算し(ステップS316)、「期待値=0かつ自己共分散=0(0以外のラグにおいて)」かどうかを判定する(ステップS317)。
【0046】
ステップS317の判定結果がNoであれば、モデルの推定不可として処理を終了する(ステップS318)。ステップS317の判定結果がYesであれば、時系列変換の有無を判定し(ステップS319)、Yesであればモデルをランダムウォークと決定する(ステップS320)。Noであればモデルをホワイトノイズと決定する(ステップS321)。
【0047】
一方、自己相関ありの場合(ステップS322)、acf関数を適用することで自己相関強度判定を行う(ステップS323)。
【0048】
図8のステップS324において、0以外の各ラグにおけるacfの値が0.2以上かどうかを判定する。
図9は、acfの値が0.2以上である場合のグラフの一例を示す図である。
図8のステップS324の判定結果がYesであれば、強い自己相関があると判定し(ステップS325)、acf.weakが1かどうか判定する(ステップS326)。acf.weakは、初期値は0であり、弱い自己相関があった時に1になる変数である。ここでは元々強い自己相関があるのか、それとも一度弱い自己相関と判定されたものが二乗変換により強い自己相関を持つようになったのかを判定している。ステップS326での判定結果がYesであれば、モデルをGARCH(generalized ARCH((autoregressive conditional heteroskedasticity))と決定する(ステップS327)。
【0049】
ステップS326での判定結果がNoの場合、ステップS328に進み、自己相関切断判定を行う。ここでは、acfの値が0.05以下のラグが、ラグ2からラグ30の間に10以上連続する場合に、自己相関切断有りとする。自己相関切断有りの場合(ステップS329のYesの場合)、pacf関数を適用することで偏自己相関切断判定を行う(ステップS330)。ここでも、pacfの値が0.05以下のラグが、ラグ2からラグ30の間に10以上連続する場合に、偏自己相関切断有りとする。偏自己相関切断無しの場合(ステップS331のNoの場合)、モデルをMA(moving average)と決定する(ステップS332)。偏自己相関切断有りの場合(ステップS331のYesの場合)、推定不可であるが、ARMA(autoregressive moving average)モデルを適用できる可能性があるため、モデルをARMAと決定する(ステップS334)。
【0050】
ステップS329の判定結果がNoの場合、ステップS335に進み、偏自己相関切断判定を行う(ステップS335)。ここでも、pacfの値が0.05以下のラグが、ラグ2からラグ30の間に10以上連続する場合に、偏自己相関切断有りとする。偏自己相関切断有りの場合(ステップS336のYesの場合)、モデルをARMAと決定する(ステップS334)。Noの場合、モデルをAR(Autoregressive)と決定する(ステップS337)。
【0051】
一方、ステップS324での判定結果がNoの場合、弱い自己相関と判定し(ステップS338)、acf.weakが0でなければ、つまり一度弱い自己相関と判定されて二乗変換され、再び弱い自己相関と判定された場合、ステップS328に進んで既に説明した処理を実行する。acf.weakが0の場合は、acf.weakを1とし(ステップS340)、時系列データの二乗変換を行って(ステップS341、S342)、ステップS323に戻る。
【0052】
図7の定常性の判定(ステップS306)の結果、非定常であると判定した場合(ステップS308)、時系列変換部105が、
図10に示す時系列変換処理を実行する。
図10において、log、difflog、diff、ndiffはそれぞれ、初期値は0であり、対数変換、対数差分変換、1階差分変換、n階差分変換を行った場合に1となる変数である。
【0053】
ステップS401において、上記のいずれかを行っていると判定された場合(Noの場合)、変換を無限に繰り返すことを避けるため、推定不可として処理を終了する。
【0054】
ステップS401の判定がYesの場合、例えば、まず、対数変換(S403〜S405)を行い、変換後の時系列データに対してS301からの処理を行って、定常(ステップS306のYes)であれば、これまでに説明した処理により、モデルの判定がなされる。次に、再び、時系列変換を行っていない時系列データ(上記の対数変換を行う前の段階のデータと同じもの)について、対数差分変換(S403〜S405)を行い、定常(ステップS306のYes)であれば、これまでに説明した処理により、モデルの判定がなされる。次に、再び、時系列変換を行っていない時系列データ(上記の対数変換を行う前の段階のデータと同じもの)について、1階差分変換又はn階差分変換(S412により場合分けで、S409〜S411、S413〜S415)を行い、定常(ステップS306のYes)であれば、これまでに説明した処理により、モデルの判定がなされる。このような処理により、仮に3つの変換を行う場合、変換後の時系列データが3つ得られることになる。なお、このような処理に代えて、
図10の対数変換、対数差分変換、1階差分変換、n階差分変換をこの順で順番に行って、時系列変換により定常と判断された段階で、他の時系列変換を行わないこととしてもよい。
【0055】
(S500:時系列モデル適用処理)
次に、時系列モデル適用部106が実行する時系列モデル適用処理について、
図11、
図12を参照して説明する。
【0056】
時系列モデル適用処理においては、各時系列データ毎に、これまでの処理で決定された適用する時系列モデルのパラメータ(係数と次数)を変えながら、時系列データとの適合度(赤池情報量規準:AIC)を計算する。適合度を計算する対象となる時系列データは、該当する丸め処理がなされたデータである。また、時系列変換がなされている場合には、更に当該時系列変換がなされたデータである。本実施の形態では、適合度の計算を赤池情報量規準(AIC)を用いて行っているが、これ以外の規準を用いて行うこととしてもよい。
【0057】
具体的な処理内容は、
図11、
図12に示すとおりである。すなわち、時系列モデル推定処理で得られた推定結果が、推定不可、ホワイトノイズ、ランダムウォークである場合、いずれもモデル化不可能とし、AICを9999に設定する(ステップS501〜S506)。これら以外の場合、パラメータを変えながら該当の時系列モデルを時系列データに適用して、AICが最小となるパラメータ(係数と次数)を最適なパラメータとして決定する(ステップS507〜S518)。
【0058】
例えば、最初に入力された時系列データに対して、4種類の丸め処理(A、B,C,D)が実施され、そのうちのBについて2種類の時系列変換(H1、H2とする)がなされたとすると、この時点で、以下に示す5種類のデータが得られることになる。
【0059】
(データ1)丸め単位A、Aを施した時系列データ、適用時系列モデル、AICを最小にするパラメータ、AIC。
【0060】
(データ2)丸め単位B、時系列変換H1、BとH1を施した時系列データ、適用時系列モデル、AICを最小にするパラメータ、AIC。
【0061】
(データ3)丸め単位B、時系列変換H2、BとH2を施した時系列データ、適用時系列モデル、AICを最小にするパラメータ、AIC。
【0062】
(データ4)丸め単位C、Cを施した時系列データ、適用時系列モデル、AICを最小にするパラメータ、AIC。
【0063】
(データ5)丸め単位D、Dを施した時系列データ、適用時系列モデル、AICを最小にするパラメータ、AIC。
【0064】
(S600:時系列モデル比較処理)
次に、時系列モデル比較部107が実行する時系列モデル比較処理について
図13のフローチャートを参照して説明する。
【0065】
時系列モデル比較処理部107は、ステップS500で得られたデータをAICの昇順(最小のものを先頭)に並べたリストを作成し、当該リストを出力部108から出力する(ステップS601)。例えば、上記の例で、AICの大きさが、「データ2<データ3<データ1<データ5<データ4」となった場合、この順番で並べられたデータを出力する。出力された各データは、例えばディスプレイに表示される。なお、ここでは、AICが最小のもののみを出力することとしてもよい。
【0066】
また、時系列モデル比較処理部107は、ステップS500で得られた各データについて、各モデルと各データの妥当性を判断するための評価指標を計算しグラフ化し、出力部108から出力する(ステップS602)。評価指標は特定のものに限られないが、例えば、以下(1)〜(3)の評価指標を使用することができる。
【0067】
(1)時系列データと時系列モデルの残差(モデル予測値−実測値)
(2)時系列データと時系列モデルの残差の自己相関
(3)時系列データと時系列モデルの残差がホワイトノイズと見なせるかの検定
図14(a)は、時系列データと時系列モデルの残差の一例を示す。
図14(b)は、時系列データと時系列モデルの残差の自己相関の一例を示す。
図14(c)は、残差がホワイトノイズになっているかの検定プロットを示す。点線を下回らなければホワイトノイズとみなせる。このような出力・表示を行うことは、必須ではないが、このような出力・表示を行うことで、ユーザは、モデルがどの程度、実測値に適合しているかを容易に把握できる。
【0068】
また、時系列モデル比較処理部107は、ステップS500で得られた各データについて、適用モデルの予測(例:100期先まで)グラフを作成し、出力する(ステップS603)。
【0069】
(応用例)
本実施の形態におけるモデル判定装置100は、様々な分野に適用可能である。例えば、サーバによるネットワークを介したサービス提供等の通信サービス分野において、ユーザ端末からサーバへのアクセス数のログ(学習データ)に対し、これまでに説明した時系列モデル判定技術を適用し、時系列モデルを決定し、当該時系列モデルを用いて、将来のアクセス数の予測を行うことができる。また、時系列モデルの予測値と、実測値とを比べたときに、実測値が予測値と大きく上回る、または下回った場合には、異常(攻撃、故障、アクセスの集中など)が起きていると判定することもできる。
【0070】
図15に、上記の応用例に対応するモデル判定装置100の機能構成図を示す。
図15に示すモデル判定装置100は、モデル判定部151、予測部152、異常判定部153を備える。
【0071】
モデル判定部151は、
図1に示したモデル判定装置100の構成を有しており、これまでに説明した時系列モデル判定処理を実施する。例えば、モデル判定部151は、入力データとして、上記のアクセスログのデータを受信し、当該アクセスログデータに適合する最適な時系列モデルを決定する。より具体的には、例えば、AICを最小にする時系列モデルとパラメータを決定し、出力する。
【0072】
予測部152は、モデル判定部151により決定された時系列モデルから将来の予測値を算出する。異常判定部153には、現在のログ(アクセス数)が入力されるとともに、予測部152から、現在に対応する予測値(予測アクセス数)とが入力される。異常判定部153は、例えば、予測アクセス数とアクセス数との差分の絶対値が予め定めた閾値よりも大きい場合に、「異常」を示す結果を出力する。
【0073】
また、上記の例の他に、過去のアクセスログから不正アクセスを特定し、当該アクセスログを学習データとして、これまでに説明した時系列モデル判定技術を適用し、不正アクセスのアクセスパターンの時系列モデルを決定し、当該時系列モデルを用いて、当該時系列モデルに近いアクセスパターンでアクセスしてきたユーザに対しては、不正アクセスと判定することも可能である。不正アクセスと判定された場合には、例えば、当該ユーザをブロックしたり、サービスを使えなくするなどの対策をとることが可能となる。
【0074】
このような処理についても、
図15に示すモデル判定装置100が実行できる。この場合、モデル判定部151が、不正アクセスのアクセスパターンの時系列モデルを決定し、予測部152が、当該時系列モデルを用いて不正アクセスの将来のアクセスパターンを予測し、異常判定部153が、当該予測値と実測値(各ユーザの現在のアクセスパターン)とを比較して、予測値に近い実測値を持つユーザを特定する。そして、例えば、異常判定部153は、例えば、当該ユーザからのアクセスをブロックするよう、アクセス装置への指示を実行する。
【0075】
(実施の形態の効果)
従来技術では、時系列データに適合する時系列モデルの決定を行う際に、丸め処理、時系列変換、時系列モデルの絞込みを人の判断をたよりに繰り返し試行錯誤しながら行っていたが、本実施の形態では、自動的に時系列データに適した丸め処理や時系列変換を行い、それぞれの処理後の入力データに対して最適な時系列モデルと適合度を計算し、時系列モデルのリストを提示することができる。これにより、時系列データの解析について学術的な知識のない人でも、簡便にモデル化を行うことが可能となる。
【0076】
(実施の形態のまとめ)
以上、説明したように、本実施の形態により、入力された時系列データに適合する時系列モデルを判定するモデル判定装置であって、前記時系列データのサンプリング間隔とデータ期間とに基づいて、当該時系列データに適用する丸め単位を決定し、当該時系列データに対して当該丸め単位での丸め処理を実行し、丸め処理後の時系列データを取得する丸め処理手段と、前記丸め処理後の時系列データの特性値を計算し、当該特性値と所定の閾値とを比較することにより、前記丸め処理後の時系列データに適した時系列モデルを推定する時系列モデル推定手段と、前記時系列モデル推定手段により推定された時系列モデルを前記丸め処理後の時系列データに適用することにより、前記時系列モデルと前記丸め処理後の時系列データとの適合度を最良とするパラメータを決定する時系列モデル適用手段とを備えることを特徴とするモデル判定装置が提供される。なお、上記の特性値は、例えば、周期性(季節性)の有無、トレンドの有無、定常性、自己相関関数の形、偏自己相関関数の形等であるが、これらに限られるわけではない。
【0077】
前記丸め処理手段は、複数の丸め単位を決定し、丸め単位毎に、丸め処理を実行して丸め処理後の時系列データを取得し、前記時系列モデル推定手段は、丸め単位毎に、丸め処理後の時系列データに適した時系列モデルを推定し、前記時系列モデル適用手段は、丸め単位毎に、前記適合度を最良とするパラメータを決定し、前記モデル判定装置は、適合度の良い順番に並べられた、丸め単位と時系列モデルとを含む情報のリストを出力することとしてもよい。なお、情報のリストには更にパラメータが含まれていてもよい。
【0078】
前記時系列モデル推定手段において、前記丸め処理後の時系列データが非定常であると判定された場合において、当該丸め処理後の時系列データに対して、時系列変換を実行する時系列変換手段を備えてもよく、前記時系列変換が実行された場合に、前記時系列モデル推定手段は、前記時系列変換が実行された後の時系列データを前記丸め処理後の時系列データとして時系列モデル推定処理を実行し、前記時系列モデル適用手段は、前記時系列変換が実行された後の時系列データを前記丸め処理後の時系列データとして時系列モデル適用処理を実行する。
【0079】
前記丸め処理手段は、前記データ期間に対して予め定められた丸め単位候補集合の中から、前記時系列データに適用する丸め単位を抽出することとしてもよい。また、前記丸め処理手段は、前記データ期間に対して予め定められた丸め単位候補集合と、前記サンプリング間隔に対して予め定められた丸め単位候補集合との論理積により得られる丸め単位を、前記時系列データに適用する丸め単位として抽出することとしてもよい。
【0080】
また、前記モデル判定装置は、前記時系列モデル適用手段により決定されたパラメータを持つ時系列モデルを使用して将来予測を実行する予測手段と、前記予測手段により得られた予測値と、実測値とを比較することにより、異常検知を行う異常判定手段とを備えることとしてもよい。
【0081】
(第1項)
入力された時系列データに適合する時系列モデルを判定するモデル判定装置であって、
前記時系列データのサンプリング間隔とデータ期間とに基づいて、当該時系列データに適用する丸め単位を決定し、当該時系列データに対して当該丸め単位での丸め処理を実行し、丸め処理後の時系列データを取得する丸め処理手段と、
前記丸め処理後の時系列データの特性値を計算し、当該特性値と所定の閾値とを比較することにより、前記丸め処理後の時系列データに適した時系列モデルを推定する時系列モデル推定手段と、
前記時系列モデル推定手段により推定された時系列モデルを前記丸め処理後の時系列データに適用することにより、前記時系列モデルと前記丸め処理後の時系列データとの適合度を最良とするパラメータを決定する時系列モデル適用手段と
を備えることを特徴とするモデル判定装置。
(第2項)
前記丸め処理手段は、複数の丸め単位を決定し、丸め単位毎に、丸め処理を実行して丸め処理後の時系列データを取得し、
前記時系列モデル推定手段は、丸め単位毎に、丸め処理後の時系列データに適した時系列モデルを推定し、
前記時系列モデル適用手段は、丸め単位毎に、前記適合度を最良とするパラメータを決定し、
前記モデル判定装置は、適合度の良い順番に並べられた、丸め単位と時系列モデルとを含む情報のリストを出力する
ことを特徴とする第1項に記載のモデル判定装置。
(第3項)
前記時系列モデル推定手段において、前記丸め処理後の時系列データが非定常であると判定された場合において、当該丸め処理後の時系列データに対して、時系列変換を実行する時系列変換手段を備え、
前記時系列変換が実行された場合に、前記時系列モデル推定手段は、前記時系列変換が実行された後の時系列データを前記丸め処理後の時系列データとして時系列モデル推定処理を実行し、前記時系列モデル適用手段は、前記時系列変換が実行された後の時系列データを前記丸め処理後の時系列データとして時系列モデル適用処理を実行する
ことを特徴とする第1項又は第2項に記載のモデル判定装置。
(第4項)
前記丸め処理手段は、前記データ期間に対して予め定められた丸め単位候補集合の中から、前記時系列データに適用する丸め単位を抽出する
ことを特徴とする第1項ないし第3項のうちいずれか1項に記載のモデル判定装置。
(第5項)
前記丸め処理手段は、前記データ期間に対して予め定められた丸め単位候補集合と、前記サンプリング間隔に対して予め定められた丸め単位候補集合との論理積により得られる丸め単位を、前記時系列データに適用する丸め単位として抽出する
ことを特徴とする第4項に記載のモデル判定装置。
(第6項)
前記時系列モデル適用手段により決定されたパラメータを持つ時系列モデルを使用して将来予測を実行する予測手段と、
前記予測手段により得られた予測値と、実測値とを比較することにより、異常検知を行う異常判定手段と
を備えることを特徴とする第1項ないし第5項のうちいずれか1項に記載のモデル判定装置。
(第7項)
入力された時系列データに適合する時系列モデルを判定するモデル判定装置が実行するモデル判定方法であって、
前記時系列データのサンプリング間隔とデータ期間とに基づいて、当該時系列データに適用する丸め単位を決定し、当該時系列データに対して当該丸め単位での丸め処理を実行し、丸め処理後の時系列データを取得する丸め処理ステップと、
前記丸め処理後の時系列データの特性値を計算し、当該特性値と所定の閾値とを比較することにより、前記丸め処理後の時系列データに適した時系列モデルを推定する時系列モデル推定ステップと、
前記時系列モデル推定ステップにより推定された時系列モデルを前記丸め処理後の時系列データに適用することにより、前記時系列モデルと前記丸め処理後の時系列データとの適合度を最良とするパラメータを決定する時系列モデル適用ステップと
を備えることを特徴とするモデル判定方法。
(第8項)
コンピュータを、第1項ないし第6項のうちいずれか1項に記載のモデル判定装置における各手段として機能させるためのプログラム。
以上、本実施の形態について詳述したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。