RDA(冗余分析)出错案例——变量消失丨TomatoSCI分析方法研究

小编发现RDA(冗余分析)这个方法在大家中间挺受欢迎的。之前也分享过一些相关内容,这次想换个角度,把平时遇到的出错案例整理出来,或许能给刚接触这个方法的朋友一点提醒。

前段时间,一个小伙伴急匆匆找到我,说自己做出来的图里少了一个自变量——"SP"。(图1,原始数据不便展示,这里已做处理。)我帮他重复跑了几次,结果依然一样。于是换了一些示例数据来试,一切正常。这样一来问题就锁定在数据本身了。老实说,刚开始我也没有头绪,在不清楚数据来源的情况下,只能换不同角度去摸索。

RDA分析结果图 - 显示变量消失的情况

我先做了一个简单的相关性分析,看看变量之间的关系(图2)。相关性分析在检查共线性方面还是挺高效的。

运气不错,一眼就发现了问题:BD和SP这两个变量的相关系数,在保留四位小数的情况下竟然达到了-1。出现这种情况只有两种可能——要么是用BD算出SP,要么是用SP算出BD。后来一问,果然如此,这两个变量本质上就是通过公式互相换算的。

相关性分析结果图 - 显示BD和SP的完全共线性

在冗余分析中,这就意味着BD和SP其实是同一个变量,属于完全共线性。我们可以把它理解成毫米和分米的关系,毫米和分米的关系一定是完全共线性的。面对这种情况,RDA的算法会自动剔除其中一个变量。换句话说,我们只能二选一:要么保留BD,要么保留SP。

如果在建模之前没有意识到这种问题,就很容易在后续分析中陷入被动,尤其是前面所有结果里都包含了这两个变量的情况下。

解决方案与建议

为了避免这种情况,我的建议有两点:

  1. 不要同时纳入可以互相换算的指标。只保留最有代表性、最重要的一个。很多建模算法对共线性都比较敏感,比如线性回归(带你从0学分析之—线性回归模型篇(1))、逐步回归(带你从0学分析之—逐步回归篇(1))、结构方程(偏最小二乘结构方程(PLS-SEM)_TomatoSCI分析日记)等
  2. 在数据清洗阶段多做共线性检查。简单的相关性分析就很实用,能帮我们提前发现这类隐患。

直接下单:

TomatoSCI数据分析平台,陪你过完最后一关!✅冗余分析一键完成 ✅ 免登录 ✅ 实时专业答疑 ✅ 附参考资料。

TomatoSCI数据分析平台展示