【发布时间】:2022-07-09 20:06:55
【问题描述】:
在使用推算数据(mids 类型数据,使用mice-packge 推算)进行精细灰色 Crr() 分析时遇到了重大问题。问题似乎是 Cov1 命令,因为我无法让它从中间数据中提取数据。我已经尝试了几个小时来寻找解决方案,包括使用不同类型的包和方法但没有成功。非常感谢您的帮助!
有一个旧示例具有一组不同的问题here,其中存在与 vcov 相关的问题。由于现在更新了软件包,这不再是问题。出于示范目的,我将使用相同的代码。
library(survival)
library(mice)
library(cmprsk)
test1 <- as.data.frame(list(time=c(4,3,1,1,2,2,3,5,2,4,5,1, 4,3,1,1,2,2,3,5,2,4,5,1),
status=c(1,1,1,0,2,2,0,0,1,1,2,0, 1,1,1,0,2,2,0,0,1,1,2,0),
x=c(0,2,1,1,NA,NA,0,1,1,2,0,1, 0,2,1,1,NA,NA,0,1,1,2,0,1),
sex=c(0,0,0,NA,1,1,1,1,NA,1,0,0, 0,0,0,NA,1,1,1,1,NA,1,0,0)))
dat <- mice(test1,m=10, seed=1982)
#Cox regression: cause 1
models.cox1 <- with(dat,coxph(Surv(time, status==1) ~ x +sex ))
summary(pool(models.cox1))
#Cox regression: cause 1 or 2
models.cox <- with(dat,coxph(Surv(time, status==1 | status==2) ~ x +sex ))
models.cox
summary(pool(models.cox))
#### crr()
#Fine-Gray model
models.FG<- with(dat,crr(ftime=time, fstatus=status, cov1=test1[,c( "x","sex")], failcode=1, cencode=0, variance=TRUE))
summary(pool(models.FG))
#8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
#model draws from orignial dataset, thus missing values, changing to mids-dataset
models.FG<- with(dat,crr(ftime=time, fstatus=status, cov1=dat[,c( "x","sex")], failcode=1, cencode=0, variance=TRUE))
#Error in dat[, c("x", "sex")] : incorrect number of dimensions
#problem persists after changing to specific directory
models.FG<- with(dat,crr(ftime=time, fstatus=status, cov1=dat$imp[,c( "x","sex")], failcode=1, cencode=0, variance=TRUE))
#Error in dat$imp[, c("x", "sex")] : incorrect number of dimensions
# coding my own model.matrix
previous_na_action <- options('na.action')
options(na.action='na.pass')
cov1 <- model.matrix( ~ factor(x)
+ factor(sex),
data = test1)[, -1]
options(na.action=previous_na_action$na.action)
models.FG<- with(dat,crr(ftime=time, fstatus=status, cov1=cov1, failcode=1, cencode=0, variance=TRUE))
#8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
# Same problem, i the same dimentional problems persist i u try to use "data=dat$imp"
# use listed imputed data as source?
longdat <- complete(dat, action='long', inc=TRUE)
previous_na_action <- options('na.action')
options(na.action='na.pass')
cov1 <- model.matrix( ~ factor(x)
+ factor(sex),
data = longdat)[, -1]
options(na.action=previous_na_action$na.action)
models.FG<- with(dat,crr(ftime=time, fstatus=status, cov1=cov1, failcode=1, cencode=0, variance=TRUE))
#8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
8 cases omitted due to missing values
# still same problem
models.FG
有什么想法我不能让 With() 正确索引协变量吗?还有其他可以处理中间对象 CRR 分析的软件包吗?从理论上讲,我想我可以将中间值转换为普通数据->单独进行分析->收敛我尝试使用 as.mira-command 进行此操作的数据集,但也无法使其正常工作。
我们将不胜感激!由于我对 R 和 stackoverflow 还很陌生,我希望这个例子足够清楚。
【问题讨论】:
-
这能回答你的问题吗? stackoverflow.com/questions/41794649/…
-
不幸没有。不过感谢您的帮助!根据下一条评论,我自己设法解决了:)
标签: r survival-analysis imputation r-mice