4. 异常值可视化诊断
逐笔成交数据经过基础清洗后,仍然会残留大量“数值上合法、业务上可疑”的记录:价格在涨跌停范围内却明显偏离当日成交重心,成交量是常见值的几十倍,或者某只股票在连续竞价阶段出现长时间零成交后突然放量。这些模式很难靠单条记录的字段校验发现,必须借助可视化把数据放回时间轴、价格轴和分布形态中去观察。本节的任务不是做最终判定,而是用四类图形快速暴露可疑模式,并把可疑记录整理成一份可复核的初步异常清单,供后续规则判定和人工确认使用。
四类图形各自回答什么问题
时序图回答“异常发生在什么时候、是否连续”。把成交价按成交时间(精确到毫秒或秒)画成折线或散点,叠加当日均价线,可以直观看到价格跳变、阶梯式抬升、长时间横盘后突刺等形态。散点图回答“价格与数量是否匹配”。以成交价为横轴、成交量为纵轴(或双对数坐标),正常成交通常形成围绕某一价格带的密集点云,而异常记录往往表现为远离点云的孤立点或竖直条带。箱线图回答“单笔成交量相对当日分布是否离群”。按股票或按时间段分组绘制成交量箱线图,能快速定位超出上须的极端大单和贴近零轴的碎单。直方图回答“整体分布形态是否被污染”。成交量通常呈强右偏长尾分布,若直方图出现双峰、断层或异常长的尾部,往往意味着混入了不同交易机制下的记录或错误数据。
从图形到清单:一次可复现的诊断过程
下面以某只股票某交易日的逐笔成交表为例说明操作路径。假设表中字段为证券代码、成交时间、成交价、成交量(股)、买卖方向,共约 3 万条记录,价格区间 10.20~10.80 元。第一步先画时序图:以成交时间为横轴、成交价为纵轴,用散点而非折线(逐笔数据时间间隔不均,折线会制造虚假斜率),并叠加当日成交量加权均价线。观察时重点看三类形态:价格在极短时间内跨越多个价位、价格长时间贴住涨跌停价、以及均价线附近点云突然稀疏。若发现 10:15:32 至 10:15:35 之间价格从 10.42 直接跳到 10.68,就应把这 3 秒内的记录单独截取出来。
第二步画散点图,横轴成交价、纵轴成交量,成交量取对数坐标以压缩长尾。正常记录会形成一条沿价格带分布的水平点云;若某点成交量达到 50 万股而当日中位数仅 800 股,它会在图上高高悬起,形成孤立点。同时注意“竖直条带”——同一价格上密集出现大量成交,可能是集合竞价记录被错误混入连续竞价时段,也可能是价格被限制在某一档位反复成交。第三步按证券分组画成交量箱线图,用 1.5 倍四分位距确定上须,超出上须的点标记为候选异常;对碎单则关注下须以下的点,它们可能是拆单算法的正常产物,也可能是数量字段被截断。第四步画成交量直方图,分箱数取 50 左右,观察是否出现双峰:若在 100 股附近和 1 万股附近各有一个峰,说明数据中混有零售单和机构单两种机制,后续统计应分层处理而不是直接合并。
偏离指标与可疑类型的对应
图形只能提示“看哪里”,清单需要给出“为什么可疑”。实践中常用几个轻量指标把视觉印象量化:价格偏离度 = |成交价 − 当日成交量加权均价| / 当日均价;数量倍数 = 单笔成交量 / 当日成交量中位数;时间间隔 = 与上一笔成交的时间差。把这三个指标与图形触发位置对应起来,就能给每条候选记录标注可疑类型。例如时序图突刺点若同时满足价格偏离度大于 2% 且时间间隔小于 50 毫秒,可标为“价格跳变”;散点图孤立点若数量倍数大于 50,标为“极端大单”;箱线图上须外的点若买卖方向与价格变动方向矛盾,标为“方向异常”。这些阈值只是示例假设,实际应结合标的流动性和交易机制调整,并在清单中记录所用阈值以便复核。
初步异常清单的字段与填写示例
清单不必追求字段繁多,但必须让复核人仅凭清单就能回到原始记录并判断可疑原因。建议至少包含:证券代码、成交时间、成交价、成交量、触发图形(时序/散点/箱线/直方)、偏离指标及取值、可疑类型、复核状态、备注。下表给出一份示例,数值均为教学假设,不代表真实市场数据。
| 证券代码 | 成交时间 | 成交价 | 成交量(股) | 触发图形 | 偏离指标 | 可疑类型 | 复核状态 |
|---|---|---|---|---|---|---|---|
| 600XXX | 10:15:33.120 | 10.68 | 1200 | 时序图 | 价格偏离 2.4%,间隔 38ms | 价格跳变 | 待复核 |
| 600XXX | 13:02:07.450 | 10.45 | 500000 | 散点图 | 数量倍数 62 | 极端大单 | 待复核 |
| 600XXX | 14:56:58.010 | 10.51 | 100 | 箱线图 | 低于下须,间隔 0ms | 碎单/重复记录 | 已确认重复 |
| 600XXX | 09:25:00.000 | 10.38 | 8600 | 直方图 | 落入尾部异常小峰 | 集合竞价混入 | 待复核 |
诊断时容易踩的坑
第一,不要用折线图画逐笔价格。逐笔成交在时间上不均匀,折线会把长时间无成交的两点直接连起来,制造出并不存在的价格趋势,应改用散点或按时间分箱后的均价线。第二,箱线图的离群判定对偏态分布并不稳健,成交量本身强右偏,直接用原始值算四分位距会把大量正常大单判为异常,稳妥做法是先取对数再画箱线图,或改用中位数绝对偏差。第三,直方图分箱过粗会掩盖双峰,过细则噪声大,建议先用 Freedman–Diaconis 规则估算箱宽再微调。第四,图形诊断只能形成“候选清单”,不能直接删除记录;每条候选都应保留原始行号或唯一键,复核确认后再进入清洗环节,避免误删后无法回溯。第五,同一异常可能在多张图上同时出现,清单应合并去重而不是重复登记,可用“证券代码 + 成交时间 + 成交价 + 成交量”作为临时主键。
完成上述四图与清单后,本节的可交付成果就是一份带图形截图索引、指标取值和复核状态的初步异常清单。它既是对清洗效果的第一次体检,也是后续稳健统计的输入:清单中确认的异常记录在计算中位数、分位数等稳健统计量前应被剔除或单独标记,而待复核记录则保留在数据中并加标志位,避免在结论未定前影响统计口径。