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

利用R语言Growthrates包提取两种模型的每孔AIC值求助

提取Growthrates包拟合模型的AIC值

你可以通过以下步骤提取两种拟合模型的AIC值并存储:

  • 提取fit_easymodel的AIC值
    fit_easylinear返回的拟合对象中直接包含aic元素,用sapply遍历列表即可批量提取:

    # 提取easylinear模型的AIC值
    aic_easy <- sapply(fit_easymodel, function(model) model$aic)
    
  • 提取fit_splinemodel的AIC值
    同理,fit_spline的拟合结果也包含aic元素,用同样的方式提取:

    # 提取spline模型的AIC值
    aic_spline <- sapply(fit_splinemodel, function(model) model$aic)
    
  • 整合结果并存储
    为了方便对应每个孔的信息,可以将AIC值与孔名(即df中除时间列外的列名)合并成数据框,后续可直接保存为文件:

    # 创建包含孔名和两种模型AIC的数据框
    aic_df <- data.frame(
      well_id = colnames(df)[-1],  # 提取所有孔的名称
      aic_easylinear = aic_easy,
      aic_spline = aic_spline
    )
    
    # 保存结果到CSV文件(可选)
    write.csv(aic_df, "growth_model_aic_results.csv", row.names = FALSE)
    

完整代码示例

library(growthrates)
split_df <- split(bactgrowth,~strain+replicate+conc)
timeseries <- lapply(split_df, function(x) x$value)

df <- cbind(data.frame(time = 1:31),
            as.data.frame(timeseries))

fit_easymodel <- lapply(2:length(colnames(df)), function(x) fit_easylinear(df$time, df[[x]]))
fit_splinemodel <- lapply(2:length(colnames(df)), function(x) fit_spline(df$time, df[[x]],spar=0.5))

# 提取AIC值
aic_easy <- sapply(fit_easymodel, function(model) model$aic)
aic_spline <- sapply(fit_splinemodel, function(model) model$aic)

# 整合并存储
aic_df <- data.frame(
  well_id = colnames(df)[-1],
  aic_easylinear = aic_easy,
  aic_spline = aic_spline
)

# 可选:保存到本地
write.csv(aic_df, "growth_aic_results.csv", row.names = FALSE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:35:35