Home > other >  How does svycoxph handle ties?
How does svycoxph handle ties?

Time:01-22

As far as I know, coxph handles ties by default, and there are 3 options for handling ties. I wonder how svycoxph in the survey package handles ties. Is it the same as coxph? There does not seem to be an option for this.

Nothing about ties is mentioned in CRAN and I couldn't find anything about it. Does anyone know about this?

CodePudding user response:

For svycoxph, according to the documentation, it is possible to pass the arguments of coxph in 3 dots ...

... - For AIC, more models to compare the AIC of. For svycoxph, other arguments passed to coxph.

If we look at the arguments for coxph

args(coxph)
function (formula, data, weights, subset, na.action, init, control, 
    ties = c("efron", "breslow", "exact"), singular.ok = TRUE, 
    robust, model = FALSE, x = FALSE, y = TRUE, tt, method = ties, 
    id, cluster, istate, statedata, nocenter = c(-1, 0, 1), ...) 

where the ties (by default "efron") is also assigned in the method

Also, by looking at the source code of one of the methods of svycoxph

getAnywhere("svycoxph.svyrep.design")

function (formula, design, subset = NULL, rescale = NULL, ..., 
    return.replicates = FALSE, na.action, multicore = getOption("survey.multicore")) 
{

...
...
if (full$method %in% c("efron", "breslow")) { ### here
        if (attr(full$y, "type") == "right") 
            fitter <- coxph.fit
        else if (attr(full$y, "type") == "counting") 
            fitter <- survival::agreg.fit
        else stop("invalid survival type")
    }
    else fitter <- survival::agexact.fit
    
...

Using a small reproducible example from the documentation of svycoxph

> svycoxph(Surv(time,status>0)~log(bili) protime albumin,design=rpbc, ties = "efron")
Call:
svycoxph.svyrep.design(formula = Surv(time, status > 0) ~ log(bili)   
    protime   albumin, design = rpbc, ties = "efron")

              coef exp(coef) se(coef)      z        p
log(bili)  0.88592   2.42522  0.09838  9.005  < 2e-16
protime    0.24487   1.27745  0.09373  2.612  0.00899
albumin   -1.04298   0.35240  0.21966 -4.748 2.05e-06

Likelihood ratio test=NA  on 3 df, p=NA
n= 312, number of events= 144 
> svycoxph(Surv(time,status>0)~log(bili) protime albumin,design=rpbc, ties = "breslow")
Call:
svycoxph.svyrep.design(formula = Surv(time, status > 0) ~ log(bili)   
    protime   albumin, design = rpbc, ties = "breslow")

              coef exp(coef) se(coef)      z       p
log(bili)  0.88527   2.42363  0.09834  9.002 < 2e-16
protime    0.24494   1.27754  0.09373  2.613 0.00897
albumin   -1.04112   0.35306  0.21992 -4.734 2.2e-06

Likelihood ratio test=NA  on 3 df, p=NA
n= 312, number of events= 144 
  • Related