跳到内容

3.2 关系、分组与可视化诚实性:图中相关不等于机制

散点图显示任务时长越长,成功率越高。情报官准备据此延长所有任务,管理员却让你先按任务类型着色:高难任务更长、成功率也由另一套规则计算,汇总斜率可能只是群体构成造成的。

本课目标

  • 为变量类型选择关系图与统计量;
  • 区分 Pearson、Spearman 和非线性关系;
  • 识别混杂、聚合偏差与 Simpson 悖论;
  • 使用分母、区间和视觉编码诚实表达不确定性。

1. 散点图先处理重叠

python
import seaborn as sns

sns.scatterplot(
    data=frame,
    x="duration_minutes",
    y="resource_cost",
    hue="mission_type",
    alpha=0.25,
    s=20,
)

大量点重叠时,散点密度会被遮住。可使用:

  • 透明度与小点;
  • hexbin 或二维密度;
  • 按分组分面;
  • 对展示抽样,但统计量仍用完整数据;
  • 在图注说明抽样规则。

趋势线会隐藏局部结构。线性拟合前查看残差和非线性;平滑曲线则应说明方法和带宽。

2. 相关系数回答的关系不同

Pearson 相关衡量线性关联,对极端值敏感。Spearman 相关基于秩,衡量单调关系,对尺度变换较稳健,但也不是“非线性万能相关”。

python
columns = ["duration_minutes", "resource_cost", "team_size"]
pearson = frame[columns].corr(method="pearson")
spearman = frame[columns].corr(method="spearman")

检查:

  • 相关使用了哪些完整案例,缺失是否让每一对样本不同;
  • 重复测量是否被当作独立点;
  • 范围受限是否压低相关;
  • 极端值是否主导;
  • 时间趋势是否让两列共同上升。

相关接近零仍可能存在 U 形、阈值或分组后相反的强关系。

3. 分组比较要展示分布和样本量

箱线图显示中位数、四分位数和按规则定义的须,不直接给出“异常真值”,也不能仅凭箱体不重叠判断统计显著。

python
ax = sns.boxplot(
    data=frame,
    x="mission_type",
    y="duration_minutes",
)
ax.set_xlabel("Mission type")
ax.set_ylabel("Duration (minutes)")

样本较小时可叠加原始点;样本巨大时很小的差异也可能统计显著,应同时报告效应大小和业务尺度。分布偏斜时考虑 violin/ECDF,但核密度形状依赖平滑参数。

4. Simpson 悖论提醒你检查构成

两个组内,新方案都比旧方案成功率高;汇总后却可能更低,因为新方案承担了更多困难任务。

text
简单任务:new 90/100,old 80/100
困难任务:new 20/100,old 1/10

组内比较与汇总比较权重不同。解决不是永远分组,而是根据因果问题确定该控制哪些变量、哪些变量是中介或碰撞点。EDA 可以揭示分层反转,因果选择留到第 8 章。

5. 时间关系要防共同趋势

两个随时间增长的累计指标可能相关接近 1,即使它们没有直接联系。先画原序列,再考虑:

  • 去趋势或看差分;
  • 季节分解;
  • 滞后关系;
  • 结构突变;
  • 自相关导致的有效样本量下降。

简单地把一列向后 shift 后找到最高相关,会进行大量隐式比较;若要做推断,需要预先限定窗口或校正选择偏差。

6. 图形编码会放大或缩小差异

坐标轴

柱状图长度编码通常应从零开始,否则微小差异会被放大。折线图展示变化时可使用非零范围,但必须清楚标轴,避免截断误导。

面积与三维

气泡面积应与数值成比例,而不是半径。3D 柱图会引入透视和遮挡,通常不利于准确比较。

颜色

顺序数据用连续色阶,正负偏差用以有意义中心为中点的发散色阶,类别用离散色。兼顾色觉差异,并避免只靠颜色传达关键状态。

双轴

双 Y 轴通过任意缩放可以制造同步感。优先分面、标准化指数或直接标注;若必须使用,明确尺度与理由。

7. 不确定性与分母要进入图表

分组成功率可同时画:

text
点估计 + 置信区间 + 样本量 n

置信区间的解释取决于估计方法和抽样假设。对聚类、重复用户或时间相关数据,简单二项独立区间可能过窄。

误差条必须说明是标准差、标准误还是置信区间。三者不可互换;标准差描述观测离散,标准误描述估计量抽样波动。

8. 多重探索需要留痕

看几十张图后挑出最惊人的一张,会放大偶然模式。EDA 可以自由探索,但后续验证应:

  • 在独立数据或新时间窗口复现;
  • 记录探索过的变量和切片;
  • 区分探索性与确认性结论;
  • 对正式多重检验做校正或层级建模;
  • 不把筛选后的 p 值当预注册检验结果。

9. 自动报告是索引,不是结论

自动 profiling 能快速列出分布、缺失和相关,但会:

  • 在高维数据产生大量偶然告警;
  • 不理解业务粒度与分母;
  • 对时间、聚类和采样设计缺少上下文;
  • 可能消耗大量内存与时间。

用它发现需要调查的列,再回到数据契约和生成过程。工具版本和依赖在实施时再选择,不把某个当前包名写成永久标准。

常见误区

  • 箱体不重叠就代表显著差异:图形不是检验规则。
  • Spearman 能发现所有非线性关系:它主要捕捉单调关系。
  • 按更多变量分组总更接近真相:控制中介或碰撞点会引入偏差。
  • 误差条都表示数据波动:SD、SE 和 CI 回答不同问题。

练习

  1. 构造 Pearson 接近零但有清晰 U 形关系的数据并画图。
  2. 用一组数据展示汇总与分层趋势方向相反。
  3. 把一张截断 Y 轴的柱状图改成更诚实的表达。
  4. 为成功率图增加分母、区间方法和重复用户假设说明。

小结

关系图展示的是在特定采样、分组和视觉编码下的关联。相关系数、趋势线和箱线图都需要分母、结构与不确定性解释。EDA 找到的是待验证模式,不是因果机制。

下一章转到 SQL:在写窗口函数之前,先固定一行的粒度、连接基数和指标分母,否则查询会精确地重复计算错误事实。

Built with VitePress | Software Systems Atlas