異常検出の考え方:多変数を監視するときの注意

京都大学 教授 加納 学

前回は、正常データのみを用いる異常検出方法として、古典的な管理図を紹介しました。また、監視したい変数が2つ以上ある場合も、それらが多次元正規分布に従うのであれば、マハラノビス距離を用いて異常検出ができることを述べました。

ところで、変数が複数ある場合、それらを個別に監視してはいけないのでしょうか。

この問いについて検討する前に、管理限界(閾値)の決め方について整理しておきましょう。偶然原因によるばらつきのために、ある変数の観測値がランダムに変化している状況を考えてみます。この変数が正規分布に従うとして、正常時に確率α (例えば0.01)で観測値が管理限界を超えるように、つまり「第一種の過誤」の確率が 100α%となるように管理限界を設定します。長い目で見れば、100回の観測につき100α 回(例えば1回)は、正常状態であるにもかかわらず異常だと判定してしまうわけですが、これは甘んじて受け入れることにします。もちろん、管理限界を平均から離せば離すほど、間違って異常だと判定しなくなります。しかし、そうすると、本当に異常が発生したときに、間違って正常と判定してしまう危険性が高まります。したがって、何が何でも異常を見逃してはならないのか、あるいは逆に「オオカミ少年」になることは許されないのかを見極めて、問題に応じて適切に管理限界を設定する必要があります。

では、2変数を同時に監視するとして、第一種の過誤の確率を計算してみます。2変数が独立に変化するなら、正常時に共に正常と判定される確率は 0624.pngですから、第一種の過誤の確率は 図1-002.png となります。α=0.01 であれば、第一種の過誤の確率は0.02(2%)となります。変数の数を増やして、 K個の独立な変数を監視する場合、第一種の過誤の確率図3.bmp

             コラム1.bmp

となります。例えば、20変数を同時に監視する場合、 α=0.01であれば、 

          コラム2.bmp

となり、正常状態であっても100回に18回は異常と判定してしまうことがわかります。これでは、運転員はアラームの洪水に溺れ、本当に異常が発生したときに適切に対応することはできないでしょう。これが変数を個々に監視する方法の問題です。

しかし、問題はこれだけではありません。2変数の観測値の散布図(*)を見て下さい。変数1と変数2には正の相関があることが読み取れます。このデータを用いて異常検出を行います。変数ごとに上下限を設定すると、図中の四角が管理限界となり、その内側にある観測値は正常、外側にある観測値は異常と判定されます。例えば、変数1の値が極端に小さいサンプルAは異常と判定されます。一方、サンプルBは正常と判定されますが、散布図から明らかなように、変数1の値が大きいわりに変数2の値が小さく、正常状態にある他の観測値から離れています。変数を個別に監視する方法では、サンプルBを異常とは判定できません。つまり、変数間の相関関係に異変が生じても検出できないのです。これが変数を個別に監視する方法のもう1つの問題です。

サンプルBを異常と判定するためには、図中の楕円のような管理限界を設定し、その内側にある観測値を正常、外側にある観測値を異常と判定すればよいこともわかります。このように、正常時の変数間の相関関係を把握した上で、その関係からの逸脱に基づいて異常を検出する方法が必要になります。マハラノビス距離を用いる方法もそのような方法の1つですが、その発展形として多変量統計的プロセス管理(MSPC)があります。MSPCは主成分分析を用いることで変数間の相関関係を把握し、多変数系の異常検出を可能にします。

MSPCについては、次回、紹介します。

(*)2変数の観察値の散布図

コラム201902異常検出(2)図.jpg

  • LINE
  • Mail