先给结论:分组结论与总体相反,通常不是分组算错了,而是两组的分母口径不一致,或总体分母里混进了不该计入的流量。要查的不是再跑一遍分组,而是把每个分组的分子、分母分别摊开,看总体分母是由哪些部分拼出来的。百度安全检测场景下,最常见的分母是“被检测请求数”“命中拦截的请求数”“站点真实访问数”,三者混用就会制造辛普森式反转。
现象大致有两类,处理方向完全不同。
判断依据很简单:把总体分母拆成“A组分母 + B组分母 + 未归类部分”,看它是否等于总体分母。不等于,就是口径问题;等于但结论仍反转,才需要怀疑分组内分子归属。
不要用汇总后的比例去反推,直接列出原始计数。假设一个纯说明性的例子:某站点一天有拦截记录,总体看“拦截率”比前一天下降;但按来源分组后,每个来源的拦截率都上升。这种反转几乎总是因为当天新增了大量低风险来源的请求,把总体分母抬高了。
可核查的证据链是这样几步:
做完第3步,如果发现未归类部分占比很高,下一步就该先修正归类规则,而不是急着改分组结论。修正归类后重新合并,反转往往自动消失。
两个解释都成立,需要用能区分它们的证据来裁决。
关键动作是固定分组口径重算一次。如果反转消失,说明问题在分母构成;如果反转还在,说明确实存在分组内差异,需要继续查该分组的分子判定逻辑,比如拦截规则是否在同一时期调整过。这一步的结果直接决定下一步:前者改统计口径,后者查检测规则。
很多“相反”不是空间上的分组问题,而是时间边界没对齐。百度安全检测相关统计里,请求的发起时间、检测完成时间、日志写入时间可能跨小时甚至跨天。分组按发起时间切,总体按写入时间切,两边分母自然对不上。
验证方法:把同一批请求分别按发起时间和写入时间各统计一次,比较两个总体分母的差值。差值集中在边界时段,就说明是时间归属问题。处理方式是把所有统计统一到同一个时间字段,再重算分组与总体。这个动作做完后,如果差值缩小到可忽略,之前的反转结论就不能再作为判断依据。
不是所有反转都是错误。当分组口径一致、时间边界对齐、未归类部分占比很低,且分组内比例确实各自反向时,反转就是真实信号,说明总体层面的平均掩盖了组间结构差异。此时正确的下一步是按分组分别设阈值和处置动作,而不是继续追求一个总体指标。判断标准可以落在一句话上:分母能加总、分子能归属、时间能对齐,三者都满足,反转才值得采信。