0

我有两个独立的数据集,一个包含 5421 个主题,另一个包含 1000 个主题。我想做的是使用外部数据集(test_dat,n=1000)验证从主数据集(main_dat,n=5421)获得的 Cox 模型。但是,我同时使用 Hmisc 包中的 rcorr.cens() 和 rms 中的 val.surv 收到错误消息。这是我一直在做的事情:

library(rms)
surv.obj=with(main_dat,Surv(survival,surv_cens))  ## to use with rcorr.cens
phmodel=cph(surv.obj~sex+age+treatment, x=TRUE, y=TRUE, surv=T, time.inc=10, data=main_dat, se.fit=T)

estimates=survest(phmodel, newdata=test_dat, times=10)

rcorr.cens(x=estimates, S=surv.obj)

rcorr.cens 中的错误(x = 估计,S = surv.obj):y 必须与 x 具有相同的长度

w=val.surv(phmodel ,newdata=test_dat, u=10)

val.surv 中的错误(phmodel,newdata = test_dat,u = 10):dims [product 1000] 与对象 [5421] 的长度不匹配此外:警告消息:In est.surv + S[, 1]:更长对象长度不是较短对象长度的倍数

我做错了什么还是两个数据集必须有相同数量的观察?

任何帮助将不胜感激。

4

1 回答 1

1

我没有看到在哪里test_dat定义surv.obj。您需要将其添加到或拥有一个在调用中使用test_dat的独立对象。surv.obj

请注意,您的样本量不足以进行拆分样本验证,即,如果您多次重新拆分样本,您将在结果中出现分歧。严格的引导程序内部验证(使用rmsvalidatecalibrate函数)通常更精确。

于 2015-02-06T13:09:35.733 回答