统计分析工作流:从问题到结论要留下完整证据链
统计方法不是菜单。可靠分析要让读者顺着“问题 → 数据生成 → estimand → 模型 → 诊断 → 不确定性 → 决策”走一遍,每一步都能检查。
flowchart LR
A[研究问题] --> B[数据如何产生]
B --> C[Estimand]
C --> D[分析计划]
D --> E[数据体检]
E --> F[估计与诊断]
F --> G[不确定性]
G --> H[解释与决策]
H -.新问题.-> A
第一步:把问题写成 estimand
一个完整 estimand 至少包含:
- 目标总体
- 处理或暴露
- 结局
- 比较条件
- 效应尺度
- 缺失、死亡、退出等中间事件怎样处理
“新版本有没有用”太模糊;“所有被随机分配用户在 14 天内转化率的 intention-to-treat 风险差”才可计算。
第二步:画出数据生成过程
在看模型前先问:
- 谁有机会进入数据?
- 处理怎样分配?
- 每个对象贡献几行?
- 什么时候测量?
- 哪些变量在处理前,哪些在处理后?
- 缺失和退出怎样发生?
这一步决定独立性、可推广性与因果识别。公式修不好抽样框遗漏,也不能把处理后的变量变成安全协变量。
第三步:区分确认与探索
确认性分析在看结果前固定:
- 主要结局与主要比较
- 样本排除规则
- 变换、异常值和缺失处理
- 模型、标准误和多重比较策略
- 样本量与停止规则
探索不是坏事,但必须标记。探索得到的假设需要新数据确认;同一批数据既找模式又按固定检验解释,会低估选择不确定性。
第四步:先做数据体检,不先追显著
最低限度包括:
| 检查 | 要发现什么 |
|---|---|
| 行数、唯一对象数 | 重复记录与分析单位不一致 |
| 范围、单位、时间顺序 | 录入错误与穿越 |
| 缺失率和缺失模式 | 选择性缺失 |
| 分组计数与基线 | 分配或合并异常 |
| 分布与散点图 | 偏态、边界、多峰、异常值 |
| 数据处理日志 | 结果是否依赖临时手改 |
数据清洗应生成可复现的审计表:每条规则删了或改了多少记录。
第五步:模型跟着问题和设计走
- 连续结局不自动等于线性回归——检查关系形状和误差结构
- 二元结局用能尊重 \([0,1]\) 范围的模型
- 计数考虑暴露量、过度离散和零膨胀
- 重复测量、门店或班级数据处理相关性
- 时间数据处理趋势、季节与自相关
- 复杂抽样保留权重、层和群
先选择 estimand,再选择能估它的模型。不要因为软件默认输出某个系数,就把问题改成那个系数。
第六步:诊断要针对结论会怎样坏
诊断不是追求残差图“完美”,而是判断违背假设会把目标推向哪里:
- 非线性:平均斜率是否掩盖关键区间?
- 异方差:标准误是否失真?
- 高杠杆点:结论是否由少数观测决定?
- 共线性:单个系数是否不可辨认?
- 模型错设:预测或效应尺度是否错误?
- 未观测混杂:因果结论对多强混杂才会翻转?
应做有理由的敏感性分析,不是把几十种模型跑一遍挑喜欢的。
第七步:交付估计,不只交付 p 值
一份最小结果包含:
- 原始样本量、事件数和缺失
- 估计目标与估计值
- 置信区间或后验区间
- 必要时的 p 值
- 实际重要阈值
- 使用的模型和标准误
- 关键诊断与敏感性分析
图表显示原始数据或可解释摘要,不只画均值柱加星号。
第八步:把统计结论翻译成决策
统计结果常落在四个区域:
| 区间相对实际阈值 | 解释 |
|---|---|
| 完全跨过有益阈值 | 有证据支持实际有益 |
| 包含零但排除重要效应 | 可能等效或无实际价值 |
| 同时包含有害和有益 | 信息不足 |
| 极窄但围绕微小效应 | 精确地发现不重要差异 |
决策还要加入成本、风险、可逆性和外部证据。统计分析提供信息,不替组织定义效用函数。
可复现不是只把代码上传
要让别人真正复核,需要:
- 原始数据或可重建的数据说明
- 数据字典与版本
- 从原始数据到结果的一键流程
- 固定依赖与随机种子
- 预注册或分析计划
- 所有偏离计划的记录
- 表图与正文数字由同一结果对象生成
代码能跑但不知道列含义、排除理由和 estimand,仍不可复核。
一份最终审查
- 结论是否超出目标总体?
- 相关是否被说成因果?
- “不显著”是否被说成“没有差异”?
- 相对效应是否遗漏绝对效应?
- 是否只展示有利的结局、子组或模型?
- 标准误是否识别了配对、聚类、时间和权重?
- 图、表、正文的分母是否一致?
- 别人能否从原始输入重建最终数字?
好的统计分析不是用了最复杂的模型,而是从问题到结论没有暗箱,每个判断都能被下一位读者追溯。