3.2 关系、分组与可视化诚实性:图中相关不等于机制
散点图显示任务时长越长,成功率越高。情报官准备据此延长所有任务,管理员却让你先按任务类型着色:高难任务更长、成功率也由另一套规则计算,汇总斜率可能只是群体构成造成的。
本课目标
- 为变量类型选择关系图与统计量;
- 区分 Pearson、Spearman 和非线性关系;
- 识别混杂、聚合偏差与 Simpson 悖论;
- 使用分母、区间和视觉编码诚实表达不确定性。
1. 散点图先处理重叠
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 相关基于秩,衡量单调关系,对尺度变换较稳健,但也不是“非线性万能相关”。
columns = ["duration_minutes", "resource_cost", "team_size"]
pearson = frame[columns].corr(method="pearson")
spearman = frame[columns].corr(method="spearman")检查:
- 相关使用了哪些完整案例,缺失是否让每一对样本不同;
- 重复测量是否被当作独立点;
- 范围受限是否压低相关;
- 极端值是否主导;
- 时间趋势是否让两列共同上升。
相关接近零仍可能存在 U 形、阈值或分组后相反的强关系。
3. 分组比较要展示分布和样本量
箱线图显示中位数、四分位数和按规则定义的须,不直接给出“异常真值”,也不能仅凭箱体不重叠判断统计显著。
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 悖论提醒你检查构成
两个组内,新方案都比旧方案成功率高;汇总后却可能更低,因为新方案承担了更多困难任务。
简单任务:new 90/100,old 80/100
困难任务:new 20/100,old 1/10组内比较与汇总比较权重不同。解决不是永远分组,而是根据因果问题确定该控制哪些变量、哪些变量是中介或碰撞点。EDA 可以揭示分层反转,因果选择留到第 8 章。
5. 时间关系要防共同趋势
两个随时间增长的累计指标可能相关接近 1,即使它们没有直接联系。先画原序列,再考虑:
- 去趋势或看差分;
- 季节分解;
- 滞后关系;
- 结构突变;
- 自相关导致的有效样本量下降。
简单地把一列向后 shift 后找到最高相关,会进行大量隐式比较;若要做推断,需要预先限定窗口或校正选择偏差。
6. 图形编码会放大或缩小差异
坐标轴
柱状图长度编码通常应从零开始,否则微小差异会被放大。折线图展示变化时可使用非零范围,但必须清楚标轴,避免截断误导。
面积与三维
气泡面积应与数值成比例,而不是半径。3D 柱图会引入透视和遮挡,通常不利于准确比较。
颜色
顺序数据用连续色阶,正负偏差用以有意义中心为中点的发散色阶,类别用离散色。兼顾色觉差异,并避免只靠颜色传达关键状态。
双轴
双 Y 轴通过任意缩放可以制造同步感。优先分面、标准化指数或直接标注;若必须使用,明确尺度与理由。
7. 不确定性与分母要进入图表
分组成功率可同时画:
点估计 + 置信区间 + 样本量 n置信区间的解释取决于估计方法和抽样假设。对聚类、重复用户或时间相关数据,简单二项独立区间可能过窄。
误差条必须说明是标准差、标准误还是置信区间。三者不可互换;标准差描述观测离散,标准误描述估计量抽样波动。
8. 多重探索需要留痕
看几十张图后挑出最惊人的一张,会放大偶然模式。EDA 可以自由探索,但后续验证应:
- 在独立数据或新时间窗口复现;
- 记录探索过的变量和切片;
- 区分探索性与确认性结论;
- 对正式多重检验做校正或层级建模;
- 不把筛选后的 p 值当预注册检验结果。
9. 自动报告是索引,不是结论
自动 profiling 能快速列出分布、缺失和相关,但会:
- 在高维数据产生大量偶然告警;
- 不理解业务粒度与分母;
- 对时间、聚类和采样设计缺少上下文;
- 可能消耗大量内存与时间。
用它发现需要调查的列,再回到数据契约和生成过程。工具版本和依赖在实施时再选择,不把某个当前包名写成永久标准。
常见误区
- 箱体不重叠就代表显著差异:图形不是检验规则。
- Spearman 能发现所有非线性关系:它主要捕捉单调关系。
- 按更多变量分组总更接近真相:控制中介或碰撞点会引入偏差。
- 误差条都表示数据波动:SD、SE 和 CI 回答不同问题。
练习
- 构造 Pearson 接近零但有清晰 U 形关系的数据并画图。
- 用一组数据展示汇总与分层趋势方向相反。
- 把一张截断 Y 轴的柱状图改成更诚实的表达。
- 为成功率图增加分母、区间方法和重复用户假设说明。
小结
关系图展示的是在特定采样、分组和视觉编码下的关联。相关系数、趋势线和箱线图都需要分母、结构与不确定性解释。EDA 找到的是待验证模式,不是因果机制。
下一章转到 SQL:在写窗口函数之前,先固定一行的粒度、连接基数和指标分母,否则查询会精确地重复计算错误事实。