周一早上,你打开产品看板,看到一条漂亮得几乎不需要解释的结论:在「明日清单」里,主动开启每日提醒的用户,七天后仍然回来使用的比例是 62%;没有开启提醒的用户,只有 28%。
负责人已经把下一步写进排期:把提醒开关移到注册页最显眼的位置,默认勾选;最好再把关闭入口藏深一点。理由听上去很顺:提醒让人想起任务,想起任务的人自然更愿意回来。你大概也会点头。62% 对 28%,差距大得不像偶然;而且这个解释有画面、有生活经验,也很符合直觉。
先停一下。假如你把所有新用户都强制打开提醒,七天后的回访率会真的从 28% 变成 62% 吗?还是说,那些本来就更在意计划、更愿意整理生活的人,既更可能自己打开提醒,也更可能回来?两种说法都能解释眼前的数字,却会导向完全不同的产品、预算和用户体验。
因果思维不是把每句话后面都补上“相关不等于因果”。那句话太容易说,也太容易被说成一句空话。它真正要求你在要行动的时刻换一个问题:不是“这两件事一起出现了吗”,而是“如果我亲手改变前一件事,后一件事会怎样变”。
这一章就跟着「明日清单」的提醒决策走到底。你会看到,一个看上去足够明显的结论,怎样在不同的比较方式下改头换面;也会看到,你不必成为统计学家,仍然可以把很多昂贵的误判挡在行动之前。

产品分析师林遥把原始数据摊开。过去一个月,有一万名新用户完成注册。其中 3 600 人在第一天主动开启了提醒,里面有 2 232 人在第七天至少打开过一次应用;其余 6 400 人中,只有 1 792 人回来。看板上的 62% 和 28% 没有算错。
问题不在计算,而在那句悄悄被塞进结论里的话:“开启提醒的人回来得更多”,所以“让人开启提醒就能让更多人回来”。 前半句是观察,后半句是干预后的预测。它们之间隔着因果推断最难、也最值得花时间的一段路。
把林遥的数据想成两张照片。第一张照片拍的是已经开启提醒的人:他们大多在注册时写下了明确目标,有人在创建第一个任务时就填了截止日期,有人甚至连第二天要做什么都提前排好。第二张照片拍的是没有开启的人:有人只是临时下载看看,有人被电话打断,有人连首个任务都没建完。这两群人从第一天起就不一样。
如果你只比较这两张照片,提醒和回访确实总是同行;但你不知道是谁在拉着它们同行。也许提醒发挥了作用,也许是目标感在两边同时留下了痕迹,也许两者都有。
因果问题有一个近乎苛刻的理想比较:对同一个人,在同一周、同样的工作压力和家庭安排下,看他收到提醒与没有收到提醒时,是否会有不同的回访行为。这个没有发生的版本,叫作反事实。它不是“假设一下就好”的文学想象,而是因果判断真正缺失的那半边证据。
可惜,你不能让同一个人同时过两次完全相同的一周。于是现实中的方法都在想办法找一个替身:找足够相似的人、找足够接近的时段,或者最可靠地,先用随机方式决定谁获得干预。你之后看到的所有因果工具,本质上都在回答同一个问题:这个替身能不能代替那条没有发生的人生分支?
看板说的是:在现有用户行为下,开启提醒与回访同时出现得更频繁。它适合做一件事——预测。如果你只能从新用户的一堆特征里挑出更可能回来的人,“是否主动开提醒”就是一个很有用的信号。
但预测有时会故意利用一个不该被干预的信号。下雨天带伞的人更常出现在湿漉漉的街上,雨伞因此很能预测路面潮湿;你不会据此得出“给每个人发一把伞就会下雨”。同样,主动打开提醒也可能是用户投入度的温度计,而不是把投入度升高的按钮。
这并不让相关性变得没用。恰恰相反,好的预测能帮助客服排序、帮助系统提前发现流失风险。危险只在于:当你要改变一个机制时,拿“谁更像会回来的人”去代替“这项改变会带来多少回访”,你很可能把资源投向了一个只是发光、却不发热的指标。

林遥没有立刻反驳负责人,她先把那句模糊的提案改写成一句可以被检验的话:
对首次完成首个任务、并且尚未自行设置提醒的新用户,在次日早晨推送一条可关闭的提醒,会不会提高接下来七天至少完成一次任务的比例?
这句话比“提醒有用吗”长,却终于有了骨架。因果问题里最容易被忽略的部分,往往不是分析方法,而是你究竟想改变什么。
干预要具体。是默认打开一个开关,还是次日发送一条提醒?是每天都推,还是只在用户设定的时间推?不同动作会触发不同反应,也有不同的打扰成本。把所有动作都叫作“提醒”,等于把钥匙、敲门和连续按门铃都算成同一件事。
结果也要具体。回访是打开应用,还是完成任务?七天后回来一次,和两个月后形成稳定习惯,不是同一层结果。若只盯着推送后的点击率,系统很容易学会用更耸动的标题把人拉回来,却没有帮他完成任何重要的事。
对象和时钟同样重要。林遥只讨论完成首个任务的新用户,是因为从注册还没开始的人身上无法判断提醒是否帮助了执行;她把观察起点定在首个任务完成后的当晚,是因为你必须先确定谁有资格进入比较,再决定谁接受干预。若一组用户已经使用了三周,另一组刚注册一天,把他们放到一起,所谓“提醒效果”里就混进了用户年龄、熟悉程度和自然流失。
一个可用的因果问题,通常至少说清四件事:
这四项看似文书工作,实际上决定了你在问一个真问题还是一个漂亮的口号。比如负责人最初说“让用户打开提醒”,听起来像一个动作,实际上混在一起的至少有两件事:你能不能让他看见设置页,以及他愿不愿意把通知权限交给你。前者是界面设计,后者还包含信任、习惯和隐私偏好。若不拆开,实验做完也不知道究竟是什么起了作用。
因果语言还有一个很有用的语法区别。你可以把观察写成“在已经开启提醒的人中,回访的比例是多少”;也可以把行动写成“把提醒设为开启后,回访的比例会是多少”。前一句是在筛选一个已发生的群体,后一句是在想象一次人为拨动。前者常能从看板直接读到,后者需要设计来支撑。
这就是为什么一个成熟的分析结论不该只写“提醒显著相关”。它应该能被一个负责行动的人读懂:你要改哪一个按钮、影响哪一类人、准备承担什么成本、以多长时间的结果来判断值不值得。

此刻最诱人的做法是多收集一些变量,然后全部塞进模型。林遥先做了相反的事:她不急着算,先在白板上画箭头。
她把最关键的几条关系写成这样:
目标感 → 主动开提醒
目标感 → 七天回访
首个任务完成得顺利 → 主动开提醒
首个任务完成得顺利 → 七天回访
这里的“目标感”和“首个任务是否顺利”,都可能是共同原因:它们一边影响用户会不会开提醒,一边影响用户会不会回来。这样的变量叫作混杂因素。它让提醒和回访看上去像有一条很粗的直接箭头,实际上其中一部分关联来自旁边的岔路。
注意,箭头不是数据自动吐出来的答案。看板能告诉你哪些变量同时变化,却不能告诉你箭头该往哪边画。箭头来自你对业务过程的理解:用户是在什么时候决定开提醒的?任务完成后收到成就反馈会不会影响开关?客服有没有只去联系已经表现出流失迹象的人?这些问题需要产品日志、访谈、流程规则和常识共同回答。
一张因果图的价值,不在于它看上去像一张技术图纸,而在于它强迫你公开自己的假设。没有画出来的共同原因,可能是你没想到的风险;画出来却没有证据支撑的箭头,则提醒你别把故事说得太满。
画图后,林遥发现有一条更容易踩的路:
发送提醒 → 用户制定次日计划 → 七天回访
“制定次日计划”是提醒可能发挥作用的中间环节,叫作中介变量。如果林遥想估计“发送提醒总体上能带来多少回访”,她不能在分析时把“有没有制定计划”强行保持相同。因为那等于先把提醒最有可能产生的作用通道堵住,再说提醒没有效果。
这和混杂因素恰好相反:混杂因素通常是干预发生之前的共同原因,你希望设法让两组在它上面可比;中介变量发生在干预之后,它承载的正是你可能想保留的效果。一个变量该不该调整,不能靠“它和结果相关不相关”决定,只能靠它在故事里处于什么位置决定。
如果你的目标换了,答案也会换。假如你想知道“提醒除了推动用户制定计划以外,还有没有额外作用”,那才会专门研究这条中间路径。但这已经不是最初那个“总效果”问题了。因果思维的严谨,不是找到唯一正确的控制清单,而是让分析方式和你真正要做的决策对齐。
白板上的第一张图已经解释了为什么 62% 对 28% 不能直接拿去写需求。但真正的麻烦还不止混杂。因果判断最常见的失真,往往躲在一个听起来很合理的筛选条件里。
先看最直观的岔路。目标感强的人更可能主动开提醒,也更可能在第七天回来。这时你看到的高回访率,有一部分是提醒的效果,有一部分是这些人本来就更可能坚持。
你可以试着记录一些干预前的线索:注册来源、是否写下目标、首个任务的难度、首次使用时长、过去是否使用过同类工具。它们能让比较更接近,尤其在无法实验时很有帮助。但别把“记录得多”误当成“混杂已经消失”。那些没有被记录的东西——例如用户当周是否正面临重要考试、是否刚换了工作、是否讨厌手机通知——仍可能同时影响选择和结果。
成熟的结论会把这层不确定性说出来:在已调整到的用户特征上,两组变得更接近;至于没有观测到的差异,还可能留下多少偏差,需要由设计强度和额外证据来判断。这样的克制不是示弱,反而能让你避免把一次观察包装成保证。
第二条岔路更隐蔽:也许不是提醒让人回来,而是已经准备回来的人,第二天顺手把提醒打开。用户的回访意愿可以先出现,再表现为设置开关、创建多个任务或授权通知。若你用第七天才快照到的“是否开启提醒”解释第七天是否回访,就可能把结果过程中发生的行为当成了原因。
解决它的第一步朴素得很:在干预之前记录分组,在结果之后才计算结果。林遥把开关状态固定在首个任务完成的当晚,并拒绝用第六天的设置状态来解释第七天回访。时间先后并不能单独证明因果,但时间顺序颠倒时,因果解释几乎肯定站不住。
负责人提出另一个建议:“只看真正看过提醒的人吧,没看的人算进来太不公平。”这听上去很讲道理,却可能把分析带进一个叫作碰撞点的陷阱。
假设“是否打开提醒”同时受两件事影响:系统有没有发送提醒,以及用户本身有多投入。提醒发得多,会增加打开的机会;投入度高,也会让人更愿意打开。现在如果你只保留“打开过提醒”的人,就相当于挑中了一个由这两条箭头共同决定的群体。在这群人里,收到很多提醒却仍然打开的人,平均可能没那么投入;收到较少提醒却打开的人,平均可能更投入。原本彼此无关的“是否收到提醒”和“投入度”,被你的筛选硬拴到了一起。
这不是文字游戏。你可能因此看见一个荒唐结论:在“打开过提醒”的用户中,多发提醒的人反而回访更差,于是误以为提醒有害。问题不一定出在提醒,而出在你只看了一个由提醒和投入度共同造成的中间结果。
同一条原则还会挡住很多日常误判:不要因为一个人“被录取了”就比较他的学校和家庭支持,不要因为一家公司“活下来了”就倒推它的融资方式优劣,也不要因为一个用户“已经点击过”就轻易比较两种触达策略。先问这个筛选条件是原因、结果,还是两种力量碰在一起的地方。

林遥最后说服团队做一次小范围实验。不是因为实验有魔法,而是因为随机分配能在分配发生的那一刻,切断“用户自己选择干预”的那条路径。
符合条件的新用户进入试验时,系统像抛硬币一样把他们分成两组。一组在次日收到一条简短、可关闭的提醒;另一组不收到这条提醒。谁进哪组不由目标感、任务难度、注册渠道或分析师喜好决定。样本足够大时,这些已知和未知的因素会在两组之间大体摊平,于是两组的差别更接近那条没有发生的反事实。
林遥没有把所有注册用户都丢进试验。她先排除已自行开启提醒的人,也排除没有完成首个任务、还谈不上“提醒明天任务”的人。这不是为了挑出好看的结果,而是为了让干预对每个入组者含义一致。
她还把提醒文案、发送时间、退出方式和通知权限处理写死。若实验组同时换了文案、加了积分、改了首页入口,最后即便回访提高,你也不知道到底是提醒、奖励还是界面起了作用。对照实验不是“改一个版本看看”,而是尽量让两组只有你要研究的那一处不同。
两周后,实验组 5 000 人中有 1 805 人在七天内完成过任务,对照组 5 000 人中有 1 685 人完成。差别是 2.4 个百分点,也就是每一百个符合条件的新用户,多出大约两到三个人完成任务。
这个数字不需要被夸张成“回访提升 2.4 个点,需求立刻全量”。你还需要看它的范围有多不确定、在不同来源的新用户中是否一致、这种额外完成是否伴随着关闭通知或投诉增加。它却已经比 62% 对 28% 更接近团队真正需要的答案:在这个明确的人群和这项明确的做法下,发出提醒可能多带来多少完成行为。
同样要警惕另一种“更公平”的冲动:有人会说,只比较真正收到并点开通知的人,才能看见提醒本身的威力。可一旦你按点击来分组,前面那条碰撞点岔路又回来了。对产品决策来说,最稳妥的主比较往往是按最初被分配到哪组来算:被安排发送的一组对被安排不发送的一组。它估计的是“提供这项策略”的真实效果,其中包括有人忽略通知、有人关闭权限的现实。
如果你另外想估计“真的读到这条通知后会怎样”,那是更窄、更难的问题,需要额外设计和更强假设,不能把点击者和未点击者直接一减了之。
实验把混杂压低,并不自动替你选对目标。团队若只看推送后十分钟的打开率,很容易得到一个高得惊人的结果;但这可能来自焦虑、打断或误触,未必是用户想完成的计划。林遥因此同时查看七天任务完成、通知关闭、卸载、负面反馈和后续留存。
因果效应也不是一句“有效”就结束。对早已养成计划习惯的人,提醒可能只是噪声;对任务刚刚堆积、又不知道从哪开始的人,一条具体提示可能正好把行动拉回来。差异并不必然意味着你该把人群切得越细越好,它先提醒你:平均值是决策的起点,不是每个人身上的承诺。
最后还有一道不是统计的问题。若提醒确实能让人更常打开应用,却靠制造紧张和内疚做到,你仍要问这是不是值得追求的结果。因果思维帮你辨认后果,不替你决定该不该把这种后果当作目标。
很多场景不能、也不该随意随机。你不能为了研究医疗服务效果而让一部分紧急患者故意得不到救治,也可能无法对已经上线多年的功能倒回去重新分组。此时最危险的反应是:“既然不能做实验,就只能看相关性。”更好的做法是把观察数据尽量组织成一场你本来希望做的试验。
林遥后来要评估一个已经全量上线的“周回顾”功能。她先写下理想试验的轮廓:哪天算入组、谁有资格、什么算接受策略、从哪一天开始跟踪、结果看多久、哪些干预前信息会同时影响功能使用和留存。只有先写清这个理想版本,才看得出真实数据少了什么。
观察性分析最常犯的错误之一,是给不同的人不同的起跑线。一个用户使用周回顾三个月后才被归入“使用者”,另一个从注册第一天就被归入“未使用者”;前者必须先活跃三个月才有资格进入使用者组,这段天然更活跃的时间被悄悄送给了功能。
林遥改成在每周一零点筛选当周符合条件的用户:此时还没使用周回顾的人,要么在这一周采用它,要么不采用;两组都从同一个周一开始观察接下来的留存。这样做不会消除选择偏差,却至少不让时间本身替功能制造优势。
有时系统规则会创造一个比自选更接近随机的机会。假设「明日清单」只向“过去七天完成任务少于三项”的用户提供人工规划服务。恰好完成两项和恰好完成三项的用户,往往很相似,却因为一条明确阈值获得不同服务。比较阈值附近的人,能够帮助你判断服务的局部影响。
但这里的关键词是“附近”。如果你拿完成零项的人去和完成十项的人比,差异里塞满了原本的执行能力;如果用户能轻松篡改记录以跨过门槛,阈值也不再像自然分配。规则边缘提供的是一扇窄窗,不是一张万能通行证。
另一种常见机会来自时间上的变化。例如功能先在一部分城市上线,再在其他城市上线。你可以比较上线前后两地变化的差异,而不是只比较上线后的高低。可前提是:若没有上线,两地原本的走势应当足够相近;同时不能在上线时恰好发生一场只影响其中一地的大促销、渠道投放或政策变化。任何“自然实验”都不是自然替你完成了思考,它只是把要检验的假设换了一个位置。
当你用注册渠道、使用时长、任务数等特征为用户配对,或在模型中调整这些特征时,你是在努力让两组更像。它对清楚记录的、发生在功能使用之前的差异很有帮助。可是它擦不掉未记录的目标感,也修不好被错误测量的变量,更不能修复一开始就选错了比较对象。
因此,观察数据得到的好结论通常包含边界:它对哪类用户、在什么时间窗口、在控制了哪些干预前因素后成立;还有哪些替代解释尚未排除。这样的表述比“数据证明功能有效”长一点,却足够让下一个接手决策的人知道结论能承受多大的重量。
一次好设计也不会把世界变成单因单果。提醒可能让用户记起计划,计划可能让他完成任务,完成任务又可能提高自我效能感;同一条提醒也可能在忙碌的人那里只增加烦躁。因果不是寻找唯一凶手,而是判断在其他条件大致不变时,拨动某个环节会让结果往哪里、往多大程度移动。
林遥还遇到过一个更会骗人、但很常见的汇总故事。东区使用新版提醒后的总体回访率是 45%,西区是 34%,看起来东区方案完胜。可东区八成用户是已经使用多月的老用户,西区八成是刚注册的新用户。把人按新老用户拆开后,老用户在东区的回访率反而略低于西区,新用户也是如此。总体差异只是在比较两种不同的用户构成。
这种现象常被称为辛普森悖论。它没有告诉你“分组一定比总体更真实”,而是提醒你:分不分组、按什么分组,取决于这个变量在因果结构中的角色。用户阶段若影响方案采用和回访,就值得在比较前被看见;如果某个变量是方案实施后的结果,机械分组反而可能把真实效果切掉。
你还要分清“机制解释”和“归因证明”。负责人说“提醒让用户感到被陪伴,所以回访提高”,这可以是一个值得验证的机制假设。要让它更可信,你需要看用户反馈、观察行为路径、做有针对性的文案试验,甚至比较不同形式的提醒。一个顺耳的机制故事不等于证据;但没有机制想象,你又很难设计出下一次更有信息量的比较。两者不是敌人:故事负责提出可以被推翻的箭头,设计负责决定箭头是否经得起检验。
这也解释了为什么高质量决策很少只依赖一张图表。随机试验、用户访谈、流程日志、复现实验和对异常案例的追问,会从不同方向挤压同一个解释。它们未必给你绝对确定性,却能让那些只靠巧合、选择偏差或漂亮叙事支撑的结论慢慢站不住。

回到最初的看板。62% 对 28% 没有失去价值,它依然告诉林遥:提醒开关值得研究,主动设置提醒的人身上可能藏着值得学习的行为。只是它不再被允许直接指挥全量改版。
在下一次会议前,你可以用一页很短的因果备忘把讨论从“谁讲得更像真的”拉回“哪种比较更接近答案”。它不需要复杂术语,但每一格都要写得能执行。
这份备忘不是为了让你在每件小事上都开一项研究,而是为了在成本高、影响广或后果难以逆转的行动前,先把那句最重要的话问清:如果我真的改了它,而不是只观察到它,这个结果还会改变吗?
直觉会立刻给你一个因果故事,这是它的长处。它让你能从杂乱现象里迅速找到可行动的线索。理性要做的不是嘲笑这种直觉,而是在你准备按下发布按钮时,多留出一段距离给反事实、对照和可能被忽略的岔路。那段距离不总能带来完美答案,却常常足以让你少做一次看起来很有道理、实际上方向相反的决定。