有条件的结论是:当源数据缺项时,不要用插值、默认值或“看起来合理”的猜测去补全,然后把补全后的数据直接投入用户体验优化决策。更安全的做法是把缺项显式标记为“未知”,并让下游的统计、分群和页面改动都继承这个标记。这样做的代价是部分分析暂时不可用,收益是错误不会从数据层扩散到设计层和投放层。但有一个反例会让这个结论失效:如果缺项本身是随机的、且缺失比例极低,同时你只做粗粒度的方向判断,那么显式标记未知可能让样本进一步缩水,反而放大噪声。
缺项不是一种东西。至少可以分成三类,它们对用户体验优化方法的影响完全不同。
只有后两类才需要阻断。判断方法很直接:把缺项当作一个维度,去和页面类型、设备、来源、时间做交叉。如果缺失集中在少数几个桶里,它就是系统性的,不能靠“样本量大”来稀释。
你不需要完整数据管道才能开始。最小的动作是:在数据进入分析或页面决策之前,增加一个布尔字段,例如 is_missing,并规定所有下游计算遇到它为真时,要么跳过,要么单独输出。
具体到用户体验优化,这意味着:
这个动作的结果会直接影响下一步:如果缺项组规模很小且与页面无关,你可以继续做方向性判断;如果缺项组规模不小,你下一步不是优化页面,而是补数据或调整分析范围。
假设你想比较移动端和桌面端的表单完成率,用来决定先改哪个端。源数据里,移动端有一部分用户因为权限或埋点问题没有记录“是否提交”。如果你把“未记录”当成“未提交”,移动端完成率会被压低。你据此决定优先改移动端,但真实原因可能是记录缺失。
更安全的做法是:先输出移动端“已记录提交”和“未记录”两个数。如果未记录占比明显高于桌面端,那么两端完成率不可直接比较。此时你能得出的结论只有“移动端记录覆盖更差”,而不是“移动端体验更差”。下一步动作应该是先修移动端记录,或者只比较已记录部分并注明这个限制。
容忍缺项需要同时满足几个条件:缺项比例低、缺失与你要比较的维度无关、你只做粗粒度方向判断、并且你愿意在结论里写明限制。只要缺项集中在某个端、某个页面类型或某个时间段,就不满足“与维度无关”,不能继续用同一套用户体验优化方法下结论。
必须停的情况更简单:当缺项会导致你做出不可逆的改动,比如删除页面模块、改变导航结构、调整默认选项。这类改动一旦上线,影响真实用户,而错误的数据会把它推向错误方向。此时应该先补数据或缩小改动范围,而不是用假设值推进。
最后要提醒的是,缺项修复后,前后对比不能直接当成改动效果。搜索需求、季节和采集方式都可能同时变化。一次缺项修复前后的指标差异,只能说明数据覆盖变了,不能单独证明用户体验变好或变差。