OUTLIERS コマンド

数値型フィールドにおける統計上の異常値を検出します。異常値の検出対象は、数値型フィールド全体であるか、あるいは 1 つまたは複数の文字型、数値型、または日付時刻型キー フィールドの値に基づく複数のグループです。

構文

OUTLIERS {AVERAGE|MEDIAN} {PKEY キー フィールド <...n>|NOKEY} ON 数値型フィールド <OTHER フィールド <...n>> NUMSTDEV 標準偏差の数 <IF テスト> <TO {SCREEN|テーブル名}> <PRESORT> <WHILE テスト> <FIRST 範囲|NEXT 範囲> <OPEN>

メモ

サーバーのテーブルに対してローカルで OUTLIERS コマンドを実行することはできません。

OUTLIERS コマンドはその全体を指定する必要があります。簡略化することはできません。

パラメーター

名前 説明
AVERAGE | MEDIAN

数値型フィールド(異常値フィールド)の値の中心点を計算する方法。

  • AVERAGE を指定すると、値の平均(平均値)が計算されます。
  • MEDIAN を指定すると、値の中央値が計算されます。

中心点は、以下のいずれかについて計算されます。

  • 数値型フィールド全体
  • 各キー フィールド グループの数値

これらの中心点は、後で数値型フィールドまたは各グループの標準偏差を計算する際に使用されます。

メモ

MEDIAN を指定する場合は、数値型フィールドを基準にして並べ替えを行っておく必要があります。数値型フィールドを基準にした並べ替えがまだ行われていない場合は、PRESORT を使用します。

ヒント

異常値がないかどうかを調べるデータに大きな偏りがある場合は、MEDIAN を指定した方が、データの大勢をより正しく表す結果を生成することができます。

PKEY キー フィールド <...n> | NOKEY

PKEY を指定した場合は、グループ レベルの異常値が検出されます。NOKEY を指定した場合は、フィールド レベルの異常値が検出されます。

  • PKEY キー フィールド テーブルのデータをグループ化するのに使用される 1 つまたは複数のフィールド

    キー フィールドとしては、文字型、数値型、または日付時刻型のフィールドを設定することができます。複数のフィールドはスペースで区切る必要があります。また、異なるデータ型を指定できます。

    複数のフィールドを指定すると、入れ子のグループが作成されます。入れ子でのフィールド間の順序は、フィールドを指定した順になります。

    キー フィールド グループごとに、数値型フィールドにおけるそのグループの数値に関する標準偏差が計算されます。このグループの標準偏差は、グループの異常値を検出するための基準値として使用されます。

    メモ

    1 つまたは複数のキー フィールドを基準にして並べ替えを行っておく必要があります。1 つまたは複数のフィールドを基準にした並べ替えがまだ行われていない場合は、PRESORT を使用します。

  • NOKEY は、テーブルのデータをグループ化しません。

    数値型フィールド全体に対する標準偏差が計算されます。このフィールドの標準偏差は、フィールドの異常値を検出するための基準値として使用されます。

ON 数値フィールド

異常値がないかどうかを調べる数値型フィールド。一度に 1 つのフィールドしか調べることができません。

異常値とは、フィールドまたは主キー グループの標準偏差またはそのような標準偏差の指定倍数によって設定される上限と下限の範囲に含まれない値のことです。

OTHER フィールド <...n>

省略可能

出力に含める 1 つ以上の追加フィールド。

メモ

キー フィールドと異常値フィールドは、自動的に出力テーブルに追加されるため、OTHER に指定する必要はありません。

NUMSTDEV 標準偏差の数

数値型フィールドにおいて、平均または中央値から異常値の上限および下限までに含まれる標準偏差の数。任意の正の整数または 10 進数(0.5、1、1.5、2、...)を指定できます。

異常値の境界を作成するための式:

平均/中央値 ± (標準偏差数 * 標準偏差)

メモ

標準偏差はデータセットの分布の測定です。つまり、値の拡散方法を測定します。異常値計算は母集団標準偏差を使用します。

異常値の境界の例

NUMSTDEV 2

数値型フィールド全体または各キー フィールド グループに対し、以下が設定されます。

  • 平均または中央値より標準偏差の 2 倍だけ大きい、異常値の上限

    平均/中央値 + (2 * SD)

  • 平均または中央値より標準偏差の 2 倍だけ小さい、異常値の下限

    平均/中央値 – (2 * SD)

上限より大きいか下限より小さい任意の値が、異常値として出力結果に追加されます。

メモ

同じデータ セットに対し、標準偏差の数の値を大きくすると、返される異常値の数が減る可能性があります。

IF テスト

省略可能

各レコードを処理するために真である必要がある条件式。コマンドは、その条件を満たすレコードに対してのみ実行されます。

メモ

IF パラメーターは、任意の範囲パラメーター(WHILE、FIRST、NEXT)が適用された後に、テーブルに残るレコードに対してのみ評価されます。

TO SCREEN | テーブル名

省略可能

コマンドの結果を送信する場所:

  • SCREEN は Analytics の表示領域に結果を表示します
  • テーブル名は、結果の保存先となる Analytics テーブルのことです。

    テーブル名には、ファイル拡張子 .FIL を付けた文字列を引用符で囲んで指定する必要があります。例:TO "Output.FIL"

    デフォルトでは、テーブル データ ファイル(.fil)は、Analytics プロジェクトが入っているフォルダーに保存されます。

    既存の異なるフォルダーにデータ ファイルを保存するには、絶対または相対ファイル パスを指定します。

    • TO "C:\Output.FIL"
    • TO "Results\Output.FIL"

    メモ

    テーブル名は 64 文字の英数字(.FIL 拡張子を含まない)に制限されています。名前にはアンダースコア文字(_)を使用できますが、他の特殊文字やスペースは使用できません。名前の先頭を数字にすることはできません。

PRESORT

省略可能

当該のコマンドを実行する前に並べ替え操作を実行します。

PRESORT と以下を指定した場合: 並べ替えの基準:
PKEY, AVERAGE
  • キー フィールドまたはフィールド
  • キー フィールドまたはフィールド、次に数値フィールド数値フィールドが計算される場合)

    メモ

    計算された数値フィールドの並べ替えは内部的な Analytics の技術要件です。

PKEY, MEDIAN

キー フィールドまたはフィールド、次に数値フィールド

NOKEY, AVERAGE

並べ替えなし

NOKEY, MEDIAN 数値フィールド

ヒント

入力テーブル内の 1 つまたは複数の該当フィールドを基準にした並べ替えが既に行われている場合は、PRESORT を指定しないことで処理時間を短縮できます。

メモ

GROUP コマンドの内部では PRESORT を使用することができません。

WHILE テスト

省略可能

各レコードを処理するために真である必要がある条件式。条件が false と評価するか、テーブルの最後に達したら、コマンドは実行を中止します。

メモ

WHILE を FIRST または NEXT とともに使用する場合は、1 つの制限に達するとすぐに、レコードの処理が停止します。

FIRST 範囲 | NEXT 範囲

省略可能

処理するレコード数:

  • FIRST 指定されたレコード数に達するまで、最初のレコードから処理を開始します
  • NEXT 指定されたレコード数に達するまで、現在選択されているレコードから処理を開始します

範囲は処理するレコード数を指定します。

FIRST と NEXT を省略すると、すべてのレコードがデフォルトで処理されます。

OPEN

省略可能

コマンドを実行した後、コマンドによって作成されたテーブルを開きます。コマンドが出力テーブルを作成する場合にのみ有効です。

異常な取引金額の検出

Sample Project.acl 内の Ar テーブル全体から、異常な取引金額を検出したいとします。

異常値の上下限を「Amount(金額)フィールドから標準偏差の±3 倍」に設定します。次のテストにより、772 個のレコードから成るテーブルから、16 個の異常値が返されます。

OPEN Ar
OUTLIERS AVERAGE NOKEY ON Amount NUMSTDEV 3 PRESORT TO "Outliers_AR.fil" OPEN

「標準偏差の±3.5 倍」にしてテストを繰り返します。異常値の上下限が Amount フィールドの値群の中心点から遠くなったため、6 個の異常値がこのテストによって返されます。

OPEN Ar
OUTLIERS AVERAGE NOKEY ON Amount NUMSTDEV 3.5 PRESORT TO "Outliers_AR.fil" OPEN

顧客別の異常な取引金額の検出

Sample Project.acl 内の Ar テーブルから、顧客別に異常な取引金額を検出したいとします。

異常値の上下限を「各顧客の取引グループから標準偏差の±3 倍」に設定します。

OPEN Ar
OUTLIERS AVERAGE PKEY No ON Amount NUMSTDEV 3 PRESORT TO "Outliers_Customer_AR.fil" OPEN

このテストにより、7 個の異常値が返されます。各顧客の取引グループについて、標準偏差と平均が報告されます。

  顧客番号(No.) 取引金額 STDEV AVERAGE グループ番号
1 065003 4,954.64 1015.58 833.83 1
2 262001 3,567.34 772.44 438.81 2
3 262001 (2,044.82) 772.44 438.81 2
4 376005 (931.55) 411.18 484.57 3
5 501657 5,549.19 1332.80 441.14 4
6 811002 3,409.82 634.20 672.10 5
7 925007 3,393.87 736.48 906.16 6

顧客 262001 に関する異常値の特定方法

Ar テーブルには顧客 262001 の取引が 101 個あり、そのうち 2 つが異常値として報告されたとします。これらは、その顧客の異常値境界を超えるためです。

異常値 下限 上限 異常値
(2,044.82) (1,878.51) 2,756.13 3,567.34

顧客 262001 に関する異常値境界の計算方法

異常値の上下限は、顧客 262001 の全取引の平均に、取引の標準偏差の指定倍数をプラスマイナスしたものです。

顧客 262001 の全取引の平均 438.81
標準偏差の指定倍数 3
取引の標準偏差 772.44

438.81 ± (3 * 772.44)

= 438.81 ± 2,317.32

= (1,878.51) (下限)

= 2,756.13 (上限)

MEDIAN を使用した、顧客別の異常な取引金額の検出

AVERAGE の代わりに MEDIAN を使用した場合でも、上記の例で行ったのと同じ異常値テストを行うことができます。

OPEN Ar
OUTLIERS MEDIAN PKEY No ON Amount NUMSTDEV 3 PRESORT TO "Outliers_Customer_AR_Median.fil" OPEN

上のテストでは、直前のテストで返された 7 個の異常値の代わりに、10 個の異常値が返されます。MEDIAN と AVERAGE では、データの性質に応じて多少異なる結果が返されます。

  顧客番号(No.) 取引金額 STDEV MEDIAN グループ番号
1 065003 4,954.64 1015.58 663.68 1
2 262001 (2,044.82) 772.44 450.67 2
3 262001 3,567.34 772.44 450.67 2
4 376005 (931.55) 411.18 517.16 3
5 501657 4,426.14 1332.80 146.80 4
6 501657 5,549.19 1332.80 146.80 4
7 811002 3,409.82 634.20 624.53 5
8 925007 2,972.78 736.48 717.88 6
9 925007 3,030.71 736.48 717.88 6
10 925007 3,393.87 736.48 717.88 6

各顧客に関する異常値境界の計算方法

異常値の上下限は、各顧客の取引の中央値に、取引の標準偏差の指定倍数をプラスマイナスしたものです。

顧客 262001 の例:450.67 ± (3 * 772.44)

備考

メモ

このコマンドの動作の詳細については、Analytics のヘルプを参照してください。

異常値境界フィールドを結果テーブルに追加する

Analytics は、自動的に、STDEV および AVERAGE または MEDIAN 演算フィールドを異常値結果テーブルに追加します。結果テーブルで異常値を特定するために使用される異常値境界を示す 2 つの演算フィールドも追加すると役立つ場合があります。

  1. 異常値結果テーブルを開きます。
  2. この式を Analytics コマンドラインに貼り付けて、必要に応じて編集し、Enter を押します。
    DEFINE FIELD 下限 COMPUTED AVERAGE - (標準偏差数 * STDEV)
    • 標準偏差数については、使用した実際の標準偏差乗数を代替します。
    • 平均ではなく中央点として中央値を使用した場合は、AVERAGE に MEDIAN を使用します。
  3. この式を Analytics コマンドラインに貼り付けて、必要に応じて編集し、Enter を押します。
    DEFINE FIELD 上限 COMPUTED AVERAGE + (標準偏差数 * STDEV)
    • 標準偏差数については、使用した実際の標準偏差乗数を代替します。
    • 平均ではなく中央点として中央値を使用した場合は、AVERAGE に MEDIAN を使用します。
  4. ビュー内で右クリックしてから[列の追加]を選択します。
  5. 使用可能なフィールド]リストから、下限および上限をダブルクリックし、[選択したフィールド]リストに追加します。
  6. OK]をクリックします。
  7. 省略可能。列ヘッダーをドラッグして、追加したフィールドを再配置します。
ACL のスクリプト作成ガイド 14.1