(57)【要約】【課題】単位根が存在する変数データ群が存在する場合に、変数データ群間の見せかけの相関を排除した変数データ群を用いて、新たに取得されるデータの異常検出の精度を向上させる。【解決手段】異常検出装置は、所定の変数についての複数のデータの集合である変数データ群であって、複数の変数についての変数データ群を含むデータセットを取得するデータ取得部と、複数の変数データ群間における相関係数を算出するデータ処理部と、相関係数を用いて、新たに取得された変数に依存するデータの異常判定を行う判定部と、を備え、データ処理部は、複数の変数データ群の内の少なくとも１つに単位根が存在する場合に、相関係数の算出に先立ち、少なくとも単位根が存在する変数データ群に対して前処理を行う。【選択図】図１
2020181443.tif 000002
【特許請求の範囲】
【請求項１】
異常検出装置であって、
所定の変数についての複数のデータの集合である変数データ群であって、複数の前記変数についての前記変数データ群を含むデータセットを取得するデータ取得部と、
複数の前記変数データ群間における相関係数を算出するデータ処理部と、
前記相関係数を用いて、新たに取得された前記変数に依存するデータの異常判定を行う判定部と、を備え、
前記データ処理部は、複数の前記変数データ群の内の少なくとも１つに単位根が存在する場合に、前記相関係数の算出に先立ち、少なくとも単位根が存在する前記変数データ群に対して前処理を行う、異常検出装置。
【請求項２】
請求項１に記載の異常検出装置であって、
前記変数データ群には、前記変数について経時的に取得された複数のデータが含まれる、異常検出装置。
【請求項３】
請求項２に記載の異常検出装置であって、
前記データ処理部は、前記前処理として、単位根が存在する前記変数データ群における経時的に取得された複数のデータの各階差を算出し、算出された階差のデータの集合である処理後変数データ群を用いて相関係数を算出する、異常検出装置。
【請求項４】
請求項１から請求項３までのいずれか一項に記載の異常検出装置であって、さらに、
複数の前記変数データ群のそれぞれに対して単位根の存在を推定する推定部を備える、異常検出装置。
【請求項５】
請求項４に記載の異常検出装置であって、
前記データ処理部は、前記推定部により少なくとも１つの前記変数データ群に単位根が存在すると推定された場合に、全ての複数の変数データ群のそれぞれに対して前記前処理を行う、異常検出装置。
【請求項６】
請求項４または請求項５に記載の異常検出装置であって、
前記推定部は、複数の前記変数データ群のそれぞれに対して、単位根検定を用いて単位根の存在を推定する、異常検出装置。
【請求項７】
請求項１から請求項６までのいずれか一項に記載の異常検出装置であって、
前記データ処理部は、複数の前記変数データ群間における前記相関係数を算出するために相関係数行列または分散共分散行列を用いる、異常検出装置。
【請求項８】
請求項７に記載の異常検出装置であって、
前記判定部は、ホテリング理論、マハラノビス・タグチ法（ＭＴ法）、カルバックライブラーダイバージェンス、マハラノビス距離、へリンジャー距離、決定木、ランダムフォレスト、およびＸｇｂｏｏｓｔの少なくとも１つを用いてデータの異常判定を行う、異常検出装置。
【請求項９】
異常検出方法であって、
所定の変数についての複数のデータの集合である変数データ群であって、複数の前記変数についての前記変数データ群を含むデータセットを取得するデータ取得工程と、
複数の前記変数データ群間における相関係数を算出するデータ処理工程と、
前記相関係数を用いて、新たに取得された前記変数に依存するデータの異常判定を行う判定工程と、を備え、
前記データ処理工程では、複数の前記変数データ群の内の少なくとも１つに単位根が存在する場合に、前記相関係数の算出に先立ち、少なくとも単位根が存在する前記変数データ群に対して前処理を行う、異常検出方法。
【請求項１０】
コンピュータプログラムであって、
所定の変数についての複数のデータの集合である変数データ群であって、複数の前記変数についての前記変数データ群を含むデータセットを取得するデータ取得機能と、
複数の前記変数データ群間における相関係数を算出するデータ処理機能と、
前記相関係数を用いて、新たに取得された前記変数に依存するデータの異常判定を行う判定機能と、をコンピュータに実現させ、
前記データ処理機能は、複数の前記変数データ群の内の少なくとも１つに単位根が存在する場合に、前記相関係数の算出に先立ち、少なくとも単位根が存在する前記変数データ群に対して前処理を行う、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常検出装置、異常検出方法、およびコンピュータプログラムに関する。
【背景技術】
【０００２】
原系列が非定常である一方、差分系列が定常である場合には、原系列を構成する変数データ群に単位根が存在する。そして、このような単位根が存在する変数は、単位根過程と呼ばれる。単位根過程の変数に回帰分析あるいは相関係数を用いた処理を行うと、現実には存在しない変数間の関連性を反映している見せかけの相関（３個以上の変数が関係して発生する疑似相関とは異なる相関）が発生するおそれがある。そのため、このような見せかけの相関を排除するための技術が知られている（例えば、特許文献１参照）。特許文献１に記載された技術では、時系列に記録された信号値と、項目毎の項目値を所定期間後の信号値と対応付けることによって、単位根が存在する変数データ群間における見せかけの相関が排除されている。
【０００３】
特許文献２に記載された技術では、経時的に取得されたデータから構成される変数データ群にマハラノビス距離を用いたホテリング理論によって、成膜装置の異常が検出されている。非特許文献１に記載された技術では、ベクトル自己回帰モデル（ＶＡＲモデル：vector  autoregression  model）に基づく予測誤差の分散分解が行われ、単位根が存在する変数データ間における見せかけの相関が排除されている。非特許文献２に記載された技術では、変数データとしての金融データに対して時系列分析が行われ、金融データ間における見せかけの相関について記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２２８１８３号公報
【特許文献２】特開２０１８−８３９５８号公報
【非特許文献】
【０００５】
【非特許文献１】沖本竜義、「経済・ファイナンスデータの計量時系列分析」、朝倉書店、２０１０年２月１日刊行
【非特許文献２】山先  純也、他７名、"因果関係に基づく異常検知に関する考察"、２０１６年精密工学会春季大会、セッションＩＤ：Ｆ７９、２０１６年３月１日発行
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１、特許文献２、および非特許文献２に記載された変数データ群に含まれるデータは、過去のデータと、過去のデータに依存する現在のデータとを含んでいる。例えば、特許文献１における目的の変数データ群は、為替レートである。為替レートは、暴落直後に急騰しやすい、および、季節毎の傾向があるため、現在のデータが過去のデータに依存していると仮定できる。また、特許文献２における変数データ群は、経年劣化により変化するセンサーデータの集合である。すなわち、センサーデータは、新品の状態から徐々に劣化し、劣化に伴ってデータが少しずつ変化して異常に至るため、現在のデータが過去のデータに依存していると仮定できる。特許文献２の記載された技術では、変数データ群間の関係性に基づく方法（例えば、ホテリング理論、マハラノビス・タグチ法（ＭＴ法））を用いて成膜装置の異常検出が行われているが、見せかけの相関は排除されていない。
【０００７】
現在のデータが過去のデータに依存している変数データ群と異なり、製造工程の品質の異常検出に用いられる変数データ群は、現在のデータが過去のデータに依存しているとは限らない。例えば、良品の後に不良品が製造されるといった生産順序に依存した要因は考えにくい。一方で、このような変数データ群には、例えば、温度、時間、およびフィードバック回路によって高度に制御された変数などの単位根過程の一種であるランダムウォーク過程の変数が存在する。これらの変数データ群にこれらの変数に基づくデータを含んだ状態で、変数間の関係性に着目した計算処理（例えば、相関係数などの計算）を行うと、見せかけの相関が発生し、計算処理が実際の変数間の関係性を反映しないおそれがある。そのため、変数データ群間における見せかけの相関を回避した上で、現在のデータと過去のデータとの依存性を仮定しないで異常を検出する技術が求められている。
【０００８】
本発明は、上述した課題の少なくとも一部を解決するためになされたものであり、単位根が存在する変数データ群が存在する場合に、変数データ群間の見せかけの相関を排除した変数データ群を用いて、新たに取得されるデータの異常検出の精度を向上させることを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上述の課題を少なくとも一部を解決するためになされたものであり、以下の形態として実現することが可能である。
【００１０】
（１）本発明の一形態によれば、異常検出装置が提供される。この異常検出装置は、所定の変数についての複数のデータの集合である変数データ群であって、複数の前記変数についての前記変数データ群を含むデータセットを取得するデータ取得部と、複数の前記変数データ群間における相関係数を算出するデータ処理部と、前記相関係数を用いて、新たに取得された前記変数に依存するデータの異常判定を行う判定部と、を備え、前記データ処理部は、複数の前記変数データ群の内の少なくとも１つに単位根が存在する場合に、前記相関係数の算出に先立ち、少なくとも単位根が存在する前記変数データ群に対して前処理を行う。
【００１１】
この構成によれば、複数の変数データ群の内の少なくとも１つに単位根が存在すると、少なくとも単位根が存在する変数データ群に対して前処理が行われた後に、複数の変数データ群間における相関係数が算出される。そのため、少なくとも単位根が存在する変数データ群に前処理を行うことにより、変数データ群間の見せかけの相関が排除される。現在のデータと、過去のデータとの依存性を仮定しないシステム（例えば、製造工程の品質チェック）に、この前処理に基づく変数変換処理が組み込まれることにより、新たに取得された変数に依存するデータの異常検出精度が向上する。
【００１２】
（２）上記形態の異常検出装置において、前記変数データ群には、前記変数について経時的に取得された複数のデータが含まれていてもよい。
この構成によれば、現在のデータと、過去のデータとの依存性を仮定しない経時的に取得されたデータの異常を検出できる。
【００１３】
（３）上記形態の異常検出装置において、前記データ処理部は、前記前処理として、単位根が存在する前記変数データ群における経時的に取得された複数のデータの各階差を算出し、算出された階差のデータの集合である処理後変数データ群を用いて相関係数を算出してもよい。
この構成によれば、階差のデータの集合から相関係数が算出されるため、経時的に取得された変数のデータに発生する見せかけの相関を排除できる。
【００１４】
（４）上記形態の異常検出装置において、さらに、複数の前記変数データ群のそれぞれに対して単位根の存在を推定する推定部を備えていてもよい。
この構成によれば、単位根が存在する変数データ群が特定され、変数データ群間における見せかけの相関を排除できる。
【００１５】
（５）上記形態の異常検出装置において、前記データ処理部は、前記推定部により少なくとも１つの前記変数データ群に単位根が存在すると推定された場合に、全ての複数の変数データ群のそれぞれに対して前記前処理を行ってもよい。
この構成によれば、複数の変数データ群の内に１つでも単位根が存在する場合に全ての変数データ群に前処理を行うため、算出される相関係数の精度が向上する。これにより、異常検出の精度が向上する。
【００１６】
（６）上記形態の異常検出装置において、前記推定部は、複数の前記変数データ群のそれぞれに対して、単位根検定を用いて単位根の存在を推定してもよい。
この構成によれば、単位根が存在する変数データ群を特定でき、変数データ群間における見せかけの相関が排除される。
【００１７】
（７）上記形態の異常検出装置において、前記データ処理部は、複数の前記変数データ群間における前記相関係数を算出するために相関係数行列または分散共分散行列を用いてもよい。
【００１８】
（８）上記形態の異常検出装置において、前記判定部は、ホテリング理論、マハラノビス・タグチ法（ＭＴ法）、カルバックライブラーダイバージェンス、マハラノビス距離、へリンジャー距離、決定木、ランダムフォレスト、およびＸｇｂｏｏｓｔの少なくとも１つを用いてデータの異常判定を行ってもよい。
【００１９】
なお、本発明は、種々の態様で実現することが可能であり、例えば、異常検出装置、データ処理装置、データ分析装置、異常検出方法、データ処理方法、データ分析方法、これら装置や方法を実行するためのコンピュータプログラム、このコンピュータプログラムを配布するためのサーバ装置、およびコンピュータプログラムを記憶した一時的でない記憶媒体等の形態で実現することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施形態としての異常検出装置のブロック図である。
【図２】データセットの一部を示す概略図である。
【図３】変数データ群を用いた学習のフローチャートである。
【図４】学習フローによって算出された各データ群間の相関係数行列および散布図の一例を表す概略図である。
【図５】異常度についてのグラフである。
【図６】変数に依存する新たに取得されたデータの異常検出を行うフローチャートである。
【図７】比較例における各データ群間の相対係数行列および散布図の一例を表す概略図である。
【図８】実施例および比較例の異常度の平均値を表すグラフである。
【図９】変形例における異常検出方法を示すフローチャートである。
【発明を実施するための形態】
【００２１】
＜実施形態＞
図１は、本発明の一実施形態としての異常検出装置１のブロック図である。異常検出装置１は、所定の変数についての複数のデータの集合である変数データ群を含むデータセットを取得し、取得した複数の変数データ群間における相関係数を用いて、新たに取得した判定対象のデータについての異常判定を行う装置である。図１に示されるように、異常検出装置１は、ＣＰＵ（Central Processing Unit）１０と、ＲＯＭ（Read Only Memory）２０と、ＲＡＭ（Random Access Memory）３０と、記憶部４０とを備えている。ＣＰＵ１０は、ＲＯＭ２０に格納されているコンピュータプログラムをＲＡＭ３０に展開して実行することにより、取得部（データ取得部）１１、処理部（データ処理部）１２、判定部１３、および推定部１４として機能する。
【００２２】
記憶部４０は、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）などで構成されている。図１に示されるように、記憶部４０は、複数の変数データ群を含むデータセット４１と、判定対象のデータの異常判定時に用いられる閾値を含む閾値データ４２とを記憶している。
【００２３】
図２は、データセット４１の一部を示す概略図である。図２には、データセット４１として、変数Ｘ1，Ｘ2，Ｘ3，およびＸ4のそれぞれについての複数の各データｘ11，ｘ12などが表で示されている。また、図２には、変数Ｘ1〜Ｘ4のそれぞれについての各変数データ群ＣＸ1〜ＣＸ4は、太線によって囲われて示されている。例えば、変数Ｘ1についての時系列に沿った変数データ群ＣＸ1は、データｘ11，ｘ12，ｘ13，およびｘ14などから構成されている。時系列ｔ1のときに取得されたデータは、データｘ11，ｘ21，ｘ31，およびｘ41などである。
【００２４】
図１に示される取得部１１は、記憶部４０に記憶されたデータセット４１を取得する。推定部１４は、データセット４１に含まれる複数の変数データ群ＣＸ1〜ＣＸ4のそれぞれに対して、ＫＰＳＳ検定を用いることによって単位根の存在を推定する。処理部１２は、取得したデータセット４１に含まれる複数の変数データ群ＣＸ1〜ＣＸ4間における相関係数を算出する。本実施形態の処理部１２は、相関係数として、複数の変数データ群ＣＸ1〜ＣＸ4間における相関係数行列を用いて算出する。また、処理部１２は、推定部１４により単位根の存在が推定された変数データ群に対して、相関係数の算出に先立ち、当該変数データ群ＣＸ1〜ＣＸ4に前処理を行う。処理部１２は、前処理として、指定部１４により少なくとも１つの変数データ群に単位根が存在すると推定された場合に、データセット４１に含まれる全ての変数データ群ＣＸ1〜ＣＸ4における経時的なデータの階差を算出する。処理部１２は、算出された階差のデータの集合である処理後変数データ群ＣＸ1’〜ＣＸ4’を用いて相関係数を算出する。
【００２５】
判定部１３は、処理部１２によって算出された相関係数行列を用いて、変数（例えば、変数Ｘ1）に依存する新たに取得したデータの異常判定を行う。判定部１３は、算出された相関係数行列を用いて所定の閾値を設定する。設定された閾値は、記憶部４０に閾値データ４２として記憶される。本実施形態では、判定部１３が、算出された相関係数に対して、下記式（１）に示されるマハラノビス・タグチ法（ＭＴ法）を用いることにより、各変数データ群に含まれる各データの異常度を算出する。
ａ（ｘ’）＝（ｘ’−μ）TΣ-1（Ｘ’−μ）／Ｍ・・・（１）
ｘ’：異常度の判定対象であるデータ
μ：変数データ群の標本平均
Σ：変数データ群の分散共分散行列
判定部１３は、ＭＴ法により算出された異常度を用いて、異常検出時に用いる閾値を決定する。判定部１３は、判定対象のデータｘ’と、閾値とを比較することによって、データｘ’が異常であるか否かを判定する。具体的には、データｘ’が閾値以上の場合に異常であると判定され、データｘ’が閾値未満の場合に正常であると判定される。なお、データｘ’は、異常検出時において新たに取得されたデータとも換言できる。
【００２６】
ここで、本実施形態では、複数の変数データ群ＣＸ1〜ＣＸ4の一例として、４つの変数Ｘ1，Ｘ2，Ｘ3，Ｘ4についての複数のデータ（各１０００個）を学習データとして下記のように定義し、異常判定に用いられる閾値が設定される。
Ｘ1についてのデータｘ1t+1＝ｘ1t＋ε1，ε1〜Ｎ（０，１）
Ｘ2についてのデータｘ2t+1＝ｘ2t＋ε2，ε2〜Ｎ（０，１）
Ｘ3についてのデータｘ3t＝ε3，ε3〜Ｎ（０，１）
Ｘ4についてのデータｘ4t＝ｓｃａｌｅ（Ｘ3t＋ε4），ε4〜Ｎ（０，１）
ε1，ε2，ε3，ε4：平均０，分散１の正規分布からランダムに得られた値（各変数のデータを生成するために用いる正規分布は全て独立）
以上の定義から、変数Ｘ1，Ｘ2についての各データｘ1t，ｘ2tは、平均０，分散１の正規分布からランダムに得られた累積和である。変数Ｘ3についての各データｘ3tは、平均０，分散１の正規分布からランダムに得られた値である。変数Ｘ4についての各データｘ4tは、変数Ｘ3と、平均０，分散１の正規分布からランダムに得られた値の和とを標準化した値である。
【００２７】
変数Ｘ1，Ｘ2についてのデータｘ1t、ｘ2tのそれぞれは、定義からランダムウォークするデータの集まりである。すなわち、変数Ｘ1，Ｘ2についてのそれぞれの変数データ群ＣＸ1，ＣＸ2は、単位根を持つ。そのため、変数データ群ＣＸ1，ＣＸ2間には、見せかけの相関が発生する。一方で、変数Ｘ4は、変数Ｘ3を用いて生成されているため、変数Ｘ3と変数Ｘ4とには依存関係がある（すなわち相関がある）。
【００２８】
図３は、変数データ群ＣＸ1〜ＣＸ4を用いた学習のフローチャートである。図３に示される学習のフローチャート（以下、単に「学習フロー」とも呼ぶ）では、変数データ群ＣＸ1〜ＣＸ4のそれぞれを用いて、判定対象のデータの異常判定を行うための閾値が設定される。学習フローでは、初めに、処理部１２が、記憶部４０からデータセット４１を取得する（ステップＳ１）。処理部１２は、データセット４１に含まれる変数データ群ＣＸ1〜ＣＸ4の内、データの外れ値および欠損値を処理する（ステップＳ２）。処理部１２は、外れ値および欠損値の処理として、平均値の代入など周知の方法を用いればよい。
【００２９】
次に、推定部１４は、変数データ群ＣＸ1〜ＣＸ4の内のいずれかに単位根が存在するか否かを、ＫＰＳＳ検定を用いて判定する（ステップＳ３）。上記で定義した変数Ｘ1のＫＰＳＳ検定の統計量は８．３７であり、変数Ｘ2のＫＰＳＳ検定の統計量は２．４１であった。この２つの統計量は、有意水準５パーセント（％）の棄却点である０．４６３よりも大きいため、推定部１４は、変数データ群ＣＸ1，ＣＸ2のそれぞれに単位根が存在すると推定する。一方で、変数Ｘ3および変数Ｘ4のＫＰＳＳ検定の統計量は、０．１５８３である。変数Ｘ3，Ｘ4の統計量は、有意水準５％の棄却点である０．４６３よりも小さいため、推定部１４は、変数データ群ＣＸ3，ＣＸ4のそれぞれに単位根が存在しないと判定する。変数データ群ＣＸ1〜ＣＸ4の内の変数データ群ＣＸ1，ＣＸ2に単位根が存在するため、次のステップＳ５の処理が行われる。なお、変数データ群ＣＸ1〜ＣＸ4の内のいずれにも単位根が存在しないと判定されると、後述のステップＳ６の処理が実行される。
【００３０】
ステップＳ４の処理において、変数データ群ＣＸ1〜ＣＸ4の内の変数データ群ＣＸ1，ＣＸ2に単位根が存在すると判定されると（ステップＳ４：ＹＥＳ）、処理部１２は、全ての変数データ群ＣＸ1〜ＣＸ4における経時的な各データの階差を取った処理後変数データ群ＣＸ1’〜ＣＸ4’を算出する（ステップＳ５）。処理後変数データ群ＣＸ1’〜ＣＸ4’のそれぞれは、下記式（２）〜（５）で定義される各データを含んでいる。
ｘ1t’＝ｘ1t+1−ｘ1t・・・（２）
ｘ2t’＝ｘ2t+1−ｘ2t・・・（３）
ｘ3t’＝ｘ3t+1−ｘ3t・・・（４）
ｘ4t’＝ｘ4t+1−ｘ4t・・・（５）
【００３１】
次に、処理部１２は、処理後変数データ群ＣＸ1’〜ＣＸ4’のそれぞれの相関係数行列を算出する（ステップＳ６）。図４は、学習フローによって算出された各データ群ＣＸ1’〜ＣＸ4’間の相関係数行列および散布図の一例を表す概略図である。図４には、左下に散布図が示され、右上に相関係数が示されている。また、散布図の中には、相関係数を表す実線が示されている。図４に示されるように、単位根が存在する処理後変数データ群ＣＸ1’，ＣＸ2’間における相関係数は、０．０１である。一方で、変数データ群ＣＸ3’，ＣＸ4’間における相関係数は、０．７０である。すなわち、変数Ｘ1と変数Ｘ2との相関はなく、変数Ｘ3と変数Ｘ4との相関があり、上記の定義に沿った相関結果が得られた。なお、相関係数行列は、標本分散共分散行列を標準化した行列であるため、これらの行列は同じ指標と考えてよい。
【００３２】
図３のステップＳ６の処理が行われると、判定部１３は、処理後変数データ群ＣＸ1’〜ＣＸ4’のそれぞれに対してマハラビノス・タグチ法を用いて異常度を算出する（ステップＳ７）。図５は、異常度についてのグラフである。図５には、処理後変数データ群ＣＸ1’〜ＣＸ4’に含まれる全データから算出された異常度が示されている。図５のグラフの横軸は、時系列に沿って各データに付したデータ番号である。図３のステップＳ７の処理が行われると、判定部１３は、判定対象のデータの異常判定を行うための閾値を設定し（ステップＳ８）、学習フローが終了する。
【００３３】
図５に示される例では、例えば、異常度の閾値を４に設定すると、１０００個のデータの内の４個が異常として判定される。一方で、異常度の閾値を６に設定すると、学習データとしての１０００個のデータから異常と判定されるデータは存在しなくなる。本実施形態では、設定された閾値が４の場合について説明する。なお、閾値の設定については、用途に応じて自由に設定されてよい。また、閾値の設定方法は、ユーザ入力による設定であってもよいし、異常度の分布から周知の方法による設定であってもよい。
【００３４】
図６は、変数Ｘ1〜Ｘ4に依存する判定対象のデータの異常検出を行うフローチャートである。図６に示された異常検出のフローチャート（以下、単に「検出フロー」とも呼ぶ）では、異常検出装置１が学習フローで設定された閾値を用いて、判定対象のデータが異常であるか否かを判定する。なお、検出フローでは、判定対象のデータの一例として、変数Ｘ1〜Ｘ4のそれぞれに依存する新たなデータｘ1’〜ｘ4’を用いて説明する。検出フローでは、初めに、取得部１１が、変数Ｘ1〜Ｘ4のそれぞれに依存する判定対象の各データｘ1’〜ｘ4’を取得する（ステップＳ１１）。データｘ1’〜ｘ4’の取得先は、記憶部４０に記憶されたデータから取得してもよいし、異常検出装置１と異なる他の装置から入力されてもよい。ステップＳ１１の処理が行われると、ステップＳ１２，Ｓ１３の処理が行われる。なお、ステップＳ１２，Ｓ１３の処理は、図３のステップＳ５，Ｓ６の処理と同じであるため、ステップＳ１２，Ｓ１３の説明を省略する。
【００３５】
ステップＳ１２，Ｓ１３の処理が行われると、判定部１３は、判定対象のデータｘ1’〜ｘ4’が依存している変数Ｘ1〜Ｘ4の変数データ群ＣＸ1’〜ＣＸ4’の異常度を用いて、データｘ1’〜ｘ4’の異常度を算出する（ステップＳ１４）。判定部１３は、算出されたデータｘ1’〜ｘ4’の異常度が、学習フローによって変数データ群ＣＸ1’〜ＣＸ4’の異常度によって設定された閾値以上であるか否かを判定する（ステップＳ１５）。算出されたデータｘ1’〜ｘ4’の異常度が閾値以上である場合には（ステップＳ１５：ＹＥＳ）、判定部１３は、データｘ1’〜ｘ4’を異常なデータとして検出する（ステップＳ１６）。判定部１３は、異常を検出した場合には、図１に図示されていないモニタに異常検出の画像を表示させ、図１に図示されていないスピーカーに警告音を発生させる。
【００３６】
ここで、変数Ｘ1〜Ｘ4のそれぞれに依存する判定対象のデータとして、下記関係式（６）に示されるデータが入力された場合の異常度は、９．８×１０-5となる。変数Ｘ1〜Ｘ4の各データの平均値は０に近いため、当該異常度は正常値と判定される。
（ｘ1’，ｘ2’，ｘ3’，ｘ4’）＝（０，０，０，０）・・・（６）
別の判定対象のデータとして、下記関係式（７）に示されるデータが入力された場合の異常度は、１．３となる。この異常度は、関係式（６）から算出された異常度よりも大きくなるものの、設定された閾値の４未満であるため、正常値の範囲内である。
（ｘ1’，ｘ2’，ｘ3’，ｘ4’）＝（１，−１，１，−１）・・・（７）
別の判定対象のデータとして、下記関係式（８）に示されるデータが入力された場合の異常度は、２２．９となる。Ｘ4’＝１０は、変数データ群ＣＸ4の分布から外れているため、異常として検出される。
（ｘ1’，ｘ2’，ｘ3’，ｘ4’）＝（１，−１，１，１０）・・・（８）
なお、製造工程の異常検出で本検出フローを用いる場合には、１回の異常検出により工程異常と判断されてもよいし、数回の異常検出により工程異常と判断されてもよい。
【００３７】
ステップＳ１５の処理において算出されたデータｘ1’〜ｘ4’の異常度が閾値未満である場合（ステップＳ１５：ＮＯ）、または、ステップＳ１６の処理後の場合には、判定部１３は、検出フローを終了するか否かを判定する（ステップＳ１７）。例えば、取得部１１により更なる判定対象のデータが取得されない場合には（ステップＳ１７：ＹＥＳ）、判定部１３は検出フローを終了させる。一方で、検出フローを続ける場合には（ステップＳ１７：ＮＯ）、ステップＳ１１以降の処理を実行する。
【００３８】
図７は、比較例における各データ群間ＣＸ1〜ＣＸ4の相対係数行列および散布図の一例を表す概略図である。図７に示される相関係数行列および散布図は、本実施形態で定義されたＸ1〜Ｘ4についての複数の変数データ群ＣＸ1〜ＣＸ4に対して、階差の処理後変数データＣＸ1’〜ＣＸ4’を算出せずに、算出された結果である。そのため、比較例では、本実施形態に基づく実施例（図３）と比較すると、変数データ群ＣＸ1と変数データ群ＣＸ2とにおける相関係数および散布図が大きく異なっている。比較例では、変数Ｘ1と変数Ｘ2との相関係数が０．５２と算出されている。そのため、変数データ群ＣＸ1，ＣＸ2間に、見せかけの相関としての相関関係が存在している。すなわち、実施例では、見せかけの相関が排除され、比較例では、見せかけの相関が排除されていない。
【００３９】
図８は、実施例および比較例の異常度の平均値を表すグラフである。図８に示されるグラフに用いられた判定対象としてのテストデータは、学習データで用いた変数Ｘ1，Ｘ2，Ｘ3，Ｘ4についての複数のデータ（各１０００個）と同じ方法で生成されたデータである。本実施例の学習データと同じように算出されたテストデータの異常度は、図８に示されるように、０．９８となり、学習データの異常度の平均値である１に近い値となった。一方で、見せかけの相関を排除していない比較例で算出されたテストデータの異常度は、図８に示されるように、２．３９となり、異常な傾向があると誤判断されている。すなわち、比較例では、判定対象のデータを過度に異常として検出してしまう。
【００４０】
以上説明したように、本実施形態の異常検出装置１では、処理部１２は、変数Ｘ1，Ｘ2，Ｘ3，Ｘ4の変数データ群ＣＸ1〜ＣＸ4の内の変数データ群ＣＸ1，ＣＸ2に単位根が存在する場合に、変数データ群ＣＸ1〜ＣＸ4間の相関係数の算出に先立ち、変数データ群ＣＸ1〜ＣＸ4に前処理を行う。判定部１３は、前処理後の処理後変数データ群ＣＸ1’〜ＣＸ4’の相関係数を用いて、変数Ｘ1，Ｘ2，Ｘ3，Ｘ4に依存する判定対象のデータｘ1’〜ｘ4’の異常判定を行う。そのため、本実施形態の異常検出装置１は、変数データ群ＣＸ1，ＣＸ2に単位根が存在する場合に、前処理を行うことにより、変数データ群ＣＸ1，ＣＸ2間の見せかけの相関を排除できる。現在のデータと、過去のデータとの依存性を仮定しないシステム（例えば、製造工程の品質チェック）に、この前処理に基づく変数変換処理が組み込まれることにより、新たにこれらのシステムから取得される変数Ｘ1，Ｘ2に依存するデータの異常検出精度が向上する。
【００４１】
また、本実施形態の変数データ群ＣＸ1〜ＣＸ4には、変数データ群ＣＸ1〜ＣＸ4について経時的に取得された複数のデータが含まれている。そのため、本実施形態の異常検出装置１を、現在のデータと、過去のデータとの依存性を仮定しないシステムの異常検出に用いることができる。
【００４２】
また、本実施形態の処理部１２は、単位根が存在する変数データ群ＣＸ1，ＣＸ2に行う前処理として、経時的に取得された複数のデータを算出し、算出された階差のデータの集合である処理後変数データ群ＣＸ1’〜ＣＸ4’を用いて相関係数を算出する。そのため、経時的に取得されたデータに発生する見せかけの相関を排除できる。
【００４３】
また、本実施形態の異常検出装置１では、推定部１４が、変数データ群ＣＸ1〜ＣＸ4のそれぞれに対して、単位根検定を用いて単位根の存在を推定する。そのため、本実施形態の異常検出装置１は、単位根が存在する変数データ群ＣＸ1，ＣＸ2を特定でき、変数データ群ＣＸ1，ＣＸ2間における見せかけの相関を排除できる。
【００４４】
また、本実施形態の処理部１２は、変数データ群ＣＸ1〜ＣＸ4の内に１つでも単位根が存在する場合に、全ての変数データ群に対して処理後変数データ群ＣＸ1’〜ＣＸ4’を算出する。そのため、処理後変数データ群ＣＸ1’〜ＣＸ4’を用いて算出される相関係数の精度が向上する。その結果、判定部１３による異常判定の精度が向上する。
【００４５】
＜本実施形態の変形例＞
本発明は上記の実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【００４６】
［変形例１］
上記実施形態の異常検出装置１の構成および異常検出装置１が行う制御については、一例であり、種々変形可能である。異常検出装置１のＣＰＵ１０は、取得部１１、処理部１２、および判定部１３として機能していればよく、推定部１４として機能していなくてもよい。取得部１１が取得する変数データ群ＣＸ1〜Ｃｘ4は、記憶部４０の代わりに他の装置から取得されてもよい。閾値データ４２は、記憶部４０に記憶されておらず、判定部１３が異常検出を行う度に算出してもよいし、その他の記憶装置に記憶されていてもよい。判定対象のデータｘ1’〜ｘ4’の異常が検出された場合に、モニタの画像表示およびスピーカーの警告音出力以外の態様によって、異常検出が報知されてもよい。
【００４７】
上記実施形態では、処理部１２は、相関係数を算出するために相関係数行列を用いたが、その他の算出方法（例えば、分散共分散行列）が用いられてもよい。判定部１３は、ＭＴ法により変数Ｘ1〜Ｘ4の異常度が算出されたが、その他の方法によって異常度を算出してもよい。判定部１３は、例えば、ホテリング理論、カルバックライブラーダイバージェンス、マハラノビス距離、へリンジャー距離、決定木、ランダムフォレスト、およびＸｇｂｏｏｓｔを用いて、異常度を算出してもよい。処理部１２は、検出フローによって異常判定が行われた判定対象のデータｘ1’〜ｘ4’を学習データに追加して、学習データの積み上げを行ってもよい。
【００４８】
上記実施形態では、処理部１２は、変数データ群ＣＸ1，ＣＸ2に単位根が存在する場合に、前処理としての全ての変数データ群ＣＸ1〜Ｃｘ4に対して階差の処理後変数データ群ＣＸ1’〜ＣＸ4’を算出したが、単位根が存在しない変数データ群ＣＸ3，ＣＸ4に対して階差の処理後変数データ群ＣＸ3’，ＣＸ4’を算出しなくてもよい。変形例の処理部１２は、推定部１４により少なくとも１つの変数データ群に単位根が存在すると推定された場合に、データセット４１に含まれる変数データ群の内の少なくとも単位根が存在する変数データ群に対して、処理後変数データ群を算出する前処理を行う。すなわち、変形例の処理部１２は、データセット４１に含まれるいずれかの変数データ群に単位根が存在する場合には、前処理を行った複数の処理後変数データ群と、単位根が存在しない変数データ群とにおける相関係数行列を算出する。
【００４９】
［変形例２］
図９は、変形例における異常検出方法を示すフローチャートである。上記実施形態では、異常検出装置１は、判定対象のデータの異常判定を行うために、学習フロー（図３）と、検出フロー（図６）とを個別に実施していたが、図９に示されるフローによって判定対象のデータの異常を検出してもよい。変形例の異常検出方法では、初めに、取得部１１がデータセット４１を取得するデータ取得工程を実施する（ステップＳ２１）。処理部１２は、データセット４１に含まれる変数Ｘ1〜Ｘ4に依存する変数データ群ＣＸ1〜ＣＸ4間における相関係数を算出するデータ処理工程を実施する（ステップＳ２２）。データ処理工程では、処理部１２は、変数データ群ＣＸ1〜ＣＸ4の内の少なくとも１つに単位根が存在する場合に、全ての変数データ群ＣＸ1〜ＣＸ4に、相関係数を算出する前に例えば階差の算出などの前処理を行う。なお、前処理は階差の算出でなくてもよいし、前処理を行われる変数データ群は、少なくとも単位根が存在する変数データ群ＣＸ1，ＣＸ2であってもよい。データ処理工程後に、判定部１３は、算出された相関係数を用いて、新たに取得された変数Ｘ1〜Ｘ4に依存するデータの異常判定を行う判定工程を実施し（ステップＳ２３）、異常検出方法が終了する。
【００５０】
以上、実施形態、変形例に基づき本態様について説明してきたが、上記した態様の実施の形態は、本態様の理解を容易にするためのものであり、本態様を限定するものではない。本態様は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本態様にはその等価物が含まれる。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することができる。
【符号の説明】
【００５１】
１…異常検出装置
１０…ＣＰＵ
１１…取得部（データ取得部）
１２…処理部（データ処理部）
１３…判定部
１４…推定部
２０…ＲＯＭ
３０…ＲＡＭ
４０…記憶部
４１…データセット
４２…閾値データ
ＣＸ1〜ＣＸ4…変数データ群
ＣＸ1’〜ＣＸ4’…処理後変数データ群
Ｘ1〜Ｘ4…変数
ｘ11，ｘ21，ｘ31，ｘ41，ｘ1t，ｘ2t…データ
ｘ’，ｘ1’〜ｘ4’…判定対象のデータ（新たに取得されたデータ）
【図１】
2020181443.tif 000003
【図２】
2020181443.tif 000004
【図３】
2020181443.tif 000005
【図４】
2020181443.tif 000006
【図５】
2020181443.tif 000007
【図６】
2020181443.tif 000008
【図７】
2020181443.tif 000009
【図８】
2020181443.tif 000010
【図９】
2020181443.tif 000011