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

使用R的nlmer拟合带随机效应的Michaelis-Menten模型遇变量未找到错误

错误原因与解决方法

核心错误:变量名不匹配

错误提示object 'TIR' not found是因为你明确说明响应变量是CTIR,但代码中全程使用了TIR作为变量名,与数据集中的实际列名不符。

修正后的代码

# Load required library
library(lme4)

# Load data
tirsfl <- read.csv("TIR.FL.csv", header=TRUE, sep=",") 
# 先确认数据集列名,确保CTIR和FL存在
names(tirsfl)

# Michaelis-Menten函数定义
michaelis_menten_model <- function(FL, maxTIR, FoodK) {
  maxTIR * (FL / (FL + FoodK))
}

# 拟合非线性混合模型(替换TIR为CTIR)
fit <- nlmer(CTIR ~ michaelis_menten_model(FL, maxTIR, FoodK) + (1 | Tank),
             data = tirsfl,
             start = c(maxTIR = max(tirsfl$CTIR, na.rm = TRUE), 
                       FoodK = median(tirsfl$FL, na.rm = TRUE)))
summary(fit)

实现你的目标需求

1. 获取AIC值

直接调用AIC()函数:

AIC(fit)

2. 获取模型参数的p值

lme4包的nlmer默认不输出p值,可通过以下方式获取:

  • 使用lmerTest包做参数检验:
    library(lmerTest)
    # 查看参数的Wald检验结果
    coef(summary(fit))
    # 对比全模型与零模型,判断整体效应
    null_fit <- nlmer(CTIR ~ 1 + (1 | Tank), data = tirsfl, start = c(Intercept = mean(tirsfl$CTIR)))
    anova(fit, null_fit)
    
  • 通过参数置信区间辅助判断(若区间不包含0则参数显著):
    confint(fit, method = "Wald")
    

3. 计算R²值

非线性混合模型的R²没有统一标准,推荐使用MuMIn包的Nakagawa方法,计算边际R²(仅固定效应解释的变异)和条件R²(固定+随机效应共同解释的变异):

library(MuMIn)
r.squaredGLMM(fit)

内容的提问来源于stack exchange,提问作者Kat Kabanova

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 14:18:08