You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

交叉验证中线性混合模型的边际R²计算问题咨询

关于线性混合模型交叉验证场景下的R²计算问题

我正在处理一个预测问题,希望计算线性混合模型的固定效应所能解释的数据方差,并计划采用五折交叉验证评估模型的预测性能。

目前网上常见的方法是计算边际R²,可通过MuMIn包中的r.squaredGLMM函数实现(基于Nakagawa等人2017年的研究)。据我理解,该公式是用固定效应解释的方差除以模型总方差:
Nakagawa边际R²公式

但我不清楚如何在交叉验证场景下应用该公式,因为不知道如何计算测试数据集中固定效应、随机效应及误差的特定方差。我当前的解决方案是使用OLS公式(1 - var(fitted)/var(observed)),但这与线性混合模型采用的极大似然法不匹配,且在某些情况下会得出负值。

我的问题分为两步:

  • 是否存在计算Nakagawa公式所需方差的方法?
  • 如果没有,‘经典’R²能否在此场景下应用?

解答

问题1:交叉验证场景下计算Nakagawa式边际R²的方法

Nakagawa的边际R²核心是分解固定效应方差、随机效应方差和残差方差,在交叉验证框架下没有直接的现成工具,但可以手动分步实现:

  • 在每个交叉验证折叠中:
    1. 用训练集拟合线性混合模型,分别生成测试集的仅固定效应预测值(使用predict(model, re.form = ~0))、包含随机效应的全模型预测值(使用predict(model)),同时提取测试集的观测值。
    2. 在测试集上计算三个关键方差:
      • 固定效应预测值的方差:var(fixed_preds)
      • 随机效应贡献的方差:var(mixed_preds) - var(fixed_preds)
      • 残差方差:var(observed - mixed_preds)
    3. 代入Nakagawa公式计算单折叠的边际R²:
      边际R² = 固定效应方差 / (固定效应方差 + 随机效应方差 + 残差方差)
  • 最终将所有折叠的边际R²取平均值,得到交叉验证下的整体结果。

注意:这种方法假设训练集拟合的方差结构可推广到测试集,划分折叠时需保证随机效应分组(如聚类、个体)的完整性,避免数据泄露。

问题2:经典R²在交叉验证场景的适用性

经典R²(即你使用的1 - var(residuals)/var(observed))可以在该场景下使用,但要明确其适用边界:

  • 它衡量的是全模型预测值(固定+随机效应)与观测值的拟合程度,而非仅固定效应的方差解释占比,和你最初量化固定效应贡献的需求不完全匹配。
  • 出现负值是合理现象:当模型预测效果差于“用观测值均值预测”时,经典R²就会为负,这是交叉验证中反映模型泛化能力不足的有效信号。
  • 若你的核心目标是评估预测性能而非固定效应的方差贡献,经典R²(或调整R²)是可行的;但如果需要精准量化固定效应的解释力,它无法替代Nakagawa的边际R²。

内容的提问来源于stack exchange,提问作者Pieter van der Veere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:20:14