Function 将coxphf运行到循环函数中并作为单独分析时的不同结果

Function 将coxphf运行到循环函数中并作为单独分析时的不同结果,function,cox-regression,Function,Cox Regression,我试着用Firth惩罚可能性进行Cox回归。当我将单变量分析作为一个单独的分析运行时,我得到的结果与我将其运行到一个函数中以应用于多个列时得到的结果不同。总结我的数据: OS_months <- c(33.6, 52.8, 7.2, 18, 80.4, 109.2, 16.8, 108, 2.4, 51.6, 33.6, 38.4, 7.2, 12, 144, 2.4, 68.4, 58.8, 52.8, 142.8, 42, 8.4, 115.2, 10.8, 103.2, 66,

我试着用Firth惩罚可能性进行Cox回归。当我将单变量分析作为一个单独的分析运行时,我得到的结果与我将其运行到一个函数中以应用于多个列时得到的结果不同。总结我的数据:

OS_months <- c(33.6, 52.8, 7.2, 18, 80.4, 109.2, 16.8, 108, 2.4, 51.6, 33.6, 
38.4, 7.2, 12, 144, 2.4, 68.4, 58.8, 52.8, 142.8, 42, 8.4, 115.2, 
10.8, 103.2, 66, 18, 141.6, 66, 144, 13.2, 64.8, 38.4, 20.4, 
81.6, 86.4, 105.6, 75.6, 51.6, 115.2, 21.6, 201.6, 62.4, 81.6, 
157.2, 109.2, 170.4, 44.4, 108, 40.8)

OS_status <-  c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
0, 0, 0, 0, 0, 0, 1, 0, 0)

TSPAN6 <- c(0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
0, 0, 1, 0, 1, 0, 1, 0, 0)

HR <- data.frame(OS_months, OS_status, TSPAN6)
结果


coxphf(formula = Surv(OS_months, OS_status) ~ TSPAN6, data = HR)
Model fitted by Penalized ML
Confidence intervals and p-values by Profile Likelihood 

           coef se(coef) exp(coef) lower 0.95 upper 0.95    Chisq          p
TSPAN6 1.801352 1.051748  6.057834   1.078865   62.16828 4.200166 0.04042002

Likelihood ratio test=4.200166 on 1 df, p=0.04042002, n=50
现在进入一个已创建的函数

gene<-function(x){
  fit=coxphf(Surv(OS_months,OS_status)~x,data=HR)
}

a<-lapply(HR[3],FUN=gene)
a

你能告诉我这里发生了什么事吗?我将非常感谢您。

我也是这个领域的新手,我尝试了您的代码。我认为问题发生在源数据集中,而不是在循环中运行。自

1) coxphf(formula = Surv(OS_months, OS_status) ~ TSPAN6, data = HR)

给出不同的结果。2) 返回与循环结果相同的结果

此外,我还尝试了coxphf()提供的示例数据:

$TSPAN6
coxphf(formula = Surv(OS_months, OS_status) ~ x, data = HR)
Model fitted by Penalized ML
Confidence intervals and p-values by Profile Likelihood 

       coef  se(coef) exp(coef) lower 0.95 upper 0.95     Chisq        p
x 0.7413234 0.9106665  2.098711  0.4052701    12.6725 0.8079772 0.368719

Likelihood ratio test=0.8079772 on 1 df, p=0.368719, n=50
1) coxphf(formula = Surv(OS_months, OS_status) ~ TSPAN6, data = HR)
2) coxphf(formula = Surv(OS_months, OS_status) ~ HR$TSPAN6, data = HR)
time<-c(1,2,3,4)
cens<-c(1,1,1,0)
x<-c(1,1,0,1)
sim<-cbind(time,cens,x)
sim<-data.frame(sim)
coxphf(sim, formula=Surv(time,cens)~x)

gene <- function(var){
+ fit=coxphf(Surv(time,cens)~var, data=sim)
+ return(fit)
+ }
gene(var=x)
coxphf(formula = Surv(time, cens) ~ x, data = sim)
Model fitted by Penalized ML
Confidence intervals and p-values by Profile Likelihood 

   coef se(coef) exp(coef) lower 0.95 upper 0.95    Chisq     p
x -0.05065785 1.223583 0.9506039  0.1182198    10.9519 0.002226143 0.9623682
Likelihood ratio test=0.002226143 on 1 df, p=0.9623682, n=4


coxphf(formula = Surv(time, cens) ~ var, data = sim)
Model fitted by Penalized ML
Confidence intervals and p-values by Profile Likelihood 

    coef se(coef) exp(coef) lower 0.95 upper 0.95     Chisq    p 
var -0.05065785 1.223583 0.9506039  0.1182198    10.9519 0.002226143 0.9623682
Likelihood ratio test=0.002226143 on 1 df, p=0.9623682, n=4