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

reda包mcf函数绘制MCF图时control截断参数失效求助

解决MCF图X轴截断至1000的问题

问题原因

你当前使用的是reReg包中的mcf函数,该函数的control参数结构和原reda包的mcf函数存在差异,原control=list(to=1000)的设置方式不再适用。

两种可行解决方法

方法1:在绘图时直接指定X轴范围

reReg包的plot.mcf函数支持通过xlim参数直接限定X轴范围,无需依赖control参数。修改代码如下:

library(reReg)
library(ggplot2)
library(frailtypack)
data(readmission, package = "frailtypack")
readmission <- subset(readmission, !(id %in% c(60, 109, 280)))

# 拟合MCF模型(无需在control中设置to)
mcf0 <- mcf(Recur(t.start %2% t.stop, id, event, death) ~ sex, data = readmission)

# 绘图时用xlim指定X轴截断到1000
p <- plot(mcf0, conf.int = TRUE) + 
  theme_bw(base_size = 20) +
  xlim(c(0, 1000))
print(p)

方法2:提前截断MCF对象的时间数据

如果需要先截断MCF计算的时间范围,可以手动筛选mcf0对象中的数据后再绘图:

# 拟合模型后,筛选时间<=1000的行
mcf0_truncated <- mcf0
mcf0_truncated$time <- mcf0_truncated$time[mcf0_truncated$time <= 1000]
mcf0_truncated$mcf <- mcf0_truncated$mcf[mcf0_truncated$time <= 1000]
# 同步处理置信区间数据
if (!is.null(mcf0_truncated$lower)) {
  mcf0_truncated$lower <- mcf0_truncated$lower[mcf0_truncated$time <= 1000]
  mcf0_truncated$upper <- mcf0_truncated$upper[mcf0_truncated$time <= 1000]
}

# 绘制截断后的MCF图
p <- plot(mcf0_truncated, conf.int = TRUE) + 
  theme_bw(base_size = 20)
print(p)

补充说明

reReg包的mcf函数文档中提到的control参数,主要用于控制模型拟合的迭代过程(如收敛阈值、最大迭代次数),而非绘图的轴范围设置。原reda包的参数逻辑在reReg中未被继承,因此需要改用上述适配方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:17:16