(57)【要約】      （修正有）【課題】システムの異常の原因を迅速かつ高い確度で推定する監視システムを提供する。【解決手段】監視システムは、監視対象システムの検査データ１７０に含まれる測定データと監視対象システムの因果構造モデルＳ１１とに基づき、監視対象システムの監視対象目的変数の推定値を決定する目的変数値推定部Ｓ１２と、検査データに含まれる監視対象目的変数の測定値と推定値との比較結果に基づき、監視対象システムにおいて異常が発生しているか判定する判定部Ｓ１３と、を含む。【選択図】図１
2020052714.tif 000002
【特許請求の範囲】
【請求項１】
監視対象システムを監視する監視システムであって、
前記監視対象システムの検査データに含まれる測定データと前記監視対象システムの因果構造モデルとに基づき、前記監視対象システムの監視対象目的変数の推定値を決定する、目的変数値推定部と、
前記検査データに含まれる前記監視対象目的変数の測定値と前記推定値との比較結果に基づき、前記監視対象システムにおいて異常が発生しているか判定する、判定部と、を含む監視システム。
【請求項２】
請求項１に記載の監視システムであって、
前記因果構造モデルは、前記測定データに対応する下層ノードと、前記下層ノードより上層における前記監視対象目的変数に対応する監視対象目的変数ノードと、前記下層ノードと前記監視対象目的変数ノードとの間の中間ノードと、を含み、
前記目的変数値推定部は、前記下層ノードに前記測定データを入力して得られる前記監視対象目的変数ノードの値を、前記推定値と決定する、監視システム。
【請求項３】
請求項１に記載の監視システムであって、
前記監視対象システムの測定データを含む学習データに基づき前記因果構造モデルを推定する、因果構造モデル推定部をさらに含む、監視システム。
【請求項４】
請求項２に記載の監視システムであって、
前記判定部は、
前記因果構造モデルにおいて、前記監視対象目的変数のノードからエッジに沿って異常原因ノード候補の探索を行い、
前記探索において、異常判定ノード候補と判定されたノードを目的変数ノードとする説明変数ノードそれぞれが、異常判定ノード候補であるか判定する、監視システム。
【請求項５】
請求項２に記載の監視システムであって、
前記判定部は、前記推定値を決定するための前記検査データに含まれるに前記中間ノードの測定値と、前記中間ノードの過去の測定値から得られる値との間の乖離に基づき、前記中間ノードが異常原因ノード候補であるか判定する、監視システム。
【請求項６】
請求項２に記載の監視システムであって、
前記判定部は、前記推定値を決定するための前記検査データに含まれるに前記中間ノードの測定値と、前記測定データを前記下層ノードに入力して得られる前記中間ノードの推定値との間の乖離に基づき、前記中間ノードが異常原因ノード候補であるか判定する、監視システム。
【請求項７】
請求項５又は６に記載の監視システムであって、
前記判定部は、前記推定値を決定するための前記検査データに含まれるに前記下層ノードの測定値と、前記下層ノードの過去の測定値から得られる値との間の乖離に基づき、前記下層ノードが異常原因ノード候補であるか判定する、監視システム。
【請求項８】
請求項５、６又は７に記載の監視システムであって、
前記判定部は、前記乖離が最も大きいノードを異常原因ノード候補と判定する、監視システム。
【請求項９】
請求項３に記載の監視システムであって、
前記因果構造モデル推定部は、
前記監視対象システムと異なる第２システムの第２因果構造モデルの学習期間を、前記第２因果構造モデルの成長度に基づき決定し、
前記学習期間に基づき、前記監視対象システムの前記因果構造モデルを推定するための使用する学習データを選択する、監視システム。
【請求項１０】
請求項１に記載の監視システムであって、
前記判定部は、
前記監視対象目的変数の測定値と前記推定値との間の乖離と閾値との比較結果に基づき、前記監視対象システムにおいて異常が発生しているか判定し、
前記乖離が前記閾値より大きく、前記監視システムの保守が実行されない場合、前記閾値を前記乖離に基づき変更する、監視システム。
【請求項１１】
請求項１に記載の監視システムであって、
前記検査データは、前記監視対象システムの運用状態を示し、
前記因果構造モデルは前記運用状態に対応する因果構造モデルである、監視システム。
【請求項１２】
請求項２に記載の監視システムであって、
前記目的変数値推定部は、第２因果構造モデルによって、未来における特定時刻における前記監視対象目的変数の予測値を決定し、
前記第２因果構造モデルは、時間の関数で表わされる時間関数ノードと、前記時間関数ノードより上層における前記監視対象目的変数に対応する第２監視対象目的変数ノードと、前記時間関数ノードと前記第２監視対象目的変数ノードとの間の第２中間ノードと、を含み、
前記目的変数値推定部は、前記時間関数ノードに前記特定時刻を入力して得られる前記第２監視対象目的変数ノードの値を前記予測値と決定する、監視システム。
【請求項１３】
請求項１に記載の監視システムであって、
監視画像を表示する表示デバイスをさらに含み、
前記表示デバイスにおいて、前記監視対象目的変数の測定値の履歴及び推定値の履歴、並びに、前記因果構造モデルにおける異常原因ノード候補を表示する、監視システム。
【請求項１４】
監視システムが監視対象システムを監視する方法であって、
前記監視システムが、前記監視対象システムの検査データに含まれる測定データと前記監視対象システムの因果構造モデルとに基づき、前記監視対象システムの監視対象目的変数の推定値を決定し、
前記監視システムが、前記検査データに含まれる前記監視対象目的変数の測定値と前記推定値との比較結果に基づき、前記監視対象システムにおいて異常が発生しているか判定する、ことを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視システム及び監視方法に関する。
【背景技術】
【０００２】
鉄道、上下水道、都市交通といった社会インフラの業務管理システムは、複数のサブシステムで構成される。例えば、鉄道の業務管理システムは１００以上のサブシステムで構成されている。こうした社会インフラには、継続的な業務改善が求められる。例えば、鉄道の保守に着目すると、設備の老朽化に伴って保守費用が増加傾向にある一方で、人口減少による輸送収入の減少が予想されている。そのため、輸送の安全性を損なうことなく保守費用を低減する、業務改善の施策立案が求められている。
【０００３】
保守費用を削減するために、予測保守が最善の解決策の１つである。予測保守の最も重要な機能は、エラーのどのような原因がどこで起き、問題の発生を防ぐために可能な解決策は何か、を推定することである。
【０００４】
システムの因果関係を推定する１つの方法が。例えば、特許文献１に開示されている。あるいは、エラーと実行中のログの因果関係を推定するためのもう１つの解決策は、特許文献２に開示されている。また、深層学習により潜在的な問題を予測する手法が、特許文献３に開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開２０１０／０８２３２２号
【特許文献２】特開２０１６−０４５５５６号公報
【特許文献３】特開平９−２６９２１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
システムの異常に対して適切かつ迅速に対応するためには、その原因を迅速かつ高い確度で推定することが重要である。しかし、従来の統計及び機械学習技術は、原因を迅速かつ的確に突き止めるのが困難である。
【課題を解決するための手段】
【０００７】
本発明の一態様は、監視対象システムを監視する監視システムであって、前記監視対象システムの検査データに含まれる測定データと前記監視対象システムの因果構造モデルとに基づき、前記監視対象システムの監視対象目的変数の推定値を決定する、目的変数値推定部と、前記検査データに含まれる前記監視対象目的変数の測定値と前記推定値との比較結果に基づき、前記監視対象システムにおいて異常が発生しているか判定する、判定部と、を含む。
【発明の効果】
【０００８】
本発明の一態様は、システムの異常の原因を迅速かつ高い確度で推定することができる。
【図面の簡単な説明】
【０００９】
【図１】本開示の遠隔監視システムによる処理の概要を模式的に示す。
【図２】遠隔監視システムの構成例を示す。
【図３】計算機のハードウェア構成例を模式的に示す。
【図４】因果構造モデル推定装置のソフトウェア構成例を示す。
【図５】モデル管理装置のソフトウェア構成例を示す。
【図６】検査データ乖離判定装置のソフトウェア構成例を示す。
【図７】検査データデータベースの構成例を示す。
【図８】目的変数値推定プログラムによる処理のフローチャートである。
【図９】乖離判定プログラムによる処理のフローチャートである。
【図１０】監視対象の監視画像の例を示す。
【図１１】監視画像においてモデルチェックボタンがユーザにより選択された場合の画像例を示す。
【図１２】監視画像においてボタンがユーザにより選択された場合の画像例を示す。
【図１３】異常の原因のノードを推定する方法例を模式的に示す。
【図１４】異常原因ノード推定方法のフローチャートである。
【図１５】異常の原因のノードを推定する方法例を模式的に示す。
【図１６】異常原因ノード推定方法のフローチャートである。
【図１７】因果構造モデル推定プログラムによる因果構造モデルの推定のフローチャートである。
【図１８】学習の進行に伴い、推定される因果構造モデルのノード数が増加する様子を示す。
【図１９】因果構造モデル推定プログラムが学習期間を決定する処理のフローチャートを示す。
【図２０】閾値設定方法の概要を説明するための、推定精度の時間変化と閾値との関係を示すグラフである。
【図２１】乖離判定プログラムによる初期閾値設定のフローチャートを示す。
【図２２】乖離判定プログラムによる閾値更新のフローチャートを示す。
【図２３】監視対象システムの運用状態毎の因果構造モデルの推定を説明する図である。
【図２４】学習データデータベースの構成例を示す。
【図２５】運用状態の学習データを示す。
【図２６】運用状態変化と推定精度の関係を模式的に示す。
【図２７】監視対象の目的変数の時間変化を予測可能な因果構造モデルを推定するための学習データを格納する学習データデータベースの構成例を示す。
【図２８】監視対象の目的変数の時間変化を予測可能な因果構造モデルの例を示す。
【図２９】因果構造モデルによる目的変数の予測値の表示例を示す。
【図３０】監視画像例を示す。
【図３１】警告メッセージの例を示す。
【図３２】保守記録の入力画像を示す。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施例について説明する。添付図面では、機能的に同じ要素は同じ番号で表示されている。なお、添付図面は本発明の原理に則った具体的な実施例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
【００１１】
［実施形態の概要］
図１は本開示の遠隔監視システムによる処理の概要を模式的に示す。遠隔監視システムは、学習データ１５０から因果構造モデル２１５を推定する（Ｓ１１）。因果構造モデル２１５は、監視対象システムについてのデータ間の因果関係を示す有指向グラフ構造を有するモデルである。因果構造モデル２１５は、因果図（Ｃａｕｓａｌ  Ｌｏｏｐ  Ｄｉａｇｒａｍ：ＣＬＤ）で表わすことができる。因果構造モデル２１５をＣＬＤモデルとも呼ぶ。
【００１２】
因果構造モデル２１５において、エッジの指向元ノードが原因ノード（説明変数ノード）であり、エッジの指向先ノードが結果ノード（目的変数ノード）である。原因ノードは目的変数を表し、原因ノードは説明変数を表す。結果ノードの変数は、原因ノードの変数の回帰式で表わされる。回帰式の各項は、線形（１次）又は非線形（１次より大きい）である。説明変数がＸ１、Ｘ２、Ｘ３である場合、目的変数Ｙは、例えば、ａＸ１＊Ｘ２＋ｂＸ１＊Ｘ３＋ｃＸ２＊Ｘ３、または、ａＸ１＋ｂｘ２＋ｃＸ３２等の式で表わされる。ａ、ｂ、ｃは係数である。
【００１３】
因果構造モデル２１５は階層構造を有している。上層の結果ノード（目的変数）の原因ノード（説明変数）は、さらに下層の原因ノード（説明変数）の結果ノード（目的変数）である。因果構造モデル２１５において、有指向エッジに従ってノードを辿ったトップノード２１６は、監視対象目的変数を示す。
【００１４】
遠隔監視システムは、監視対象システムの検査データ１７０を、推定（生成した）因果構造モデル２１５に入力し、監視対象目的変数の推定値を取得する（Ｓ１２）。検査データ１７０は例えばリアルタイムデータであり、監視対象システムの現在の状態及び状況を示すデータを含む。遠隔監視システムは、因果構造モデル２１５による監視対象目的変数の推定値と、検査データ１７０に含まれる監視対象目的変数の実測値とを比較し、それらの乖離度を決定する。遠隔監視システムは、計算された乖離度に基づいて監視対象システムにおいて異常が発生しているか判定する（Ｓ１３）。
【００１５】
監視対象システムにおいて異常が発生していると判定された場合、検査データ１７０が入力された因果構造モデル２１５において、異常の原因とされるノードを探索する。因果構造モデル２１５は、原因と結果の関係を示す有指向グラフ構造を有しており、遠隔監視システムは、異常の潜在的原因を効率的に高い確度で推定することができる。なお、因果構造モデル２１５が予め用意されている場合、因果構造モデルの推定を省略してよい。因果構造モデルを学習データにより推定することで、適切な因果構造モデルを予め用意しておくことが不要となる。
【００１６】
［システム構成］
図２は、遠隔監視システムの構成例を模式的に示す。遠隔監視システムは、因果構造モデル推定装置２１０、モデル管理装置２２０、検査データ乖離判定装置２３０、及びクライアント装置２４０を含み、これらはネットワークを介して互いに通信する。ネットワークは、例えば、ローカルエリアネットワーク（ＬＡＮ）又はワイドエリアネットワーク（ＷＡＮ）である。
【００１７】
因果構造モデル推定装置２１０、モデル管理装置２２０、検査データ乖離判定装置２３０、及びクライアント装置２４０は、それぞれ、例えば、１以上の計算機で構成ことができる。また、これらの内に複数の装置が一つの計算機により実現されてもよい。
【００１８】
図３は、計算機のハードウェア構成例を模式的に示す。計算機は、プロセッサ３１１、メモリ３１２、補助記憶装置３１３、ネットワークインタフェース３１４、入出力インタフェース３１５、入力デバイス３１６、及び出力デバイス３１７を含む。これら構成要素は、バスによって互いに接続されている。メモリ３１２、補助記憶装置３１３又はこれらの組み合わせは記憶装置であり、ソフトウェアを格納する記憶媒体を含む。
【００１９】
メモリ３１２は、例えば半導体メモリから構成され、主にプログラムやデータを一時的に保持するために利用される。プロセッサ３１１は、メモリ３１２に格納されているプログラムに従って、様々な処理を実行する。プロセッサ３１１がプログラムに従って動作することで、様々な機能部が実現される。補助記憶装置３１３は、例えばハードディスクドライブやソリッドステートドライブなどの大容量の記憶装置から構成され、プログラムやデータを長期間保持するために利用される。
【００２０】
補助記憶装置３１３に格納されたプログラム及びデータが起動時又は必要時にメモリ３１２にロードされ、プログラムをプロセッサ３１１が実行することにより、遠隔監視システムの各種処理が実行される。したがって、以下においてプログラムにより実行される処理は、プロセッサ３１１又は当該プロセッサを含む装置による処理である。
【００２１】
ネットワーク（ＮＷ）インタフェース３１４は、ネットワークとの接続のためのインタフェースであり、計算機は、ネットワークインタフェース３１４及びネットワークを介して他の装置と通信する。入力デバイス３１６及び出力デバイス３１７は、ユーザに情報を提示し、また、ユーザが必要な情報を入力するために使用される。入力デバイス３１６の例は、キーボード、マウス、及びタッチセンサであり、出力デバイスの例は、ディスプレイ、プリンタ及びスピーカである。入力デバイス３１６及び出力デバイス３１７は、入出力インタフェース３１５を介して、計算機の他の構成要素と通信する。
【００２２】
例えば、補助記憶装置３１３は省略されていてもよい。入出力インタフェース３１５、入力デバイス３１６、及び出力デバイス３１７は、一部の装置において省略されていてもよい。全ての装置の機能が一つの計算機に実装される場合、ネットワークインタフェース３１４は省略されてもよい。各装置の少なくとも一部の機能は、プロセッサと異なるロジック回路により実現されてもよい。
【００２３】
図４は、因果構造モデル推定装置２１０のソフトウェア構成例を示す。因果構造モデル推定装置２１０は、因果構造モデル推定プログラム２１１をメモリ３１２に格納し、学習データデータベース（ＤＢ）２１２を補助記憶装置３１３に格納している。学習データデータベース２１２は、因果構造モデルを推定（生成）するための、学習データを格納している。
【００２４】
図５は、モデル管理装置２２０のソフトウェア構成例を示す。モデル管理装置２２０は、モデル管理プログラム２２１をメモリ３１２に格納し、モデルデータベース２２２を補助記憶装置３１３に格納している。モデルデータベース２２２は、因果構造モデル推定装置２１０により推定された因果構造モデルを格納している。後述するように、モデルデータベース２２２は、監視対象システムの異なる複数の運用状態の因果構造モデルを格納している。
【００２５】
図６は、検査データ乖離判定装置２３０のソフトウェア構成例を示す。検査データ乖離判定装置２３０は、目的変数値推定プログラム２３１及び乖離判定プログラム２３２をメモリ３１２に格納し、検査データデータベース２３３を補助記憶装置３１３に格納している。検査データデータベース２３３は、監視対象システムの異常判定のための検査データを格納している。
【００２６】
上述のように、プロセッサ３１１は、プログラムに従って機能部として動作する。例えば、プロセッサ３１１は、因果構造モデル推定装置２１０において因果構造モデル推定部として機能し、モデル管理装置２２０においてモデル管理部として機能する。また、プロセッサ３１１は、検査データ乖離判定装置２３０において、目的変数値推定部及び乖離判定部として機能する。
【００２７】
なお、図４、５及び６において、便宜上、プログラムがメモリ３１２に格納され、データベースが補助記憶装置３１３に格納されているが、一般に、計算機のデータ（プログラムを含む）は補助記憶装置３１３に格納され、プロセッサ３１１により処理されるデータが、補助記憶装置３１３からメモリ３１２にロードされる。また、メモリ３１２上で更新されたデータは、補助記憶装置３１３に格納される。なお、クライアント装置２４０においては、ユーザインタフェースプログラムが実行される。
【００２８】
［因果構造モデルを使用した正常／異常判定］
次に、検査データ乖離判定装置２３０の目的変数値推定プログラム２３１により実行される処理を説明する。目的変数値推定プログラム２３１は、因果構造モデルによって、検査データから、監視対象目的変数値を推定する。
【００２９】
図７は、検査データデータベース２３３の構成例を示す。図７は、検査データデータベース２３３における、一つの検査データレコード１７１を示す。遠隔監視システムは、監視対象システムをモニタリングしており、定期的に、検査データレコード１７１を検査データデータベース２３３に追加する。検査データレコード１７１は、監視対象システムの状態の情報、及び、センサにより測定されたデータから得られる値（測定値）を含む。
【００３０】
検査データデータベース２３３は、時刻欄１７２、監視対象システムの状態（運用状態）を示す欄１７３、及び、測定データの欄１７４を含む。例えば、監視対象システムがエアーコンディショナであるとする。時刻欄１７２は、検査データレコードのデータを取得した時刻を示す。図７の例において、日付は省略されている。
【００３１】
運用状態を示す欄１７３は、それぞれ、エアーコンディショナの設定の要素を示す。例えば、運用状態を示す欄１７３は、電源のＯＮ／ＯＦＦの欄、冷房や暖房などの動作モードの欄、風速の欄、上下の風向きの欄等を含む。測定データの欄１７４は、例えば、エアーコンディショナが設置されている部屋の室温の欄、エアーコンディショナに吸入される空気の温度の欄、エアーコンディショナから排出される空気の温度の欄等を含む。
【００３２】
後述するように、学習データデータベース２１２の欄は、検査データデータベース２３３の全ての欄を含む。因果構造モデルのノードは、それぞれ、監視対象システムについて測定データの値を示す。因果構造モデル２１５は、監視対象システムについての測定データ間の因果関係を示す。
【００３３】
図８は、目的変数値推定プログラム２３１による処理のフローチャートである。目的変数値推定プログラム２３１は、検査データレコード１７１から、因果構造モデル２１５によって、監視対象目的変数の推定値を計算する。エアーコンディショナの例において、その目的変数、つまり、因果構造モデル２１５のトップノード２１６は、例えば、エアーコンディショナが設置されている部屋の室温である。
【００３４】
目的変数値推定プログラム２３１は、検査データデータベース２３３から、検査データレコード１７１を取得する（Ｓ１０１）。目的変数値推定プログラム２３１は、例えば、新たな検査データレコード１７１が検査データデータベース２３３に追加されると、本処理を開始する。その場合、目的変数値推定プログラム２３１は、追加された検査データレコード１７１を検査データデータベース２３３から取得する。
【００３５】
目的変数値推定プログラム２３１は、検査データレコード１７１の運用状態を特定する（Ｓ１０２）。具体的には、目的変数値推定プログラム２３１は、検査データレコード１７１の運用状態を示す欄１７３の値を取得する。監視対象システムの運用状態は、運用状態を示す欄１７３の値の組（ベクトル）で表わされる。運用状態を示す欄１７３における一つの欄の値でも異なる場合、運用状態は異なる。
【００３６】
目的変数値推定プログラム２３１は、モデルデータベース２２２において、検査レコードの運用状態とマッチする因果構造モデルを検索する（Ｓ１０３）。具体的には、目的変数値推定プログラム２３１は、運用状態を指定して、因果構造モデルの検索をモデル管理装置２２０に依頼する。モデル管理プログラム２２１は、指定された運用状態と同一の運用状態の因果構造モデルを、モデルデータベース２２２において検索する。後述するように、モデルデータベース２２２は、異なる複数の運用状態に対応する因果構造モデルを格納している。運用状態それぞれに対応した因果構造モデルを用意することで、より適切な正常／異常判定及び異常原因の推定が可能となる。
【００３７】
モデル管理プログラム２２１は、指定された運用状態と一致する因果構造モデルが存在しない場合、それを示す返答を因果構造モデル推定装置２１０に送信する。指定された運用状態と一致する因果構造モデルが存在する場合、モデル管理プログラム２２１は、その因果構造モデルを因果構造モデル推定装置２１０に送信する。
【００３８】
検査データレコード１７１とマッチする因果構造モデルが存在しない場合（Ｓ１０４：ＮＯ）、目的変数値推定プログラム２３１は、検査データレコードに対応する因果構造モデルが存在しないことを示す警告を、クライアント装置２４０において表示する（Ｓ１０５）。具体的には、目的変数値推定プログラム２３１は、上記表示の画像データをクライアント装置２４０に送信する。クライアント装置２４０は、その表示デバイスにおいて、上記画像を表示する。
【００３９】
なお、検査データレコード１７１とマッチする因果構造モデルとは、それらの運用状態ベクトルが完全一致でなくともよい。例えば、運用状態の類似度が所定値より高く、最も類似度が高い因果構造モデルを、検査データレコードにマッチする因果構造モデルと決定してもよい。類似度の計算方法は任意であり、例えば、コサイン類似度を使用できる。
【００４０】
検査データレコード１７１とマッチする因果構造モデルが存在する場合（Ｓ１０４：ＹＥＳ）、目的変数値推定プログラム２３１は、当該因果構造モデルを取得し、当該因果構造モデルを使用して、検査データレコード１７１から、監視対象目的変数の推定値を計算する（Ｓ１０６）。検査データレコード１７１とマッチする因果構造モデルを使用することで、正確に監視対象目的変数の値を推定することができる。
【００４１】
具体的には、目的変数値推定プログラム２３１は、検査データレコード１７１から、因果構造モデル２１５の最下層のノードに対応する値を抽出する。因果構造モデル２１５の各ノードの値は、検査データレコード１７１に含まれる。目的変数値推定プログラム２３１は、因果構造モデル２１５に従って、最下層のノードの値から、トップのノードの値を計算する。トップのノードの値は、監視対象目的変数の推定値である。
【００４２】
目的変数値推定プログラム２３１は、計算した推定値を、メモリ３１２に出力する（Ｓ１０７）。また、目的変数値推定プログラム２３１は、推定値をクライアント装置２４０に送信する。クライアント装置２４０は、その表示デバイスにおいて、推定値を表示する。
【００４３】
目的変数値推定プログラム２３１は、計算した推定値、並びに、推定値の計算に使用した検査データレコード１７１及び因果構造モデル２１５を特定する情報を、履歴情報として、補助記憶装置３１３に格納する。検査データレコード１７１及び因果構造モデル２１５の情報は、それらを特定する情報により、検査データデータベース２２３及びモデルデータベース２２２からそれぞれ取得できる。
【００４４】
図９は、乖離判定プログラム２３２による処理のフローチャートである。乖離判定プログラム２３２は、目的変数値推定プログラム２３１が計算した目的変数の推定値と、検査データレコード１７１に含まれる目的変数の実測値の乖離度を計算し、その乖離度に基づいて、監視対象システムにおける異常の有無を推定する。エアーコンディショナの例において、例えば、乖離判定プログラム２３２は、室内温度の推定値と実測値との間の乖離度を計算する。
【００４５】
図９を参照して、乖離判定プログラム２３２は、検査データレコード１７１から目的変数の実測値を取得する（Ｓ１３１）。乖離判定プログラム２３２は、その実測値と、目的変数値推定プログラム２３１が計算した目的変数の推定値と、を比較し（Ｓ１３２）、推定精度を計算する（Ｓ１３３）。推定精度は乖離度の例であり、例えば、（１−｜実測値−推定値｜／実測値）で計算される。
【００４６】
乖離判定プログラム２３２は、計算した推定精度と所定の閾値とを比較する（Ｓ１３４）。推定精度が閾値以上である場合（Ｓ１３４：ＮＯ）、乖離判定プログラム２３２は、検査データレコード１７１（監視対象システム）は正常であり、異常がないと判定する（Ｓ１３５）。
【００４７】
推定精度が閾値より小さい場合（Ｓ１３４：ＹＥＳ）、乖離判定プログラム２３２は、検査データレコード１７１（監視対象システム）において異常が存在すると判定し、検査データレコードが異常であることを警告する（Ｓ１３６）。具体的には、乖離判定プログラム２３２は、監視対象システムに異常があることを示す警告をクラインと装置２４０に送信する。クライアント装置２４０は、その警告を表示デバイスにおいて表示する。
【００４８】
乖離判定プログラム２３２は、計算した推定精度、正常／異常判定結果、及び検査データレコード１７１を同定する情報を、履歴情報として補助記憶装置３１３に格納する。検査データレコード１７１は、それを同定する情報を使用して、検査データデータベース２２３から取得できる。
【００４９】
検査データレコード１７１において異常があると判定された場合、乖離判定プログラム２３２は、因果構造モデル２１５において、異常の原因を推定（探索）する（Ｓ１３７）。異常原因の推定の詳細は後述する。
【００５０】
上述のように、検査データ乖離判定装置２３０は、因果構造モデル２１５の最下層のノードに検査データレコードの測定値を入力し、上層の複数層のノード（中間ノード）の推定値を因果構造モデル２１５において順次計算する。検査データ乖離判定装置２３０は、最終的に得られるトップノードの値（目的変数の値）と検査データレコードの実測値との乖離に基づいて、異常が発生しているか判定する。
【００５１】
階層構造を有する因果構造モデルにおいて、階層的にノードの値を推定することで、異常を迅速に発見することができる。具体的には、因果構造モデル２１５における階層的推定において、何れかのノードの異常は、上層に伝播する。したがって、因果構造モデル２１５において、複数層に渡って推定値の計算を行うことで、推定値の異常（実測値からの乖離）が増大する。これにより、より早く監視対象システムにおける異常を検出することが可能である。
【００５２】
なお、検査データレコードの値は、因果構造モデル２１５における最下層と異なる層のノードに入力されてもよい。監視対象目的変数のノードと検査データを入力するノードとの間に１又は複数の中間ノードが存在する場合、異常の早期検出が可能となる。監視対象目的変数のノードは、モデルデータベース２２２に格納されている因果構造モデルにおける、中間ノードであってもよい。つまり、監視対象目的変数のノードから上層ノードに向かうエッジが存在してもよい。推定値の計算においては、監視対象目的変数のノードが、トップノードとして扱われる。
【００５３】
図１０、１１及び１２は、クライアント装置２４０が表示するグラフィカルユーザインタフェース（ＧＵＩ）画像の例を示す。図１０は、監視対象の監視画像４００の例を示す。監視画像４００は、検査データレコード１７１の検査結果を示す。具体的には、監視画像４００は、検査データレコードの取得時刻４０１、監視対象の目的変数の実測値４０２、目的変数の推定値４０３、及び正常／異常の判定結果４０４を含む。本例において、目的変数の値は、センサＡにより測定される。判定結果４０４は乖離判定プログラム２３２から通知され、それ以外の情報は目的変数値推定プログラム２３１から送信される。
【００５４】
監視画像４００は、さらに、モデルチェックボタン４０５、実測値及び推定値の履歴を表示するためのボタン４０６、及び、他のセンサデータ（目的変数）の情報を表示させるためのボタン４０７を含む。監視画像４００により、ユーザは、監視対象の正常／異常の情報を含む、監視情報を知ることができる。
【００５５】
図１１は、監視画像４００においてモデルチェックボタン４０５がユーザにより選択された場合の画像例４１０を示す。モデルチェックボタン４０５が選択されると、目的変数の推定値の計算に使用された因果構造モデルが表示される。因果構造モデル推定装置２１０（例えば目的変数値推定プログラム２３１）は、クライアント装置２４０からの要求に応答して、推定値の計算に使用した因果構造モデルの情報をクライアント装置２４０に送信する。
【００５６】
画像４１０において、因果構造モデルは、運用状態１の因果構造モデルである。画像４１０は、因果構造モデルのグラフ画像４１１及びノード間の関係を示す回帰式４１２を含む。ボタン４１３は、他の運用状態のモデルの表示を可能とする。画像４１０により、ユーザは、因果構造モデルをチェックできる。
【００５７】
図１２は、監視画像４００においてボタン４０６がユーザにより選択された場合の画像例４２０を示す。画像４２０は、監視対象の目的変数の実測値、推定値及び推定精度の履歴を示す。これらの情報は、検査データ乖離判定装置２３０から取得される。画像４２０は、実測値、推定値及び推定精度の履歴を示すテーブル４２１、実測値の履歴（時間変化）を示すグラフ４２２、及び、推定値の履歴（時間変化）を示すグラフ４２３を含む。画像４２０により、ユーザは、実測値、推定値及び推定精度の履歴をチェックできる。
【００５８】
次に、因果構造モデル２１５において、異常の原因を推定する処理（Ｓ１３７）を説明する。図１３は、異常の原因のノードを推定する方法例を模式的に示す。本例は、監視対象目的変数のノード２１６からエッジに沿って下層に向かって異常原因のノードを探索する。
【００５９】
具体的には、乖離判定プログラム２３２は、トップノード２１６の直下のノードである原因ノードそれぞれの実測値の（同一運用状態における）前回測定からの変化率（乖離の例）を計算する。乖離判定プログラム２３２は、トップノード２１６の原因ノードにおいて、前回測定からの変化率が閾値を超えるノードを、異常原因ノード候補と決定する。図１３の例において、ノード２１７が異常原因ノード候補である。
【００６０】
乖離判定プログラム２３２は、異常原因ノード候補の原因ノードそれぞれの実測値の変化率を計算する。乖離判定プログラム２３２は、変化率が閾値を超えるノードを、異常原因ノード候補と決定する。図１３の例において、ノード２１８が異常原因ノード候補である。
【００６１】
乖離判定プログラム２３２は、上記処理を、推定値の計算において検査データを入力した層（本例において最下層）まで繰り返す。途中の層において、全ての原因ノードの変化率が閾値以下である場合、新たな異常原因ノード候補の探索は、終了する。乖離判定プログラム２３２は、発見された全ての異常原因ノード候補を、ユーザに提示する。
【００６２】
乖離判定プログラム２３２は、異常原因ノード候補において、その直下のノードが異常原因ノードではないノードを選択して、異常原因ノード候補としてユーザに提示してもよい。乖離判定プログラム２３２は、変化率が最大のノードを選択して、異常原因ノード候補としてユーザに提示してもよい。
【００６３】
図１４は、図１３を参照して説明した異常原因ノード推定方法のフローチャートである。乖離判定プログラム２３２は、因果構造モデル２１５の前回の検査データレコード（測定値）を、検査データデータベース２２３から取得する（Ｓ１５１）。乖離判定プログラム２３２は、前回の検査データレコードにおける測定値と今回の検査データレコードの測定値とを比較して、結果ノードの全ての原因ノードの測定値の変化率を計算する（Ｓ１５２）。最初に選択される結果ノードは、監視対象目的変数のノード２１６である。
【００６４】
乖離判定プログラム２３２は、変化率が閾値を超える全ての原因ノードを異常原因ノード候補として選択する（Ｓ１５３）。閾値はノードに共通又はノード毎に設定されている。乖離判定プログラム２３２は、未選択の異常原因ノード候補を結果ノードとして選択し（Ｓ１５４）、その原因ノードが存在するか判定する（Ｓ１５５）。
【００６５】
原因ノードが存在する場合（Ｓ１５５：ＹＥＳ）、乖離判定プログラム２３２は、選択している結果ノードについて、ステップ１５２及び１５３を実行する。原因ノードが存在していない場合（Ｓ１５５：ＮＯ）、乖離判定プログラム２３２は、未選択の異常原因候補ノードが存在するか判定する（Ｓ１５６）。
【００６６】
未選択の異常原因候補ノードが存在する場合（Ｓ１５６：ＹＥＳ）、乖離判定プログラム２３２は、新たに、未選択の異常原因候補ノードを選択する（Ｓ１５４）。未選択の異常原因候補ノードが存在しない場合（Ｓ１５６：ＮＯ）、乖離判定プログラム２３２は、これまでに選択した異常原因候補ノードを出力する（Ｓ１５７）。例えば、乖離判定プログラム２３２は異常原因候補ノードの情報をクライアント装置２４０に送信し、クライアント装置２４０はその情報を表示する。
【００６７】
異常の原因のノードを推定する他の方法例を説明する。図１５は、異常の原因のノードを推定する方法例を模式的に示す。本例は、監視対象目的変数のノード２１６からエッジに沿って下層に向かって異常原因のノードを探索する。乖離判定プログラム２３２は、ノード２１６の原因ノードにおいて、前回測定からの変化率（乖離の例）が最大のノードを、異常原因ノード候補と決定する。図１５の例において、ノード２１７が異常原因ノード候補である。
【００６８】
乖離判定プログラム２３２は、異常原因ノード候補２１７の原因ノードそれぞれの実測値の変化率を計算する。乖離判定プログラム２３２は、変化率が最大のノードを、異常原因ノード候補と決定する。図１５の例において、ノード２１８が異常原因ノード候補である。
【００６９】
乖離判定プログラム２３２は、上記処理を、推定値の計算において検査データを入力した層（本例において最下層）まで繰り返す。乖離判定プログラム２３２は、発見された全ての異常原因ノード候補において、変化率が最大のノードを最も可能性が高い異常原因ノード候補として選択する。乖離判定プログラム２３２は、選択した異常原因ノード候補を、ユーザに提示する。図１５の例において、ノード２１７が最も可能性が高い異常原因ノード候補である。なお、乖離判定プログラム２３２は、全ての異常原因ノード候補をユーザに提示してもよい。
【００７０】
図１６は、図１５を参照して説明した異常原因ノード推定方法のフローチャートである。乖離判定プログラム２３２は、因果構造モデル２１５の前回の検査データレコード（測定値）を、検査データデータベース２２３から取得する（Ｓ１７１）。乖離判定プログラム２３２は、前回の検査データレコードにおける測定値と今回の検査データレコードの測定値とを比較して、結果ノードの全ての原因ノードの測定値の変化率を計算する（Ｓ１７２）。最初に選択される結果ノードは、監視対象目的変数のノード２１６である。
【００７１】
乖離判定プログラム２３２は、変化率が最大の原因ノードを異常原因ノード候補として選択する（Ｓ１７３）。乖離判定プログラム２３２は、異常原因ノード候補を結果ノードとして選択し（Ｓ１７４）、その原因ノード（直下のノード）が存在するか判定する（Ｓ１７５）。原因ノードが存在する場合（Ｓ１７５：ＹＥＳ）、乖離判定プログラム２３２は、ステップＳ１７２に戻る。
【００７２】
原因ノードが存在しない場合（Ｓ１７５：ＮＯ）、乖離判定プログラム２３２は、異常原因ノード候補のうち、最も変化率が大きいノードを、最も可能性が高い、異常原因ノード候補と決定する（Ｓ１７６）。さらに、乖離判定プログラム２３２は、例えば、最も可能性が高い、異常原因候補ノードの情報をクライアント装置２４０に送信し、クライアント装置２４０はその情報を表示する。
【００７３】
上述のように、因果構造モデルにおいて監視対象目的変数のノードからエッジに沿って異常原因ノード候補を探索することで、迅速かつ適切に異常原因ノード候補を特定することができる。
【００７４】
図１３及び１４を参照して説明した方法において、異常原因ノード候補の決定のために、直前の値と現在の値との変化率に代えて、直前の複数の測定値の平均値（移動平均値）と現在の値の変化率を使用してもよい。他の例において、実測値の変化率に代わり、実測値と推定値の間の推定精度（乖離）を使用してもよい。乖離判定プログラム２３２は、各ノードの推定精度を計算し、推定精度が閾値より低いノードを異常原因ノード候補と決定する。最下層のノードは推定値が計算されないため、実測値の変化率を使用する。
【００７５】
図１５及び１６を参照して説明した方法において、異常原因ノード候補の決定のために、直前の値から現在の値への変化率に代えて、直前の複数の測定値の平均値（移動平均値）から現在の値への変化率を使用してもよい。他に例において、実測値の変化率に代わり、実測値と推定値の間の推定精度（乖離度）を使用してもよい。最下層のノードは推定値が計算されないため、実測値の変化率を使用する。最下層のノードと中間層のノードの比較のため、最下層のノードの実測値の変化率は補正される。
【００７６】
［因果構造モデルの推定］
次に、因果構造モデル推定装置２１０が因果構造モデルを推定（生成）する処理を説明する。因果構造モデル推定プログラム２１１は、学習データデータベース２１２に格納されている学習データを分析し、因果構造モデルを推定（生成）する。因果構造モデル推定プログラム２１１は、任意の方法で因果構造モデルを推定してよい。以下において、その一例を説明する。
【００７７】
図１７は、因果構造モデル推定プログラム２１１による因果構造モデルの推定のフローチャートである。因果構造モデル推定プログラム２１１は、ユーザから、クライアント装置２４０を介して、学習データに含まれる複数の測定値（測定データ）における、監視対象目的変数（例えば室温）の指定を受け付ける（Ｓ２０１）。
【００７８】
因果構造モデル推定プログラム２１１は、指定された監視対象目的変数に関連する測定値を、学習データから、所定のアルゴリズムにより抽出する（Ｓ２０２）。因果構造モデル推定プログラム２１１は、関連する測定値から、非線形値を計算し、新たな関連測定値として追加する（Ｓ２０３）。非線形値は、例えば、測定値の２乗や、異なる測定値の積である。
【００７９】
因果構造モデル推定プログラム２１１は、関連測定値から、説明変数候補を選択する（Ｓ２０５）。例えば、因果構造モデル推定プログラム２１１は、関連測定値の間の単回帰分析を行い、相関係数が所定値より大きい関連値群が同一グループとなるように、関連測定値をグループ化する。さらに、グループ毎に１つの関連測定値を任意に選択し、説明変数候補と決定する。
【００８０】
因果構造モデル推定プログラム２１１は、説明変数候補に関する重回帰分析（例えば変数増減法）を実行し（Ｓ２０６）、目的変数の回帰式を算出する。この線形重回帰分析の結果、目的変数の回帰式は、説明変数の線形式で表わされる。因果構造モデル推定プログラム２１１は、回帰式を非線形項で構成してもよい。
【００８１】
次に、因果構造モデル推定プログラム２１１は、その回帰式が予め設定した完了条件を満たしているかを判定する（Ｓ２０７）。完了条件は、例えば、ユーザが予め設定した関連測定値が説明変数として抽出されることや、使用している学習データにより新たなノードが生成されないことである。完了条件が満たされていない場合（Ｓ２０７：ＮＯ）、因果構造モデル推定プログラム２１１は、説明変数それぞれを新たな目的変数と決定し、未選択の関連データから説明変数候補を選択する（Ｓ２０４）。
【００８２】
因果構造モデル推定プログラム２１１は、説明変数候補の線形重回帰分析により、目的変数それぞれの回帰式を決定する。重回帰分析を逐次的に繰り返すことで、ＫＰＩデータに関する因果構造モデルの全体が自動推定される。
【００８３】
完了条件が満たされている場合（Ｓ２０７：ＹＥＳ）、因果構造モデル推定プログラム２１１は、作成した因果構造モデルをモデル管理装置２２０に送信し、モデルデータベース２２２に格納する。
【００８４】
［学習期間の設定］
次に、因果構造モデルを推定するために使用する学習データの期間を決定する方法を説明する。学習期間が短いと、その分得られるデータ点数が少ないため、滅多に起きない事象が捉えることができない。また、全ての事象が起こる期間を事前に特定することは困難である。したがって、適切な期間の学習データを使用することが重要である。図１８に示すように、学習が進むと、推定される因果構造モデル２１９のノード数が増加する（成長する）。以下に説明する例は、因果関係の成長度合いを測定し、所定の成長の伸びが見られなくなった期間を適切な学習期間と決定する。
【００８５】
以下で説明する例においては、類似システムの因果構造モデルの成長度が閾値未満となる学習期間を、対象システムの学習期間と決定する。類似システムはユーザにより選択される。図１９は、因果構造モデル推定プログラム２１１が学習期間を決定する処理のフローチャートを示す。
【００８６】
因果構造モデル推定プログラム２１１は、類似システムの因果構造モデルのための学習期間を［ｔ＿０、ｔ＿１］と設定する（Ｓ２２１）。因果構造モデル推定プログラム２１１は、期間［ｔ＿０、ｔ＿１］の学習データを、学習データデータベース２１２から取得する（Ｓ２２２）。因果構造モデル推定プログラム２１１は、学習データを使用して、因果構造モデルを推定する（Ｓ２２３）。因果構造モデルの推定は上述の通りである。
【００８７】
因果構造モデル推定プログラム２１１は、推定した因果構造モデルの再現率が、閾値を超えるか判定する（Ｓ２２４）。再現率が閾値を超える場合（Ｓ２２４：ＹＥＳ）、因果構造モデル推定プログラム２１１は、出力された因果構造モデルのノード数をカウントする（Ｓ２２５）。
【００８８】
再現率が閾値以下である場合（Ｓ２２４：ＮＯ）、追加されたΔＴ部分は異常値を含むので、因果構造モデル推定プログラム２１１は、当該期間を学習期間から除く（Ｓ２２６）。因果構造モデル推定プログラム２１１は、因果構造モデルの成長度を計算する（Ｓ２２７）。成長度は、（今回のノード数−前回のノード数）／今回のノード数で計算できる。因果構造モデル推定プログラム２１１は、計算した成長度と閾値とを比較する（Ｓ２２８）。
【００８９】
成長度が閾値以上である場合（Ｓ２２８：ＮＯ）、因果構造モデル推定プログラム２１１は、学習期間を延ばし（ｔ＿１＝ｔ＿１＋ΔＴ）（Ｓ２２９）、ステップＳ２０２に戻る。成長度が閾値未満である場合（Ｓ２２８：ＹＥＳ）、因果構造モデル推定プログラム２１１は、期間［ｔ＿０、ｔ＿１］に基づき、対象システムの因果構造モデルを推定するための学習期間を決定する。例えば、期間［ｔ＿０、ｔ＿１］を対象システムの因果構造モデルを推定するための学習期間と決定する（Ｓ２３０）。
【００９０】
［正常／異常判定の閾値の設定］
次に、因果構造モデルによる目的変数の推定値と実測値とを比較して正常／異常の判定を行うための閾値の設定方法を説明する。適切な閾値を設定することで、監視対象システムの異常を適切に発見することができる。
【００９１】
図２０は、閾値設定方法の概要を説明するための、推定精度の時間変化と閾値との関係を示すグラフである。グラフにおいて示されている推定精度は、個々の運用状態に閾値が設定される場合にいずれかの運用状態の推定精度であり、閾値が全て運用状態に共通の場合に全ての運用状態における推定精度である。
【００９２】
閾値３０１は推定精度の底点３２３と一致し、閾値３０２は推定精度の底点３２４と一致している。底点３２１及び３２２は底点３２４より小さく、底点３２４は底点３２３より小さい。底点３２１及び３２２において、監視対象システムは実際の異常を示している。底点３２３及び３２４において、監視対象システムは正常である。
【００９３】
閾値３０１よりも低い値を示す底点３２４において、監視対象システムは正常である。一方、閾値３０２より低い全ての底点３２１及び３２２において、監視対象システムは実際の異常を示している。したがって、閾値３０２は閾値３０１よりも適切である。閾値を閾値３０２に設定する又は閾値３０１から閾値３０２に更新することで、より適切な判定が可能となる。
【００９４】
図２１は、乖離判定プログラム２３２による初期閾値設定のフローチャートを示す。乖離判定プログラム２３２は、因果構造モデルによる学習データレコードそれぞれの推定精度を計算する（Ｓ２４１）。乖離判定プログラム２３２は、最も低い推定精度の学習データレコードを選択する（Ｓ２４２）。乖離判定プログラム２３２は、選択した学習データレコードが保守記録を含むか判定する（Ｓ２４３）。
【００９５】
選択した学習データレコードが保守記録を含まない場合（Ｓ２４３：ＮＯ）、乖離判定プログラム２３２は、非選択の学習データレコードから最も低い推定精度の習データレコードを選択し（Ｓ２４４）、ステップＳ２４３に戻る。選択した学習データレコードが保守記録を含む場合（Ｓ２４３：ＹＥＳ）、乖離判定プログラム２３２は、選択した学習データレコードの推定精度を閾値に設定する（Ｓ２４５）。学習データレコードが保守記録を含むことは、監視対象システムにおいて異常が発生したことを意味する。
【００９６】
図２２は、乖離判定プログラム２３２による閾値更新のフローチャートを示す。乖離判定プログラム２３２は、検査データデータベース２３３から選択した検査データレコードの推定精度を計算する（Ｓ２６１）。乖離判定プログラム２３２は、推定精度が閾値未満であるか判定する（Ｓ２６２）。
【００９７】
推定精度が閾値未満である場合（Ｓ２６２：ＹＥＳ）、乖離判定プログラム２３２は、当該検査データレコードは異常と判定する（Ｓ２６３）。推定精度が閾値以上である場合（Ｓ２６２：ＮＯ）、乖離判定プログラム２３２は、当該検査データレコードは正常と判定する（Ｓ２６４）。
【００９８】
乖離判定プログラム２３２は、当該検査データレコードの保守記録をチェックする（Ｓ２６５）。本例において、検査データレコードは、当該検査データレコードに対する保守記録を格納するフィールドを含む。乖離判定プログラム２３２は、推定精度に基づく正常／異常判定が正しいか、保守記録の有無に基づき判定する（Ｓ２６６）。
【００９９】
具体的には、推定精度に基づく判定が異常である場合、保守記録が存在すればその判定は正しく、保守記録がない場合その判定は正しくない。判定が正しい場合（Ｓ２６６：ＹＥＳ）、乖離判定プログラム２３２は、現在の閾値を維持する（Ｓ２６８）。判定が正しくない場合（Ｓ２６６：ＮＯ）、乖離判定プログラム２３２は、閾値を当該検査データレコードの推定精度に基づき閾値を更新する。例えば、当該検査データレコードの推定精度が新たな閾値とされる（Ｓ２６７）。
【０１００】
［運用状態に応じた因果構造モデルの推定］
次に、監視対象システムの運用状態それぞれに応じた因果構造モデルの推定を説明する。運用状態それぞれに応じた因果構造モデルにより、より適切な正常／異常判定が可能となる。
【０１０１】
図２３は、監視対象システムの運用状態毎の因果構造モデルの推定を説明する図である。因果構造モデル推定プログラム２１１は、学習データデータベース２１２から、運用状態毎に学習データ３３１を取得し、運用状態それぞれの因果構造モデル２１５を推定する（Ｓ３１）。
【０１０２】
図２３において、運用状態１〜運用状態Ｎの学習データが存在し、例として、運用状態１の学習データが符号３３１で指示されている。また、運用状態１〜運用状態Ｎそれぞれの因果構造モデルが推定され、例として、運用状態１の因果構造モデルが符号２１５で指示されている。
【０１０３】
図２４は、学習データデータベース２１２の構成例を示す。学習データデータベース２１２は複数の学習データレコード３５１を含む。図２４においては、一つの学習レコードが例として符号３５１で指示されている。学習データレコード３５１は、監視対象システムの状態の情報、センサにより測定されたデータから得られる値、及び保守記録を含む。
【０１０４】
学習データデータベース２１２は、時刻欄３５２、監視対象システムの状態（運用状態）を示す欄３５３測定データの欄３５４、及び保守記録の欄３５５を含む。図２４の例において、日付は省略されている。時刻欄３５２、監視対象システムの状態（運用状態）を示す欄３５３及び測定データの欄３５４の内容は、図７を参照して説明した検査データデータベース２２３と同様である。
【０１０５】
図２５は、運用状態１の学習データ３３１を示す。監視対象システムの運用状態は、複数種類の状態（状態Ａ、状態Ｂ・・・）の値で定義される。いずれか一つの状態（欄）の値が異なると、運用状態は異なる。特定の運用状態の学習データ３３１は、因果構造モデルの推定時に学習データデータベース２１２から選択されてもよく、運用状態毎の学習データが、学習データデータベース２１２において、予め分類されていてもよい。
【０１０６】
［未来における目的変数値の予測］
次に、未来の時刻を入力すると、該当時刻の目的変数の予測値を出力する因果構造モデルを説明する。これにより、監視対象のシステムにおける、将来の異常の発生を予測することができる。ユーザは、異常の発生を防止することができる。因果構造モデル推定プログラム２１１は、監視対象の目的変数の時間変化を予測可能な因果構造モデルを構築する。目的変数値推定プログラム２３１は、当該因果構造モデルと時刻情報に基づき、監視対象の目的変数の時間変化を予測する。
【０１０７】
図２６は、運用状態変化と推定精度の関係を模式的に示す。目的変数値推定プログラム２３１は、過去の実績運用状態変化５０１のパターンに類似するパターンの運用状態変化を学習データデータベース２１２において捜し、見つけた運用状態変化の後の運用状態変化を、予測運用状態変化５０２に適用する。運用状態変化は、ベクトルで表わすことができ、目的変数値推定プログラム２３１は、ベクトル間の類似度により、類似するパターンの運用状態変化を選択できる。例えば、類似度が最も高いパターン又は閾値を超えるパターンの運用状態変化が選択される。
【０１０８】
目的変数値推定プログラム２３１は、予測運用状態変化５０２の運用状態それぞれに対応する因果構造モデルを選択し、監視対象の目的関数の予測値を計算する。推定精度の時間変化のグラフ５０５において、範囲５０３は過去の実績値を示し、範囲５０４は予測値を示す。範囲５０３及び範囲５０４は、それぞれ、実績運用状態変化５０１及び予測運用状態変化５０２に対応している。
【０１０９】
図２７は、監視対象の目的変数の時間変化を予測可能な因果構造モデルを推定するための学習データを格納する学習データデータベース２１２の構成例を示す。学習データデータベース２１２は、測定データの欄３５４に、時刻の欄を含む。
【０１１０】
図２８は、監視対象の目的変数の時間変化を予測可能な因果構造モデルの例２１５を示す。因果構造モデル２１５において、最下層のノード（原因ノードが存在しないノード）５１１は、時刻の関数で表わされる。図１７を参照して説明した因果構造モデルの推定において、因果構造モデル推定プログラム２１１は、説明変数のノードの測定値が時刻である場合に、そのノードを最下層のノードと決定する。目的変数値推定プログラム２３１は、最下層ノード５１１に時刻を入力して、監視対象の目的変数のノード２１６の予測値を決定する。
【０１１１】
図２９は、因果構造モデル２１５による目的変数の予測値の表示例を示す。クライアント装置２４０は、目的変数値推定プログラム２３１から、当該画像データを取得し、表示デバイス３１７において表示する。
【０１１２】
グラフ５２１において、横軸は時刻、縦軸は目的変数を示す。範囲５２２は、目的変数の実績値を示し、範囲５２３は目的変数の予測値を示す。範囲５２３において、目的変数の値は、各時刻を入力とする因果構造モデル２１５の出力値である。時刻ｔ２の予測値は、閾値５２４に達している。目的変数値推定プログラム２３１は、予測値が閾値に達する時刻を異常発生予測時刻と決定し、ユーザに提示する。
【０１１３】
［監視画像］
次に、クライアント装置２４０において表示される監視画像例を説明する。図３０は、監視画像例５３０を示す。監視画像５３０は、因果構造モデルによって異常検出された場合に異常発生個所を表示し、さらに、異常個所における推定値と実測値との間の乖離を表示する。監視画像５３０は、セクション５３１、５３２及び５３３を含む。
【０１１４】
セクション５３１は、監視対象システム（システム１）の監視多少の目的変数の実測値の時間変化５４１及び推定値の時間変化５４２を示す。実測値の時間変化５４１は実線で表わされ、推定値の時間変化５４２は破線で表わされている。セクション５３１は、監視対象システムの複数の運用状態の値を示す。図３０の例は、運用状態Ａ及びその次の運用状態Ｂの実測値及び推定値を示す。
【０１１５】
セクション５３１は、運用状態Ａにおける正常／異常判定の閾値Ａ５４５及び運用状態Ｂにおける正常／異常判定の閾値Ｂ５４６を破線で示す。セクション５３１は、さらに、運用状態Ａにおける異常個所５４３及び運用状態Ｂにおける異常個所５４４を、ハッチングパターンで埋められた円で示す。異常個所５４３はドットパターンで埋められ、異常個所５４４は斜線パターンで埋められている。斜線パターンはドットパターンよりも視認されやすい。
【０１１６】
セクション５３２は、リストボックス５５１によってユーザに運用状態の選択を可能とする。図３０の例において、運用状態Ｂが選択されている。セクション５３２は、選択された運用状態の推定値の時間変化のグラフ５５２を表示する。
【０１１７】
セクション５３１は、リストボックス５５１で選択された運用状態の異常個所を、選択されていない運用状態の異常個所よりも視認性が高い画像で示す。図３０の例において、リストボックス５５１で選択された運用状態の異常個所を斜線パターンで示し、選択されていない運用状態の異常個所をドットパターンで示す。いすれの運用状態も選択されていない場合、セクション５３１は、最初の異常個所を視認性が高いパターンで示し、それ以外の異常個所を視認性が低いパターンで示す。
【０１１８】
セクション５３２は、ボタン５５３を含む。ユーザによってボタン５５３が選択されると、セクション５３３は、リストボックス５５１で選択されている運用状態の因果構造モデル５６１を表示する。因果構造モデル５６１は、さらに、異常原因候補のノードを明示する。図３０の例において、異常原因候補ノード（Ｘ３及びＸ５）は太線で示されている。
【０１１９】
セクション５３３は、ボタン５６２及び５６３を含む。ユーザによってボタン５６２が選択されると、運用状態Ｂの警告履歴が表示される。また、ボタン５６３が選択されると、運用状態Ｂにおけるシステムの保守履歴が表示される。
【０１２０】
上述のように、監視画像５３０は、監視対象システムの監視において、検出された異常及びその原因候補ノードをユーザに容易かつ適切に提示することができる。監視画像５３０を作成するためのデータは、検査データ乖離判定装置２３０からクライアント装置２４０に送信される。
【０１２１】
図３１は、警告メッセージの例６００を示す。警告メッセージ６００は、警告内容６０１及びボタン６０２〜６０５を含む。警告内容６０１は、警告の詳細を示す。ボタン６０２が選択されると、警告メッセージの対象の因果構造モデルが表示される。ボタン６０３が選択されると、保守記録の入力画像が表示される。ボタン６０４が選択されると、当該警告メッセージを含む警告メッセージの履歴が表示される。ボタン６０５が選択されると、対応する目的変数の監視における実測値及び推定値の履歴が表示される。
【０１２２】
図３２は、保守記録の入力画像６２０を示す。ユーザは、保守記録の入力画像６２０において必要な情報を入力する。入力された情報は、検査データ乖離判定装置２３０に送信され、補助記憶装置３１３に格納される。また、入力された情報の一部は、検査データデータベース２３３に格納される。
【０１２３】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１２４】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の記録媒体に置くことができる。
【０１２５】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１２６】
１５０  学習データ、１７０  検査データ、１７１  検査データレコード、２１０  因果構造モデル推定装置、２１１  因果構造モデル推定プログラム、２１２  学習データデータベース、２１５  因果構造モデル、２１６  トップノード、２１７  異常原因ノード候補、２１９  因果構造モデル、２２０  モデル管理装置、２２１  モデル管理プログラム、２２２  モデルデータベース、２２３  検査データデータベース、２３０  検査データ乖離判定装置、２３１  目的変数値推定プログラム、２３２  乖離判定プログラム、２３３  検査データデータベース、２４０  クライアント装置、３３１  学習データ、３５１  学習データレコード、４００  監視画像、４１０  因果構造モデル画像、４２０  実測値及び推定値の履歴の画像、５３０  監視画像、６００  警告メッセージ、６２０  入力画像
【図１】
2020052714.tif 000003
【図２】
2020052714.tif 000004
【図３】
2020052714.tif 000005
【図４】
2020052714.tif 000006
【図５】
2020052714.tif 000007
【図６】
2020052714.tif 000008
【図７】
2020052714.tif 000009
【図８】
2020052714.tif 000010
【図９】
2020052714.tif 000011
【図１０】
2020052714.tif 000012
【図１１】
2020052714.tif 000013
【図１２】
2020052714.tif 000014
【図１３】
2020052714.tif 000015
【図１４】
2020052714.tif 000016
【図１５】
2020052714.tif 000017
【図１６】
2020052714.tif 000018
【図１７】
2020052714.tif 000019
【図１８】
2020052714.tif 000020
【図１９】
2020052714.tif 000021
【図２０】
2020052714.tif 000022
【図２１】
2020052714.tif 000023
【図２２】
2020052714.tif 000024
【図２３】
2020052714.tif 000025
【図２４】
2020052714.tif 000026
【図２５】
2020052714.tif 000027
【図２６】
2020052714.tif 000028
【図２７】
2020052714.tif 000029
【図２８】
2020052714.tif 000030
【図２９】
2020052714.tif 000031
【図３０】
2020052714.tif 000032
【図３１】
2020052714.tif 000033
【図３２】
2020052714.tif 000034