OUTLIERS 命令
识别数值域中的统计异常值。可以为整个域识别异常值,或者基于一个或多个字符、数值或日期时间键域中的相同值为单个组进行识别。
语法
OUTLIERS {AVERAGE|MEDIAN} {PKEY 键域 <...n>|NOKEY} ON 数值域 <OTHER 域 <...n>> NUMSTDEV 标准偏差数 <IF 测试> <TO {SCREEN|表名称}> <PRESORT> <WHILE 测试> <FIRST 范围|NEXT 范围> <OPEN>
说明
您不能在本地针对服务器表运行 OUTLIERS 命令。
您必须完整指定 OUTLIERS 命令名称。您不能缩略它。
参数
名称 | 描述 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
AVERAGE | MEDIAN |
用于计算数值域(异常值域)中的值的中点的方法。
为下列两者之一计算中点:
该中心点随后被用于计算该数值域或者每个组的标准偏差。 说明 如果您指定 MEDIAN,则数值域必须是排序的。如果数值域未经排序,请使用 PRESORT。 提示 如果您审查以寻找孤立点的数据被显著歪曲,则 MEDIAN 可能生成更能代表该数据块的结果。 |
||||||||||
PKEY 键域 <...n> | NOKEY |
如果您指定 PKEY,则在组级别识别异常值。如果您指定 NOKEY,则在域级别识别异常值。
|
||||||||||
ON 数值域 |
要审查其是否存在孤立点的数值域。您一次只能审查一个域。 异常值是落在由标准偏差或者由域或组标准偏差的指定倍数设立的上边界和下边界外部的值。 |
||||||||||
OTHER 域 <...n> 可选 |
要包括在输出中的一个或多个其他域。 说明 键域和异常值域被自动包括在输出表中,而不需要使用 OTHER 指定。 |
||||||||||
NUMSTDEV 标准偏差数 |
在数值域中,从平均值或中值到上异常边界和下异常边界的标准偏差数。您可以指定任何正整数或小数 (0.5, 1, 1.5, 2 . . . ) 用于创建异常值边界的公式是: 平均值/中值 ± (标准偏差数 * 标准偏差) 说明 标准偏差是对数据集的离差 — 即值的分散性的度量。异常值计算使用总体标准偏差。 异常值边界的示例NUMSTDEV 2 为整个数值域或者为每个键域组设立:
任何大于上边界或者小于下边界的值都作为异常值被包括在输出结果中。 说明 对于相同数据集,随着您增加标准偏差数中的值,您可能减小返回的异常值的数量。 |
||||||||||
IF 测试 可选 |
一个条件表达式,它必须为真以便处理每个记录。仅对满足条件的那些记录执行该命令。 说明 在应用任何范围参数(WHILE、FIRST、NEXT)之后,仅针对表中的剩余记录评估 IF 条件。 |
||||||||||
TO SCREEN | 表名称 可选 |
要将命令结果发送到的位置:
|
||||||||||
PRESORT 可选 |
在执行命令之前执行排序操作。
提示 如果输入表中的一个或多个相应域已经排序,则可以通过不指定 PRESORT 节省处理时间。 说明 在 GROUP 命令内部不可使用 PRESORT。 |
||||||||||
WHILE 测试 可选 |
一个条件表达式,它必须为真以便处理每个记录。该命令被一直执行到条件的计算结果为假或者到达表的末尾为止。 说明 如果您将 WHILE 与 FIRST 或 NEXT 结合使用,请在达到一个限制时立即记下处理步骤。 |
||||||||||
FIRST 范围 | NEXT 范围 可选 |
要处理的记录数:
请使用范围指定要处理的记录数。 如果您省略 FIRST 和 NEXT,则会默认处理所有记录。 |
||||||||||
OPEN 可选 |
在命令执行后打开该命令创建的表。仅当该命令创建输出表时有效。 |
示例
识别反常的交易金额
您想要识别 Sample Project.acl 中的整个 Ar 表中的反常交易金额。
您决定将异常值边界设置为 Amount 域的标准偏差的 3 倍。该测试返回包含 772 个记录的表中的 16 个异常值。
OPEN 应收账款 OUTLIERS AVERAGE NOKEY ON Amount NUMSTDEV 3 PRESORT TO "Outliers_AR.fil" OPEN
您重复执行该测试,但是将标准偏差倍数增加到 3.5。该测试现在只返回 6 个异常值,因为异常值边界远离 Amount 域中的值的中心点。
OPEN 应收账款 OUTLIERS AVERAGE NOKEY ON Amount NUMSTDEV 3.5 PRESORT TO "Outliers_AR.fil" OPEN
识别对每个客户而言反常的交易金额
对于 Sample Project.acl 中的 Ar 表中的每个客户,您想要识别任何反常的交易金额。
您决定将异常值边界设置为每个客户的交易组的标准偏差的 3 倍。
OPEN 应收账款 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 识别异常值
客户 262001 在 Ar 表中具有 101 个交易,其中有两个被报告为异常值,因为它们超过该客户的异常值边界::
孤立点 | 下边界 | 上边界 | 孤立点 |
---|---|---|---|
(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 识别超出每个客户正常值的交易金额
您使用 MEDIAN 而非 AVERAGE 执行与您在上面的示例中执行的测试相同的异常交易测试。
OPEN 应收账款 OUTLIERS MEDIAN PKEY No ON Amount NUMSTDEV 3 PRESORT TO "Outliers_Customer_AR_Median.fil" OPEN
该测试返回 10 个异常交易,而不是在之前测试中返回的 7 个交易。根据数据性质的不同,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 计算域添加至异常值结果表。您可能会发现,在结果表中添加两个计算域以显示用来识别异常值的异常值边界是有用的。
- 打开异常值结果表。
- 将此表达式粘贴到 Analytics 命令行中,根据需要编辑它,然后按 Enter:
DEFINE FIELD Lower_Boundary COMPUTED AVERAGE - (标准偏差数 * STDEV)
- 对于标准偏差数,请替换为您使用的实际标准偏差倍数。
- 如果您使用中值而不是平均值作为中心点,请用 MEDIAN 替换 AVERAGE。
- 将此表达式粘贴到 Analytics 命令行中,根据需要编辑它,然后按 Enter:
DEFINE FIELD Upper_Boundary COMPUTED AVERAGE + (标准偏差数 * STDEV)
- 对于标准偏差数,请替换为您使用的实际标准偏差倍数。
- 如果您使用中值而不是平均值作为中心点,请用 MEDIAN 替换 AVERAGE。
- 右击视图,然后选择添加列。
- 从可用域列表中,双击 Lower_Boundary 和 Upper_Boundary 以将其添加到选定域列表中。
- 单击确定。
- 可选。通过拖动列标题重新定位所添加的域。