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

拟合Cox模型时年龄边际图非线性,用coxphw遇列未定义错误求助

问题原因与解决办法
  • 错误根源:coxphw对公式变量的查找规则和coxph存在差异——它要求公式里的所有变量(包括Surv()里的时间和结局变量)必须是输入数据框data中的列。你提前把time和event提取成了全局环境中的单独变量,coxphw会试图在data里找名为time和event的列,自然找不到,因此抛出“undefined columns selected”错误。而coxph允许优先从全局环境读取变量,所以能正常运行。

  • 修正步骤:

    1. 不要提前提取time和event,直接在Surv()中使用data里的原始列名;
    2. 如果要加入fp()调整年龄的非线性,直接把年龄变量放到fp()中,确保它也是data中的列。
  • 修正后的示例代码:

rm(list=ls())
library(survival)
library(survminer)
library(survMisc)
library(dplyr)
library(mfp)
library(coxphw)

setwd(dirname(rstudioapi::getActiveDocumentContext()$path))
data = read.csv2("Survival Analysis.csv", header = T)

# 用data中的原始列名构建公式,coxphw可正常运行
modelw = coxphw(Surv(Weken.in.dienst, Status) ~ Man, data = data)
summary(modelw)

# 加入fp()调整年龄非线性的示例(假设年龄列名为Age,可根据实际调整自由度df)
modelw_fp = coxphw(Surv(Weken.in.dienst, Status) ~ Man + fp(Age, df=3), data = data)
summary(modelw_fp)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 03:05:27