报告 05
MVP 设计:造尺子
造一台随机对照的干预效应发现装置:在同一个问题域里把人随机分到不同处理,用客观行为计数量出「干预 → 行为」的效应量,同时量出「用户觉得有没有用」,把这两个数放在一张表上对照
版本 v1 · 2026-09-16 · 产品 + 实验设计 上游:
README_综合判定.md(主会话裁定)、04_munger_芒格格栅.md、03_strategy_战略解剖.md、02_constraint_约束.org、01_rank_降秩.org引用约定:〔芒格·账一〕指04_munger第四节账一;〔降秩·R3〕指01_rank第三根;〔战略·4.1〕指03_strategy4.1 节;〔约束·矛盾对1〕指02_constraint互斥约束第一对;〔README·裁定〕指综合判定的主会话裁定。 未标出处的数字一律标「估算」。本文不联网,不引入新的外部事实。
1. 一页纸
1.1 目标
造一台随机对照的干预效应发现装置:在同一个问题域里把人随机分到不同处理,用客观行为计数量出「干预 → 行为」的效应量,同时量出「用户觉得有没有用」,把这两个数放在一张表上对照。这是对〔芒格·内核判断〕「你没有一把尺子,能分辨『它起作用了』和『它感觉起作用了』」的正面回应——造两把尺子同时量,就有了分辨力。
产物:一张带 95% 置信区间的效应表,加一条「主观有效感 vs 客观效应」的配对数据。 这两样 OpenAI 的记忆拿不到、抖音的行为数据拿不到、Rosebud 的日记也拿不到,因为它们都没有随机化〔战略·5.1〕。
1.2 非目标(第一版明确不做)
| 不做 | 理由 |
|---|---|
| Personal Development OS / 任何带「OS」的表述 | 〔芒格·废话倾向〕这个词不改变任何一行代码,只改变融资 PPT 的分量 |
| 7 层显式人格模型 | 〔芒格·账一〕46 个潜变量 ÷ 30 条证据 = 每参数 0.15 条;量级不对 |
| 卖钱 / 定价梯度 | 第一版是实验,不是生意。收押金,全额返还 |
| 微信社群打卡 | 〔README·裁定〕+〔战略·4.1〕污染因果归因的概率约 75% |
| 关系域、情绪域、家庭域 | 〔约束·矛盾对3〕下行归用户扛,第一版风险不可控 |
| 「更懂我」作为卖点 | 〔战略·3.1〕OpenAI Dreaming 已砍掉一半差异点 |
| 长期留存 / D30 曲线优化 | 这一轮的留存是实验依从性,不是 PMF 信号 |
1.3 成功 / 失败判据(预注册式,实验开始前写死,不得事后修改)
主要判据一条,可行性判据四条。全部在随机化之前锁定并公开哈希。
| 代号 | 判据 | 阈值 | 性质 |
|---|---|---|---|
| P | 主要比较:Arm B(人格匹配干预)vs Arm C(纯记录对照),28 天「带证据完成天数」差值 | 点估计 ≥ 3.0 天 且 95% CI 下界 > 0 | 成功 |
| P2 | 关键次要(仅当 P 达标才检验,序贯把关):Arm B vs Arm A(通用启动摩擦干预) | 点估计 ≥ 2.0 天 且 CI 下界 > 0 | 决定公司值不值得存在 |
| F1 | 主结局字段(behavior)同日采到率,按 person-day 计 | ≥ 75% | 可行性 |
| F2 | 同日完整四元组率 | ≥ 50% | 可行性 |
| F3 | 随机化后第 28 天仍在记录的比例 | ≥ 60% | 可行性 |
| F4 | D42 前完成测评并进入 run-in 的人数 | ≥ 100 | 可行性 |
| C | 每周「下注」的 80% 区间实际覆盖率 | 落在 65%–90% | 校准 |
| D | 主观有效感(1–7)与客观效应的配对分布 | 不设阈值,作为发现报告 | 双尺子 |
失败判据(触发即停或转向)
- F1 < 35% → 装置本身不成立。停止,重做采集形态,不进入随机化。
- 三臂对对照的差值点估计全部 < 1.0 天且 CI 全部含 0 → 宣布阴性,按第 10 节决策树左支走。
- 任一 kill gate(第 8 节)未达 → 按该 gate 的预设动作执行。
- 招募 8 周内进入 run-in 人数 < 60 → 降级为两臂设计或停止(见第 9 节风险 2)。
功效的诚实声明:n=100 分三臂(每臂 33)只能以 80% 功效看见 d ≈ 0.57 的效应(约 3.4 天/28 天,ANCOVA 调整后,估算)。阴性结果不能排除 d < 0.5 的真实效应。 这一轮定位为先导试验(pilot / feasibility),产出是效应量的点估计与区间宽度,供第二轮做正式样本量计算——不是确证性检验。这条必须写进预注册和最终报告,否则就是重犯〔芒格·账二〕批评的错误。
1.4 一句话给创始人
花 ¥2,000 现金和 13 周,买一台有资格对你说「你错了」的仪器;〔芒格·账二〕已经证明按原设计(每臂 n=7)这台仪器的功效是 15–20%,也就是说它五次里有四次不会说话。
2. 对原方案的保留 / 改造 / 砍掉
处置的唯一标准:这个设计选择是加宽还是收窄「起作用了 vs 感觉起作用了」的盲区。
| 原方案条目 | 处置 | 具体怎么变 | 理由(出处) |
|---|---|---|---|
| L0 Reality Constraints | 改造 | 降为 5 个纳入/分层字段(年龄段、职业类型、作息、可支配时间、当前是否在接受精神科治疗) | 参数预算〔芒格·账一〕 |
| L1 MBTI | 砍掉 | 不采集、不计分、不出现在任何页面。可作为投放话术,不进产品 | 〔战略·结论二〕它让模型无法通过专业审视;〔约束〕categorical 违反方案自己写的 probabilistic 原则 |
| L2 Big Five / HEXACO | 改造 | 只留 C(尽责性 6 facet)+ N(焦虑/抑郁/冲动/脆弱 4 facet),40 题,复用 bigfive-public 题库与计分 |
46 参数必须砍到个位数〔芒格·账一〕 |
| L3 Values / Motives | 砍掉 | 第一版不测 | 参数预算 |
| L4 Attachment / Defense + Enneagram | 砍掉 | 全砍 | 〔战略·结论二〕;〔约束·矛盾对3〕关系域证据第一版拿不到也不该拿 |
| L5 Domain State | 改造 | 收缩为「行动执行」一个域的 4 个自评题(目标清晰度 / 启动时长 / 完美主义 / 环境约束) | 〔约束〕带宽把域数砍到 1 |
| L6 Intervention Matching | 改造为实验本身 | 不做「引擎」,做随机化。L6 不是模型的一层,是一门独立的科学 | 〔芒格·第三层〕L0–L5 是个体内,L6 是个体间因果推断,两摞被画成一摞 |
| L7 Reality Experiment | 保留并升级为产品本体 | 从「MVP 的收缩范围」升级成唯一的产品 | 〔降秩·R3〕全案唯一一根撬 R3 的撬棍 |
| Memory ≠ Model | 改造 | 从对外卖点降为内部工程原则,不写进任何对用户的文案 | 〔战略·3.1〕OpenAI Dreaming 2026-06-04 已砍掉一半(README 已核验) |
| Dense Behavioral Data | 保留,但换目标函数 | 目标不再是「密度」,是「同日完整率」。10 条同日完整片段 > 100 条事后补录 | 〔芒格·账一〕(a) 完成率折损 + (c) 事后重构污染 |
| Micro Capture 四问 | 改造 | 四步串联 → 两次触达 × 2 步;预测提前到行为发生之前;结果同日锁定 | 〔芒格·账一〕四步串联 ≈ 24%,且承重柱恰是完成率最低的一问 |
| 30 天 Change Test | 改造 | 14 天 run-in 基线(弃前 7 天)+ 随机化 + 4 周干预 = 6 周;A/B 不再按周排布 | 〔芒格·账二〕时间与处理完全共线;W1 基线 = 均值回归发生器 |
| 微信社群打卡 | 砍掉(降为广播漏斗) | 只做报名答疑、开营通知、退出挽留。群内禁止行为汇报,一律回「请在产品内记录」 | 〔README·裁定〕容器要换;〔战略·4.1〕证据污染;〔约束〕群的默认引力会把实验拖回打卡 |
| 结构化导航表格 | 砍掉(前台) | 结构化只发生在后台 | 〔约束·第二处错配〕用户说的「重」是界面,GPT 说的「必须结构化」是数据结构,可以升维消掉 |
| 第 30 天「你 vs 你」结果页 | 改造 | 改成「你 vs 你所在臂 vs 对照臂」,且显示置信区间 | 〔芒格·对比误反应〕自我对比的锚是谷底 |
| 定价梯度(免费→¥199→订阅→真人) | 砍掉 | 换成 ¥99 押金,完成 70% 记录全额返还 | 第一版是实验;押金是最便宜的依从性杠杆(估算) |
| Passive Data 全推到 Phase 3 | 反转:接一个最小被动源 | 只接步数/运动(微信运动或 HealthKit),只读这一项 | 〔芒格·过度自视〕「你诊断出了病因,然后把唯一的药扔了」——主结局的客观性是整台装置的全部意义 |
| 「你有 68% 概率出现 Y」话术 | 改造 | 变成带区间的下注 + 一周后公开核对 | 〔芒格·避免不一致性〕带小数点的概率更黏,不是更松;唯一有效的解法是让用户亲手推翻它 |
| 「行动阻力模型 35/30/20/15%」 | 砍掉 | 20 道题产出四个加总到 100% 的精确数字,不出现 | 〔芒格〕「带小数点的巴纳姆」 |
| 「OS」这个词 | 砍掉 | 对内对外都不用 | 〔芒格·废话倾向〕 |
| 「高识别感 = onboarding conversion」 | 砍掉这个 KPI | 换成「一周后预测命中率」 | 〔芒格·巴纳姆〕这句话是 Forer 1949 实验的操作定义 |
3. 实验设计
3.1 一张图
flowchart TD
A["投放:小红书 + 微信私域|目标 400 点击"] --> B["报名 + 单独同意(敏感个人信息)|180 人"]
B --> C["¥99 押金 + 51 题测评(C/N + 行动自评 + 目标设定)<br/>≤12 分钟|140 人"]
C --> D{"纳入 / 排除<br/>排除:<18 岁 / 在精神科治疗中 /<br/>PHQ-2≥5 或 GAD-2≥5 / 无可测目标行为"}
D -->|纳入| E["Run-in 基线 14 天|全员相同:只记录不干预|100 人"]
E --> F{"Gate 2:14 天记录 ≥8 天<br/>且后 7 天完成率 20%–60%?"}
F -->|不达标| X2["不随机化,数据保留作『淘汰者画像』"]
F -->|达标| G["分层区组随机化|≥60 人,理想 100 人"]
G --> H["Arm C 纯记录 n≈33 | Arm A 启动摩擦 n≈33 | Arm B 人格匹配 n≈33"]
H --> I["4 周干预期(28 天)|每日两次触达|期内只看可行性指标"]
I --> J["D28 主结局锁定 + 猜臂 + 主观有效感 → 解盲,跑冻结的分析代码"]
J --> K["结果三臂同等发放 + 公开发布(含阴性)"]
3.2 人群:纳入与排除
目标人群:主诉「知道该做什么却做不到」的成年人,且能指定一个具体、可数、可客观留痕的目标行为。
| 类型 | 条件 | 说明 |
|---|---|---|
| 纳入 | 18–45 岁 | 未成年人排除(PIPL 敏感信息 + 伦理) |
| 纳入 | 能指定一个目标行为,落入三类可测形态之一 | 见 3.6 |
| 纳入 | Run-in 后 7 天完成率在 20%–60% | 富集:>60% 有天花板效应,<20% 可能是临床问题 |
| 纳入 | Run-in 14 天内记录 ≥8 天 | 依从性门槛 |
| 纳入 | 完成单独同意 + 研究知情同意(两份分开) | 见 6.3 |
| 排除 | 正在接受精神科药物治疗或心理治疗 | 避免干扰与归因困难 |
| 排除 | PHQ-2 ≥5 或 GAD-2 ≥5 | 转介建议,不纳入 |
| 排除 | 目标行为涉及减重、戒断、医疗依从 | 越过非医疗边界 |
| 排除 | 同一微信 / 同设备重复报名 | 防刷押金 |
富集招募的代价必须显式测量。〔芒格·工程悖论〕:留下来的是尽责性本来就高的人,「你的数据护城河将由最不需要你的那群人建成」。对策是量化而非回避——Gate 2 淘汰者的测评数据全部保留,最终报告必须含一张「淘汰者 vs 随机化者」的 C/N 分数与基线完成率对照表。全行业没人报这张表。
3.3 招募渠道:微信漏斗怎么用
现有的需求声量写在报告里了——小红书「人生教练」笔记 18 万篇+,而中国认证教练不足 2000 人(对话中数字,见〔芒格·账三〕)。供给和需求的声量差百倍,说明约束不在供给侧。
| 环节 | 载体 | 做什么 | 明确不做什么 |
|---|---|---|---|
| 曝光 | 小红书笔记 + 微信朋友圈 / 私域 | 招募文案:「6 周行动实验,随机分组,结束返押金 + 送完整报告」 | 不承诺有效、不用「治愈/改善/提升」等疗效词 |
| 承接 | 微信群(广播型) | 报名答疑、开营通知、退出挽留、发问卷链接 | 群内禁止任何行为汇报。有人发「今天做到了」,运营统一回:「这条请在小程序里记一下,群里的记录我们不采用」 |
| 转化 | 小程序 | 同意 → 押金 → 测评 → run-in | 不在微信内做任何测评、记录、干预 |
| 留存 | 小程序订阅消息 | 每日两次触达 | 不用群 @ 提醒、不做群内排行榜 |
社会在场(R4)的处置:〔README·裁定〕是「力要留,容器要换」。本文再加一层时序处置——R4 不进第一轮,作为第二轮的一个干预臂(真人见证 vs AI 见证)。理由:第一轮若加社群,社会在场同等作用于三臂,把完成率一起推向天花板、压缩组间差异,功效本就紧张的设计会直接失效。
3.4 随机化方法与分层
- 时点:run-in 结束当晚由服务端执行,用户在次日早晨第一次触达时才看到自己的处理内容。
- 方法:分层区组随机(stratified permuted block),block size = 6。
- 分配隐匿:分配序列由独立脚本预生成,加密存储,业务代码只能调用「取下一个」的接口,不能读序列。
- 分层因子(3 个):
| 分层因子 | 水平 | 理由 |
|---|---|---|
| 基线完成率 | 20–40% / 40–60% | 主结局的最强预测因子,必须均衡 |
| 目标行为可测形态 | 设备类 / 计时类 / 产物类 | 三类的测量误差不同 |
| 招募批次 | wave 1 / wave 2 | 季节与投放批次效应 |
- 盲法:
- 用户不可盲(干预内容明显不同)。诚实声明:期望效应无法排除。缓解手段是 Arm C 也有每日两次触达与每周一份「本周记录回顾」(中性、无建议),让接触频次在三臂间相等。
- 结局评估天然盲:主结局由服务端自动采集(时间戳/步数/计时器),不经人工判断。
- 分析者盲:分析代码在随机化之前写完并冻结(git tag + SHA256 公开)。干预期内只跑可行性指标,不跑任何效应估计。
- 猜臂检验:D28 问用户「你觉得自己被分到了哪一组」,用于评估盲法破坏程度与期望效应大小。
3.5 三臂:用户每天到底看到什么
所有臂的触达次数、屏数、字数量级相同(估算:每次 2 屏、≤60 字),差别只在内容。 | | Arm C 纯记录对照 | Arm A 通用启动摩擦干预 | Arm B 人格匹配干预(产品主张) | |---|---|---|---| | 早 08:30 触达 | 「今天会到【情境】吗?」+「到时候你会做吗(0–100 滑条)」 | 同 C,外加一行当日最小启动脚本:「今天的版本:只做 5 分钟 / 只换鞋走到门口」 | 同 C,外加一行按 C/N 分数与前 7 天误差匹配的当日指令 | | 晚 21:30 触达 | 「做了吗」+「现实是哪种」+「明天押多少」 | 同 C,外加一行归因反馈:「今天卡在【启动】那一段」 | 同 C,外加一行假设更新:「你昨天押 60% 实际做了,我们把启动摩擦的权重调低了」 | | 每周一次 | 「本周记录回顾」:只有数字与图,零建议、零解释 | 「本周启动摩擦报告」:完成 vs 未完成的时段分布 + 下周固定脚本 | 「本周模型更新 + 下周三条下注」:见第 4 节 | | 是否有个性化 | 无 | 有,但只基于行为数据,不用人格分数 | 有,基于人格分数 + 行为数据 + 预测误差 | | AI 生成内容 | 无 | 模板化,无 LLM | LLM 生成 | | 这一臂在检验什么 | 测量本身(self-monitoring)的效应 | 最强杠杆(环境/启动成本)是否成立 | 人格建模带来多少增量 |
设计逻辑:〔芒格·生物学 4〕的杠杆强度排序是 环境改造 > 社会约束 > 即时后果 > 身份认同 > 信息与洞察,而产品的核心交付物(个性化解释与匹配)落在最弱的那一端。Arm A 就是把最强杠杆做成对手盘。 B > A 是这家公司存在的全部理由;B ≈ A 意味着人格建模在 C 端无增量;B < A 意味着个性化在添乱——三种结果都值钱,第 10 节各给一条路。
Arm C 是「只测量」,不是「什么都不做」。 自我监测本身就是干预,用它做对照估出来的才是产品要卖的那个增量。
3.6 基线周设计(正面回答均值回归)
〔芒格·账二〕第 2 条结构问题:W1 基线 = 均值回归发生器,「你用产品结构保证了『有效』这个结论」。三条处置:
- Run-in 14 天,基线值只取后 7 天。 前 7 天作为适应期丢弃,避开「求助当周即谷底」这个锚。
- 随机化在 run-in 之后。 这是随机对照设计的全部意义所在——均值回归是 within-person 的威胁,不是 between-arm 的威胁。三臂经历完全相同的基线期,回归量在三臂上同等发生,组间差值不受污染。原方案的 W1→W2→W3 前后对比没有这个保护,所以它的「有效」结论无法与均值回归分离。
- 结果页改锚。 不再展示「30 天前的你 vs 现在的你」,改为「你 vs 对照臂的平均」,并标注置信区间。前者是〔芒格·对比误反应〕直接命中的幻觉制造机。
run-in 的 14 天数据另作盲态样本量重估(只看合并 SD、不看分组),不抬高第一类错误率,是标准做法。
3.7 主 / 次结局定义与客观采集方式
主结局:28 天窗口内「带证据完成天数」(0–28 的计数)。
「带证据」的三条通路,用户在 run-in 前选定一条并锁定:
| 形态 | 适用目标行为 | 采集方式 | 客观性 | 可伪造性 |
|---|---|---|---|---|
| 设备类 | 走路、跑步、通勤步行 | 微信运动 / HealthKit 只读步数,阈值由用户在 run-in 前自定(如「≥3000 步」) | 高 | 低(需真实移动) |
| 计时类 | 专注写作、学习、练习 | 产品内计时器,按开始/结束,服务端记时间戳,当日 23:59 锁定,不可回填 | 中 | 中(能证明在场,不能证明在做) |
| 产物类 | 投递简历、联系人、交付物 | 上传一张截图或链接 + 服务端时间戳;10% 随机人工抽检 | 中 | 中 |
统一硬约束:所有主结局数据必须带服务端时间戳且当日锁定。次日补录的记录标记 source=补录,进次结局不进主结局。 这条是数据完整性优先于数据量的取舍,写死在预注册里。
次结局
| 结局 | 采集 | 用途 |
|---|---|---|
| 自评完成天数 | 每晚 1 问 | 与客观计数配对 → 量化「自称 vs 实做」的偏差,这是〔芒格·过度自视〕说的循环的破口 |
| 行动阻力 4 项自评 | 每周 4 题 | 机制探索 |
| 预测误差(Brier / 绝对差) | 每周下注 + 核对 | 校准曲线,见第 4 节 |
| 完整四元组率、留存、缺失模式 | 埋点 | 可行性主结局 |
| 主观有效感(1–7)+ 猜臂 | D28 一次 | 双尺子对照 |
| PHQ-2 / GAD-2 | 每 14 天 | 安全监测,不是疗效结局 |
双尺子分析(本设计的核心产出):把「客观效应量」和「主观有效感」画成同一张 2×2。四个格子各自意味着什么:
| 客观有效 | 客观无效 | |
|---|---|---|
| 主观有效 | 干预成立,可规模化 | 巴纳姆区 — 全行业的默认落点,也是〔芒格·Lollapalooza 共振点一〕预测的结果 |
| 主观无效 | 有效但体验差,是 UX 问题不是科学问题 | 干预不成立,省两年 |
〔芒格〕原文预测的是右上格。如果实测落在右上格,这不是失败,这是这一轮最贵的发现,且是可以公开发表、别人没有的数据。
3.8 样本量与功效
原始账〔芒格·账二〕:W1–W4 各一周 = 每臂 n=7;Fisher 精确检验下 2/7 vs 5/7(29%→71%)双侧 p=0.286;按方案自己文案的效应量 31%→76% 算,功效 15–20%。
补救后的账(以下全部标估算)
| 参数 | 取值 | 来源 |
|---|---|---|
| 主结局 | 28 天带证据完成天数 | 本文 3.7 |
| 对照臂均值 | ≈10 天 | 估算(富集到基线 20–60%,中位 36% × 28 ≈ 10) |
| 组内 SD | ≈6 天 | 估算,run-in 后做盲态重估 |
| 每臂 n | 33(总 100,三臂) | 任务给定 |
| 检验 | ANCOVA,协变量 = 基线 7 天完成天数 | |
| 基线–结局相关 r | 0.6 | 估算 |
- 裸 t 检验,α=0.05 双侧,power 0.80:可检出 d = 0.71(约 4.3 天)
- ANCOVA 调整(方差降 1−r² = 0.64,等效 n ≈ 51/臂):可检出 d ≈ 0.57(约 3.4 天)
- 若做三组两两比较并 Bonferroni 校正:可检出 d ≈ 0.64
所以采用序贯把关(hierarchical gatekeeping),不做多重校正:主要比较只有一个(B vs C,α=0.05);只有它达标,才在同一 α 下检验 B vs A;再才是 A vs C。这把功效省回来了,代价是检验顺序必须事前锁死。
功效相对原设计的提升来自四处,逐条对账:
| 补救 | 效果 | 对应〔芒格·账二〕的哪条 |
|---|---|---|
| 每臂 7 → 33 | 可检出效应从「14%→86%」降到 d≈0.7 | 样本量 |
| 随机化 + 统一 run-in | 时间与处理解耦;均值回归不再污染组间 | 结构问题 1 和 2 |
| 加入纯记录对照臂 | 安慰剂/自我实现效应有了可减去的基准 | 结构问题 3 |
| 基线协变量 ANCOVA | 等效样本 33 → 51/臂 | 功效 |
结论一句话:100 人只够看见大效应(d ≳ 0.57,约 3.4 天/月)。要在第二轮以 80% 功效检出 d = 0.35(行为改变文献里更现实的量级,估算),需每臂 n ≈ 131,三臂 ≈ 390 人。第一轮的正式任务,是把 SD 和效应量的点估计测准,好让这个 390 变成一个有依据的数字而不是拍脑袋。
3.9 预注册与阴性结果发布承诺
〔芒格·第三层〕:「它需要愿意发表阴性结果。全行业没有人这么做。没有人这么做,正是它能成为护城河的原因。」
| 动作 | 时点 | 可验证物 |
|---|---|---|
| 协议定稿(人群、三臂、主次结局、分析模型、缺失处置、停止规则) | 随机化前 ≥7 天 | 公开 git repo + tag + SHA256 |
| 分析代码冻结(含数据清洗、主模型、敏感性分析) | 同上 | 同一 tag |
| 公开注册 | 同上 | OSF 预注册(免费);若不可达,退而求其次:公开渠道发布协议哈希并做时间戳存证 |
| 干预期内只跑可行性指标 | 每周一 02:00 | 分析脚本按 flag 分离,效应估计分支在解盲前物理不可执行 |
| 结果发布(无论正负) | 解盲后 30 天内 | 全部预注册结局(含未达标的)+ 修订日志:谁、何时、为什么改、改之前看到了什么数据 |
3.10 停止规则
| 触发 | 动作 |
|---|---|
| 内测 10 人的 F1 < 35% | 不进入招募,重做采集形态 |
| 招募 8 周进入 run-in < 60 人 | 降级为两臂(保留 C 和 B,每臂 ~40),或停止 |
| Gate 2 淘汰率 > 50% | 暂停,重新评估纳入标准与摩擦,公开记录 |
| 主结局缺失 > 40% | 继续跑完,但结果只作描述性报告,不作推断 |
| 任一臂出现 ≥2 例安全事件(PHQ-2/GAD-2 升高 ≥3 分且用户主诉与干预相关) | 该臂暂停,全员安全复核 |
| 押金退款争议 > 5 例 | 暂停招募,改为无押金 + 完成奖励 |
4. 「让人下注」测评
把第一测评的 KPI 从「用户点头」换成「我们敢不敢押、押得准不准」。〔芒格·90 天第 2 件事〕:「对了,用户的信任是挣来的、有证据的;错了,你拿到了这个产品最宝贵的东西——一次真实的 prediction error。」
4.1 题量与量表
总时长目标 ≤ 12 分钟。 | 模块 | 题量 | 时长(估算) | 用途 | |---|---|---|---| | IPIP-NEO 尽责性 C:6 facet × 4 题 | 24 | 4 分钟 | 主要预测变量 | | IPIP-NEO 神经质 N:N1 焦虑 / N3 抑郁 / N5 冲动放纵 / N6 脆弱,4 facet × 4 题 | 16 | 3 分钟 | 次要预测变量 + 安全筛查交叉验证 | | 行动执行自评(目标清晰度、启动时长、完美主义、环境约束) | 8 | 1.5 分钟 | 域状态 | | 目标行为设定(选一条、选可测形态、设阈值) | 交互 | 2 分钟 | 主结局定义 | | 基线自报 + 首次下注 | 3 | 1.5 分钟 | 第一条可证伪预测 | | 合计 | 51 题 + 交互 | ≈12 分钟 | |
明确不进模型的:MBTI、九型、星座、依恋类型。可以在投放文案里出现(「你测过 MBTI 吗?这次我们换个玩法」),不采集、不计分、不在任何页面呈现。〔战略·结论二〕。
4.2 Big Five 复用 bigfive-public 的可行性结论
复用:是,但只复用一半。
| 资产 | 复用 | 说明 |
|---|---|---|
| IPIP-NEO-120 题库 + 中译 | ✅ 直接用 | 公有领域(Johnson 2014)。HANDOFF 已注明 npm 包的 zh-cn 有反向错译,中译由英文重译,这份译文可直接取 |
| 反向计分与 facet 映射 | ✅ 直接用 | keyed:-1 → 6-a;facet raw 4–20 → pct |
| facet 层子集抽取(只取 C 的 6 facet + N 的 4 facet = 40 题) | ✅ 合法 | IPIP-NEO facet 各自独立 4 题计分,抽子集不破坏 facet 分数;但只能报这 10 个 facet 与 C/N 两维,不得报完整 Big Five 剖面 |
| 「量表位置非人群百分位」口径红线 | ✅ 必须沿用 | HANDOFF 的硬约束:未挂常模,pct 是作答落在刻度何处 |
D1 表结构与 pull.sh 数据回收管线 |
✅ 复用代码结构 | 省 2–3 周工程(估算) |
| Cloudflare Pages + D1 的部署位置 | ❌ 不复用 | PIPL 敏感个人信息 + 境内访问稳定性 → 必须迁到境内云。见第 7 节 |
| 单轴「施加 / 接收」分析树(HANDOFF C1–C5) | ❌ 不用 | 它是给完整 120 题设计的解释性叙事画像,恰是这一版要避开的那一面——解释性越强,巴纳姆风险越高 |
F 本人的画像与 results-*.json |
❌ 绝对不碰 | HANDOFF E 节硬约束 |
4.3 输出格式:一条可证伪预测
模板
【本周下注 · 第 N 周】
未来 7 天里,你在【{情境}】的时候,
会出现【{具体可数的行为}】—— 我们押 {点估计} 次,
80% 的把握落在 {下界}–{上界} 次。
我们凭什么这么说:{一句机制,只准引用 ≤2 个已测变量,必须报出数值}
我们可能错在哪:{一句,指出这个预测最脆弱的那个假设}
一周后对答案。错了算我们的。
三条硬规则:
- 必须可数。不准出现「你会感到焦虑」这种无法计数的预测。可数是反巴纳姆的第一道闸——一条足够普适的描述无法被写成计数。
- 必须给区间。点估计 + 80% 区间。区间宽度本身是诚实度的度量。
- 必须写「我们可能错在哪」。这一行的作用是把预测从「权威判词」变成「待检验假设」,直接对冲〔芒格·避免不一致性〕说的身份固化。
示例 1(启动摩擦)
未来 7 天里,你在【下班到家后计划运动】的时候,会出现【换好鞋但最终没出门】—— 我们押 3 次,80% 的把握落在 2–4 次。 我们凭什么:你的 C5 自律在量表位置 28(偏低),而 run-in 里「到家时精力」自报中位数 3/10。这两个数一起出现时,失败集中在「已启动未执行」这一段,不是「根本没想起来」。 我们可能错在哪:如果这周有人约你一起跑,社会在场会盖过精力低谷,这个数会偏高。
示例 2(完美主义)
未来 7 天里,你在【打开文档准备写方案】的时候,会出现【先改格式或查资料超过 10 分钟才动笔】—— 我们押 4 次,80% 的把握落在 3–5 次。 我们凭什么:C4 成就追求 76、C1 自我效能 34 —— 高标准配低效能感,典型的表现是延后第一笔而不是放弃任务。 我们可能错在哪:如果这周有硬 deadline,时间压力会压过完美主义,次数会明显低于 4。
示例 3(反向预测,故意押「不会发生」)
未来 7 天里,你在【周末】完成计划任务的次数【不会超过工作日】—— 我们押周末 0–1 次,80% 把握。 我们凭什么:你的目标行为靠通勤和工作日节奏挂钩(run-in 数据:工作日完成 5/5,周末 0/2),结构消失时行为一起消失。 我们可能错在哪:如果你这周末有明确的外部安排作为新的锚点,这条会被推翻。
每周三条里至少一条必须是反向或高风险预测(点估计落在分布尾部)——只押「你会失败」的系统是在顺着用户的自我预期说话。
4.4 一周后核对流程
sequenceDiagram
participant U as 用户
participant S as 服务端
participant O as 客观数据源
Note over S: 周一 09:00 生成三条下注并冻结(存 prediction 表)
S->>U: 「本周三条下注已经押好」(含区间与「可能错在哪」)
O->>S: 一周内步数 / 计时器 / 产物证据逐日回流
Note over S: 下周一 09:00 自动结算,客观可算的条目自动填实际值
S->>U: 「对答案时间」→ 逐条显示 押3次 | 实际5次 | 落在区间外
S->>U: 高亮「这条我们押错了 2 次 —— 本周最有价值的一条数据」
U->>S: 补填客观算不出来的条目(≤3 个数字)
S->>S: 只更新被证伪的 1–2 个参数(核对次数 ≥3 才允许更新)
S->>U: 下周三条新下注,其中至少一条来自本周的误差
要点三条:①客观可算的条目自动填,用户只补填算不出来的;②产品必须主动庆祝自己的错误(「这条我们押错了 2 次。你比我们以为的更能在周末动起来——下周改了一个参数」),这是反巴纳姆的结构性护栏;③更新要克制,只改被证伪的参数且该参数至少被核对过 3 次——小样本上做全模型重估就是在拟合噪声(〔芒格·账一〕每参数 0.15 条证据的直接后果)。
4.5 预测误差怎么回流
个体内(表 A):prediction_error = |实际 − 点估计|,以及区间覆盖标志 in_interval ∈ {0,1}。误差方向驱动下周点估计的偏移;连续两周同方向出错则触发一次机制假设切换(如「启动摩擦」→「目标模糊」),并在下周的下注文案里明示这次切换。
个体间(表 B):把 (C/N 分数切片, 预测类型, 误差方向与大小) 聚合,回答「哪一类人的哪一类预测被我们系统性高估/低估」。这是那把尺子的第一块砖。
校准曲线是唯一诚实的「我们有多准」:宣称 80% 的区间,实际覆盖率是多少?
| 实际覆盖率 | 含义 | 动作 |
|---|---|---|
| < 65% | 过度自信,区间太窄 | 全局加宽区间,并在报告里公开这次修正 |
| 65%–90% | 合格 | 维持 |
| > 90% | 区间太宽,预测没有信息量 | 收窄,否则「预测」退化成废话 |
目标:D+6 周时覆盖率落在 65–90%(判据 C)。这个数字可以对外公开,且它是这个赛道里没人敢公开的数字。
5. Micro Capture 四元组
5.1 结构改造:从一次四步,改成两次各两步
〔芒格·账一 (a)〕:第四问「结果是什么」是唯一能产生 prediction error 的一问,没有它整条片段的信息增益等于零,而它恰恰是完成率最低的那一问;每步 70% 则四步串联 ≈ 24%。改造后的收益主要在失败模式上:
| 原设计 | 改造后 | |
|---|---|---|
| 结构 | 一次触达,四步串联,事后回忆 | 两次触达 × 每次 2 步 |
| 预测的时点 | 事后重构「你当时第一反应是什么」 | 事前,行为发生之前 |
| 失败模式 | 原子失败 — 任何一步掉了,整条片段作废 | 优雅降级 — 早晨的预测即使晚上没结算也留存;晚上第 1 问(主结局)即使第 2 问没答也留存 |
| 主结局依赖 | 依赖全链路 | 只依赖晚间第 1 问 |
| 测量误差 | 被后见之明污染,且污染方向与被测量的东西相关〔芒格·账一 (c)〕 | 预测不可能被后见之明污染,因为它先于现实存在 |
「预测先于现实」这一条是〔战略·5.1〕说的唯一不可被规模碾压的东西:「所有被动观察型系统,无论数据量多大,都只能拿到结果,拿不到反事实。」
5.2 字段 Schema
capture(
capture_id uuid PK
user_hash char(64) -- 不可逆哈希,与手机号分表存储
arm enum -- C / A / B
day_index int -- 相对随机化日
ts_morning_open timestamp -- 早间触达打开
context_tag enum -- 8 个预设情境之一
context_note text NULL -- ≤20 字,可选,字段级加密
prediction_p int -- 0-100 滑条:会做的概率
pred_confidence int -- 0-100,用户对自己这个预测的把握
ts_prediction timestamp -- 预测写入时刻(必须早于 ts_behavior)
behavior enum -- done / partial / not_done ★主结局来源
behavior_minutes int NULL
evidence_type enum -- steps / timer / artifact
evidence_value json -- {steps:4210} / {start,end} / {url,sha}
outcome enum NULL -- easier / as_expected / harder
outcome_note text NULL -- 可选,字段级加密
ts_evening_submit timestamp
prediction_error float -- 派生:|prediction_p/100 − behavior_binary|(Brier 分量)
is_same_day bool -- 派生:ts_evening_submit 与事件同日 ★主结局过滤条件
source enum -- app / notif_degraded / backfill
locked_at timestamp -- 23:59 硬锁定时刻
)
主结局的取数规则(写死在冻结的分析代码里):
完成天数 = COUNT(day) WHERE behavior='done' AND is_same_day=TRUE AND source IN ('app','notif_degraded') AND evidence_value 通过阈值校验
source='backfill' 的记录进次结局,不进主结局。
5.3 前台文案(30 秒内完成)
| 触达 | 屏 | 文案 |
|---|---|---|
| 早 08:30(或用户设定的「计划时刻」) 目标 15 秒 |
1 | 今天会到【下班到家,19:00 前后】这个点吗? [ 会 ] [ 不会 ] [ 说不准 ] |
| 2 | 到那时候,你会【换鞋出门走 10 分钟】吗? 0 ———●——— 100 60% 会「记下了。晚上对答案。」 |
|
| 晚 21:30 目标 15 秒 |
1 | 刚才那件事,做了吗? [ 做了 ] [ 做了一点 ] [ 没做 ] |
| 2 | 现实是哪一种? [ 比想的容易 ] [ 和想的差不多 ] [ 比想的难 ](可选一句话,跳过不影响) |
|
| 结算条 | 「今早你押 60%,实际:做了。记下了。」 |
三条文案纪律:不出现「坚持」「加油」「打卡」「连续第 N 天」;不出现任何 streak 视觉(〔芒格·奖励超级反应〕:streak 一旦存在,用户优化的就是 streak);Arm C 的每周回顾里不出现任何一句解释或建议。
5.4 结果那一问的补录保障(四层)
这是承重柱,单独设计。
| 层 | 机制 | 预期回收(估算) |
|---|---|---|
| 1. 预填 + 一键确认 | 当天有客观数据(步数达阈值 / 计时器有记录)时,behavior 预填为 done,用户只需点「对」或改。把「输入」降级成「确认」 |
设备类/计时类用户约 +15 个百分点 |
| 2. 降级通知 | 21:30 未答 → 22:30 再推一条只有两个按钮的订阅消息:[做了] [没做]。点任一按钮即写入 behavior,outcome 记为 missing,source='notif_degraded' |
回收漏掉者的约 40% |
| 3. 23:59 硬锁定 | 过时即缺失。次日只能补一条 source='backfill',进次结局不进主结局 |
— |
| 4. 缺失的分析处置(预注册写死) | 主分析:缺失 = 未完成(保守,意向治疗)。敏感性分析:多重插补(m=20)+ 仅完成者分析 | — |
第 3 条主动扔掉数据。理由在〔芒格·账一 (c)〕:事后重构的污染方向与被测量的东西相关(防御越强的人重构偏差越大),所以补录数据是系统性偏向某个方向的假数据,混进主结局会坏掉整台仪器。
5.5 埋点:每一步的完成率
| 事件 | 用途 |
|---|---|
morning_notif_sent / open |
订阅消息送达率、触达有效性(目标 ≥65%,估算) |
m_step1_context → m_step2_prediction |
早间完整 = 预测采到率(目标 ≥58%,估算) |
evening_notif_sent / open |
晚间触达有效性 |
e_step1_behavior |
F1 分子:主结局采到率(判据 ≥75%) |
e_step2_outcome |
结果问采到率 |
degraded_sent / degraded_answer |
22:30 降级回收率 |
quad_complete |
F2 分子:同日完整四元组率(判据 ≥50%) |
locked_missing |
缺失模式,按 arm / C 分数 / 星期几切 |
backfill_submit |
补录量(只看不用) |
漏斗看板每天更新。Gate 1(10 人内测)就用 F1 和 F2 拦——如果一台采集装置在 10 个高动机内测用户身上都跑不到 F1 ≥ 35%,它在 100 个真实用户身上不可能跑到 75%。
6. 数据模型:两张表,两门科学
〔芒格·第三层〕:「L0–L5 是个体内的问题,L6 干预匹配是个体间的因果推断问题。这是两门不同的科学,需要两种完全不同的数据。你被架构图骗了——它画成一摞,其实是两摞。」
6.1 表 A:个体内证据表(within-person)
- 一行 = 一个人一天一个四元组(Schema 见 5.2)。
- 回答的问题:这个人是怎么运转的。
- 归属:用户的。可全量导出(JSON)、可删除。
- 它永远回答不了「对像你这样的人,A 比 B 好多少」——攒一万个纵向 n=1 也得不到反事实,一个人身上永远只发生一支〔芒格·第三层〕。
6.2 表 B:个体间效应表 / 基础比率表(between-person)
- 一行 = 一个
(人群切片 × 干预 × 对照 × 结局 × 窗口)的效应估计。 - 回答的问题:在什么人、什么条件下,哪个干预有多大效应,以及多少比例的人身上无效。
- 归属:公司的,且是去标识化的聚合统计。
- 它只能从随机化里长出来,不能从表 A 里攒出来。 这是本文与原方案最根本的分歧——原方案的隐含假设是「数据攒够了因果自然会出来」。
effect(
effect_id uuid PK
prereg_id text -- 预注册 ID,必填,无预注册不得入表
cohort_def json -- {C_pct:[0,40], N_pct:[60,100], baseline_rate:[0.2,0.4], target:"timer"}
n_treat int
n_ctrl int
intervention_id text -- 版本化,如 "startup_friction_v1"
comparator_id text -- 必填,不允许为 "none"
outcome_id text -- 含测量方式,如 "evidence_days_28d_steps"
window_days int
effect_raw float -- 天数差
effect_d float -- 标准化
ci_low, ci_high float -- 95%
p_value float -- 报告,不作为判据
pct_no_change float -- 无变化者比例 ★对外表达的关键字段
analysis_sha char(64) -- 冻结分析代码哈希
published bool, published_url text -- 含阴性结果是否已公开
)
对外表达模板(决策支持话术,非诊断话术):
「在和你相似的 N 个人里,这个干预让 28 天完成天数平均多 X 天(95% 区间 Y–Z),其中有 W% 的人没有变化。要不要试一个月?」
对照原方案的话术「你有 68% 的概率出现 Y 模式」——后者是在做诊断,前者是在做决策支持。〔芒格·第三层〕:「前者监管友好,后者监管高危。」pct_no_change 这个字段是这套话术的骨头,也是全行业没人报的数字。
6.3 PIPL:心理数据属敏感个人信息
〔芒格·逆向 #9〕:「L0–L7 心理画像属 PIPL 敏感个人信息,需单独同意 + 必要性 + 影响评估……未提及一次。」
| 要求 | 落地动作 |
|---|---|
| 单独同意(不得与总隐私政策打包) | 独立的敏感信息同意页,单独勾选、单独可撤回;研究知情同意书与产品隐私政策两份分开;同意页逐条列出收哪些、为什么必须、不给会怎样、存多久、谁能看 |
| 事前个人信息保护影响评估(PIA) | 随机化前完成并留存(法定 3 年);评估内容含:心理数据泄露的后果、去标识化方案、第三方(云厂商)的处理约定 |
| 数据最小化 | 不收真实姓名、身份证、精确位置、通讯录、录音;<18 岁在纳入标准里即排除。手机号仅用于登录与押金退款,与行为数据分表存储,user_hash 不可逆 |
| 境内存储 + 字段级加密 | 服务端与数据库全部在境内云(见第 7 节);自由文本字段落库前加密 |
| 可导出 | 一键导出全量 JSON(表 A 的所有自己的行 + 测评原始作答 + 所有下注与核对记录) |
| 可删除 | 申请后 30 天内硬删除;同意书明示:已聚合进表 B 的效应估计不含个体数据、不可反查,因而不回溯撤销 |
| 非诊断声明 | 全站不出现「诊断」「治疗」「治愈」「疗效」;测评结果页固定一行:「自评问卷,量表位置非人群百分位,非诊断」(沿用 bigfive-public HANDOFF 的口径红线) |
| 安全转介 | PHQ-2/GAD-2 触发阈值 → 弹出转介信息(正规心理援助热线),并可一键退出且全额退押金 |
| HealthKit / 微信运动 | 单独授权,只读步数一项,不读心率、睡眠、位置 |
7. 产品形态与技术栈
7.1 三选一
| 维度 | Web App(H5) | 微信小程序 | 企业微信 |
|---|---|---|---|
| 从微信漏斗进入的摩擦 | 中(外链受限,需跳浏览器) | 最低(微信内直达,无需下载) | 高(需加企业微信) |
| 每日定时通知 | 弱(无原生推送,只能短信/邮件) | 中(订阅消息:交互时续订,可维持链路) | 强(应用消息可主动推送) |
| 客观步数 | 无 | 微信运动可授权 | 有限 |
| 心理类内容的审核风险 | 低 | 中高 | 低 |
| 上线速度 | 最快 | 中(备案 + 审核,估算 2–4 周) | 中 |
| 数据归属 | 全在自己 | 全在自己(小程序只是壳) | 全在自己 |
| 成本 | 最低 | 低 | 低 |
决定:微信小程序。 两条决定性理由:①每日定时通知是这台装置的命脉,四元组靠两次触达,H5 做不到,小程序订阅消息能做到(每次交互顺手续订下一条,配合「结算完顺手押明天的注」的动线自维持链路;估算次日触达率 50–70%);②微信运动步数是唯一零成本的客观行为源,而主结局的客观性是这次实验的全部意义。
审核风险与降级路径:注册「工具 / 效率」类目而非「医疗 / 心理咨询」;全站无诊断与疗效表述;测评标注自评问卷。若仍被驳回 → 降级:H5 承载记录与测评 + 企业微信应用消息承载每日推送,这条路径在开发第一周就要验证,不要等驳回才想。
7.2 技术栈(最轻)
| 层 | 选型 | 说明 |
|---|---|---|
| 前端 | 微信小程序原生 | 1 人 3–4 周(估算)。页面总数 ≤ 10 |
| 后端 | 国内云函数(阿里云 FC / 腾讯云 SCF)+ 托管关系库 | 必须境内(PIPL)。bigfive-public 的 CF Workers + D1 栈只复用代码结构与题库/计分逻辑,不复用部署位置 |
| 定时任务 | 云函数定时触发器 × 4 | 08:30 早触达 / 21:30 晚触达 / 22:30 降级 / 23:59 锁定 |
| LLM | 国产模型 API(仅 Arm B 与每周下注文案) | Arm C 零 LLM,Arm A 模板化 |
| 分析管线 | Python(statsmodels / pymer4),每周一 02:00 跑 | 代码在随机化前冻结并打 tag |
| 看板 | 静态 HTML + 每周生成 | 干预期内只显示可行性指标 |
7.3 分析管线的结构性防呆
〔芒格·账二〕最后那句:「公司会读哪一个?读主观那个。」防呆必须写进代码结构,不能靠自律。
每周一 02:00 的 cron 按 UNBLIND_FLAG 分流:flag=false(干预期内)只跑 feasibility.py(完成率 / 留存 / 缺失模式 / 漏斗),产出团队可见的可行性看板;flag=true(仅 D28 之后)才跑 effects.py(ANCOVA 主分析 + 序贯把关 + 敏感性分析 + 双尺子 2×2)。effects.py 在解盲前物理不可执行——flag 由一个不在业务仓库里的独立密钥控制。中期不做任何疗效分析。
7.4 成本量级(估算)
| 项 | 6 周实验期 |
|---|---|
| 云函数 + 数据库(100 人 × ~3 次/天 ≈ 9,000 次/天) | ¥150–450 |
| LLM 推理(仅 Arm B:33 人 × 28 天 × ~2k token + 每周报告,约 300 万 token) | ¥30–150 |
| 订阅消息推送 | ¥0 |
| 小程序认证 + 备案 | ¥300/年 |
| 押金(140 人 × ¥99,全额返还) | 现金流占用 ¥1.4 万,净成本 ≈ ¥0(违约金收入抵扣手续费) |
| 投放(若走付费,估算 CAC ¥30–80/报名) | ¥0–1.1 万(第一轮建议先走有机 + KOC 置换,把 CAC 当作待测数字而非预算项) |
| 现金合计(不含投放与人力) | < ¥1,500 |
真实成本是人力:1 全栈 + 0.5 实验设计 + 0.5 运营 × 3 个月(估算)。
把这个数字和〔芒格·90 天第 1 件事〕并排看:「要接受一个结果:很可能全部无效。这个结果值 100 万,因为它省掉后面两年。」——现金侧的价格是 ¥1,500。
8. 90 天时间线
总长 13 周(D1–D91 完成全部数据采集;分析与发布在 D92–D105,明确超出 90 天)。
| 周 | 里程碑 | 交付物 | Kill criteria |
|---|---|---|---|
| W1 | 协议设计 | 实验协议初稿、三臂干预内容定稿、主次结局定义 | — |
| W1–W2 | 合规 | 单独同意页文案、研究知情同意书、PIA 文档、转介流程 | 法务/合规判定不可行 → 停 |
| W2 | 预注册冻结 | 协议 + 分析代码 git tag + SHA256 公开;OSF 注册 | 未冻结不得进入 W5 内测 |
| W2–W5 | 开发(并行) | 小程序 10 页;两次触达链路;微信运动授权;四元组 schema;埋点;押金流 | 小程序类目审核驳回且降级路径不通 → 停 |
| W3 | 测评模块 | 从 bigfive-public 抽 40 题 + 8 题自评 + 目标设定交互 |
题库/计分复用失败 → 顺延 1 周 |
| W5 | Gate 1:10 人内测(7 天,不随机化) | 漏斗完成率报告 | F1 < 35% → 停,重做采集形态;F1 在 35–55% → 修文案/时刻,再测一轮 |
| W6–W7 | 招募 | 投放 + 报名 + 测评 + 押金 | D42 进入 run-in < 60 人 → 降级两臂或停 |
| W8–W9 | Run-in 基线 14 天 | 基线完成率、盲态 SD 重估 | Gate 2:淘汰率 > 50% → 暂停并重新评估纳入标准 |
| W9 末 | 随机化 | 分配完成,序列封存 | 随机化人数 < 60 → 转两臂 |
| W10–W13 | 干预期 28 天 | 每周只看可行性看板 | 主结局缺失 > 40% → 降级为描述性研究;安全事件 ≥2 例/臂 → 该臂暂停 |
| D91 | 主结局锁定 | 猜臂 + 主观有效感 + 押金退还 | — |
| D92–D98 | 解盲 + 分析 | 跑冻结的 effects.py,产出表 B 的 3–9 行 |
— |
| D99–D105 | 发布 | 完整结果(含阴性)+ 修订日志 + 三臂用户同等拿到个人报告 | 未按期发布 → 违反预注册承诺,记入修订日志 |
9. 风险与对策
概率均为估算。「触发信号」一栏的作用是把风险变成可以每周检查的指标,而不是一段读了就忘的文字。
| # | 风险 | 概率 | 触发信号(可观测) | 对策 |
|---|---|---|---|---|
| 1 | 全部干预臂无效 | 45% | 干预期第 2 周三臂完成天数差 < 1 天(解盲后才知,但可从可行性看板的分层完成率隐约看到) | 这是预期结果之一,预注册已承诺发布。走第 10 节左支。这一轮的价值在于有资格说出「无效」 |
| 2 | 招募不足 | 40% | 投放 2 周报名 < 70 人 | ①放宽纳入(基线完成率 15–70%)②加小红书 KOC 置换 ③降级为两臂(C 和 B,各 ~40) —— 两臂 40/40 的功效优于三臂 33/33/33(可检出 d 从 0.57 降到 0.52),代价是牺牲 B vs A 这个最值钱的对比 |
| 3 | 同日完成率 < 50% | 40% | Gate 1 内测即可见 | Gate 1 硬拦。备选:四元组降为三元组(砍 context_note);触达时刻改为用户自选;晚间第 2 问改为可跳过 |
| 4 | 巴纳姆式虚假满意 | 60%(会出现) | D28 三臂主观有效感均 > 5/7 且组间无差异,而客观效应组间也无差异 | 这正是双尺子要捕捉的,不算失败,算发现。真正的风险是创始人读主观那个 → 结构性防范:解盲前不可执行效应分析、主结局只有一个且客观、effects.py 由独立密钥控制 |
| 5 | 豆包 / OpenAI 免费覆盖 | OpenAI 已覆盖一半(README 已核验);字节 24 个月内推类似模块 35% | 豆包/猫箱上线「行为实验 / 周度模型更新」模块 | 这一轮的产物不在基座模型射程内——他们有记忆和分发,没有随机化,也没有发表阴性结果的意愿。护城河从「记忆」迁移到「随机化 + 公开校准曲线」〔战略·5.1〕 |
| 6 | 合规 / PIPL / 小程序审核 | 20% 被要求整改 | 审核驳回、用户投诉、监管问询 | 不注册医疗类目、单独同意、PIA 留档、全站无诊断表述;H5 + 企业微信降级路径在 W3 前验证 |
| 7 | 单位经济不成立 | 70%(〔芒格·账三〕已经算过) | 招募 CAC > ¥150/报名 | 第一轮不解决这个问题(实验不是生意),但必须记录 CAC 作为第二轮输入。若 CAC 高到离谱,说明 C 端买量路线死,直接跳到第 10 节右支的 B 端 |
| 8 | 幸存者筛选污染 | 80%(会发生) | Gate 2 淘汰率 > 35%,且淘汰者的 C 分数显著低于随机化者 | 不是避免,是测量。所有淘汰者的测评数据保留,最终报告必须有「淘汰者 vs 随机化者」对照表。〔芒格·工程悖论〕这条链在原对话三万字里一个字都没出现,这里把它变成一张表 |
| 9 | 不良事件 / 用户伤害 | 10% | PHQ-2 或 GAD-2 两周内上升 ≥3 分;自由文本命中自伤关键词 | 关键词实时监控 + 人工复核 + 转介 + 一键退出全额退押金;纳入时已排除在治疗中的人群 |
| 10 | 干预保真度不足(Arm A/B 用户没真按脚本做) | 50% | 每周 1 题保真度自评 < 3/5 | 预注册里写好 per-protocol 敏感性分析;文案把干预动作降到「5 分钟版」以下 |
| 11 | 创始人中途改设计 | 55%(最真实的一条) | 干预期内有人提「要不要给对照臂也加点东西」「要不要提前看看效果」 | 预注册 + 代码冻结 + 独立密钥;任何改动写进修订日志并公开,注明「改之前看到了什么数据」。〔芒格·Lollapalooza 共振点二〕说这一侧「才是贵的那一个」 |
| 12 | 微信群自动退化成打卡群 | 70%(若不逆着拉) | 群内出现第一条「今天做到了」且有人点赞 | 开营即声明「群内记录不采用」;运营统一话术;必要时把群改为单向广播(全员禁言)。〔约束〕微信群的默认引力就是打卡 |
10. 决策树:实验结束后走哪条路
flowchart TD
R["D98 解盲|主要比较 B vs C"] --> Q1{"点估计 ≥3 天<br/>且 95% CI 下界 >0?"}
Q1 -->|"是 · 25%"| E2{"B vs A 也达标?"}
Q1 -->|"否,所有臂 <1 天 · 45%"| N3{"完成率 ≥60%?"}
Q1 -->|"仅某切片成立 · 30%"| M2["把有效切片做成表 B 第一行<br/>产品窄化到该切片,其余全砍"]
E2 -->|是| E5["人格匹配有增量<br/>→ 第二轮 n≈390 + 启动 B 端<br/>买家序:企业EAP > 健康险 > 教练供给侧<br/>消费者排最后"]
E2 -->|否| E6["整包有效但人格建模无增量<br/>→ 收缩为启动摩擦干预器<br/>人格模型降级为分流器"]
N3 -->|"是(干预弱)"| N4["换干预:加 R4 社会在场臂<br/>真人见证 vs AI 见证"]
N3 -->|"否(装置弱)"| N5{"客观数据密度够吗"}
N5 -->|不够| N6["换问题域:睡眠 / 运动<br/>R3 在那儿更松"]
N5 -->|"够但留不住人"| N7["换人群:企业 / 临床<br/>付钱的与受苦的分开"]
10.1 有效(概率 25%,估算)
判据:B vs C 达标。
卖给谁 —— 不是消费者。〔战略·3.4〕:「愿意为『证明有效』付真金的买家,是保险、企业健康、临床——不是消费者。消费者只为『被理解』付钱,不为『被证明』付钱。」
| 买家 | 可触达性 | 决策周期(估算) | 单价量级(估算) | 需要的证据强度 |
|---|---|---|---|---|
| 企业 EAP / HR | 中(需 BD) | 3–6 个月 | ¥50–200/人/年 | 一轮 n≈390 的确证试验 + 效应表 |
| 健康险的健康管理服务包 | 低(需牌照方合作) | 6–12 个月 | 更高 | 两轮 + 第三方复现 |
| 教练 / 咨询师(供给侧工具,类 Rocky) | 高 | 1–2 个月 | ¥200–800/人/月 | 一轮即可(他们买的是工具不是疗效) |
| 消费者 | 最高 | 即时 | ¥99–299 | 〔芒格·账三〕SAM 撑不起买量型消费产品 |
下一步:第二轮 n≈390 确证试验,把表 B 的第一条基础比率做扎实;同时启动供给侧(教练)这条最快见现金的通路。
10.2 无效(概率 45%,估算)
判据:所有臂 vs 对照的点估计 < 1 天且 CI 全含 0。
学到什么(三样,都可公开、都能复用)
- 一条被证伪的核心主张:在「行动执行」域上,个性化信息型干预不优于纯记录。把〔芒格·生物学 4〕的文献推断变成自己的数据,省掉后面两年。
- 三份没人有的可行性数据:同日完整率真实值、缺失的系统性模式(按 C 分数 / 星期几 / 臂切)、淘汰者对照表。
- 第一组「主观有效感 vs 客观效应」配对数据:可发表、可做内容资产、可当 B 端谈判的信用凭证。
下一轮改什么(按数据自动分流,不靠拍脑袋)
| 若 | 则改 | 依据 |
|---|---|---|
| 完成率 ≥60% 但无效 | 换干预:加 R4 社会在场臂(真人见证 vs AI 见证)。装置是好的,插进去的楔子不对 | 〔降秩·R4〕「R5 归零之后,它就是新的贵东西」;〔README·裁定〕容器已换,力可以进来了 |
| 完成率 <60% 且客观数据密度不够 | 换问题域:睡眠 / 运动。客观、短周期,R3 在那儿松 | 〔降秩·R3〕「减肥和睡眠为什么比人格好卖」 |
| 完成率 <60% 但客观数据够,人就是留不住 | 换人群:企业 / 临床,让付钱的人和受苦的人分开 | 〔降秩·R2〕BetterUp 走企业端的本质 |
10.3 混合(概率 30%,估算)——最有价值的一格
判据:某一臂达标而另一臂不达标,或效应只在某个切片上成立。
怎么切:把有效的那个切片做成表 B 的第一行,然后把产品窄化到那个切片,其余全砍。
两种典型形态,动作完全不同:
| 形态 | 含义 | 动作 |
|---|---|---|
| A 有效,B 不优于 A | 最强杠杆成立,但人格建模没带来 C 端增量 | 收缩为「启动摩擦干预器」;人格模型从卖点降为分流器,只留 C/N 两维分配干预版本。7 层模型不作废,位置从产品正面移到尽调材料——〔战略·4.2〕「真正价值不在 C 端体验,在 B 端可信度」 |
| B 优于 A | 人格匹配确有增量,全行业目前没人拿得出这个数 | 全力做第二轮 n≈390;用「我们有这个数」替换掉「更懂我」作为对 B 端与投资人的唯一叙事 |
| 只在某切片成立(如 C 低 + 基线 20–40%) | 效应从来不均匀,pct_no_change 第一次有真实数值 |
纳入标准改成那个切片做针对性第二轮;对外用 6.2 模板,并说出「另外 W% 的人没有变化」 |