用Python实现方差分解:拆分环境与空间变量的解释率并绘制韦恩图
2026/9/3 13:03:59 网站建设 项目流程

模型调完了,R² = 0.85,审稿人却问:“这个解释率里,环境变量和环境空间结构各占多少?它们重叠了多少?”如果你只能回答“模型整体拟合不错”,这张配图就不太稳。对于生态、地理、环境、遥感这类经常处理空间数据的论文来说,把“空间变量”和“环境变量”两组解释源的贡献拆开,已经不只是统计学细节,而是研究设计的一部分。

这篇文章要解决的,正是这个高频需求:用 Python 做方差分解(Variance Partitioning),并把结果画成期刊风格的多面板韦恩图。很多人默认这种图只有 R 语言的 vegan 包能做,其实 Python 的 pandas、statsmodels、matplotlib 组合完全可以复现,并且能顺畅接进机器学习工作流。读完这篇文章,你会得到一套可复用的 Python 代码,可以从模拟数据切换到自己的论文数据,得到环境、空间、共同和未解释四个部分的解释率,并批量绘制多张配图。

先给一个明确判断:这条路径的核心不是绘图库,而是“偏解释率”的计算。韦恩图只是视觉出口,真正要避开的坑是如何从两个相关性很高的变量集合里,拆出各自独立和重叠的贡献。

1. 为什么需要方差分解韦恩图

在生态学、土壤学、传染病空间分析、城市环境研究等领域,研究者经常面对同一类问题:响应变量既受环境梯度影响,又受地理空间结构影响。因此大家会很自然地把解释变量分为两组:

  • 环境变量:温度、降水、土壤理化性质、土地利用比例等。
  • 空间变量:经度、纬度、以及由坐标衍生出的空间结构项,例如 x²、y²、xy,或更高级的距离矩阵特征。

如果只做一次全模型回归,我们得到的解释率是两组变量共同产生的总解释率。问题是,温度和地理位置往往存在相关性,比如低纬度通常更温暖,地形起伏会影响降水,也可能影响采样点是否容易到达。直接比较两个单独模型的 R² 会把同一个解释来源重复计算,这就会得出错误结论:某变量子集贡献很大,而实际上它的作用有很大一部分是通过另一组变量间接发生的。

方差分解提供了一个更接近真相的答案。它把模型总解释率拆成四个部分:

  1. 环境的独立贡献,即在扣除空间变量之后,环境变量仍然能解释的部分。
  2. 空间的独立贡献,即在扣除环境变量之后,空间变量仍然能解释的部分。
  3. 环境与空间共同产生的贡献,也就是二者理论上都解释不了的那部分重叠。
  4. 模型未能解释的部分。

这种分解逻辑,是很多高分期刊配图的基础。它让读者一眼看出某个响应的解释来源是环境主导、空间主导,还是两者密不可分。从机器学习工程的视角看,这也是一种基于线性模型的解释性分析:你不仅关心预测准不准,还关心哪些特征来源真正提供了有效信息。

2. 方差分解的数学结构:从一个 R² 到四个区块

为了不把概念停留在“大致分一分”的层面,需要把公式写清楚。设响应变量为 y,两组解释矩阵为:

  • E:环境变量矩阵。
  • S:空间变量矩阵。

先用普通最小二乘线性回归或等价模型分别计算:

  • R²_f:全模型 y ~ E + S 的决定系数。
  • R²_e:仅环境模型 y ~ E 的决定系数。
  • R²_s:仅空间模型 y ~ S 的决定系数。

然后按以下公式拆解:

组成部分含义计算公式
a环境独立贡献R²_f − R²_s
b空间独立贡献R²_f − R²_e
c环境与空间共同贡献R²_e + R²_s − R²_f
d未解释部分1 − R²_f

从这个公式最容易理解的一点是:环境独立贡献不是“环境模型单独跑出来的 R²”,而是全模型扣除空间模型后的增量。它回答的问题是:在已经知道空间结构的情况下,再引入环境变量还能额外解释多少变异。同理,空间独立贡献是全模型扣除环境模型后的增量。两者重合的部分,就是环境与空间因为相关性而产生的共同解释率。

为什么公式中会写成 R²_e + R²_s − R²_f?我们做一个简单的文氏图验证:单独看环境模型,它包含 a + c;单独看空间模型,它包含 b + c;全模型包含 a + b + c。于是:

(a + c) + (b + c) − (a + b + c) = c

这样共同贡献就可以还原出来。

在变量个数较多时,直接使用朴素 R² 会因为自由度问题高估解释率,所以实际发表材料中建议使用校正决定系数 adjusted R²。下面代码中的 r2_score 函数会同时支持普通 R² 和 adjusted R²。如果样品量不够大、解释变量数量较多,请把 adjusted 参数设为 True。

3. 环境准备与依赖安装

本文代码使用 Python 3,建议在 Python 3.9 及以上环境运行。核心依赖

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询