Vanessa
Vanessa

Reputation: 1

p-values for estimates in flexsurvreg

I fitted a survival model using an inverse weibull distribution in flexsurvreg:

 if (require("actuar")){
  invweibull <- list(name="invweibull",
                     pars=c("shape","scale"),
                     location="scale",
                     transforms=c(log, log),
                     inv.transforms=c(exp, exp),
                     inits=function(t){ c(1, median(t)) })
  invweibull <- flexsurvreg(formula = kpnsurv~iaas, data = kpnrs2,
                            dist=invweibull)
  invweibull
}

And I got the following output:

    Call:
flexsurvreg(formula = kpnsurv ~ iaas, data = kpnrs2, dist = invweibull)

Estimates: 
 data.     mean.       est       L95%      U95%      se        exp(est)  L95%      U95%    
shape        NA     0.4870    0.4002    0.5927    0.0488        NA        NA        NA
scale        NA    62.6297   36.6327  107.0758   17.1371        NA        NA        NA
iaas     0.4470    -0.6764   -1.2138   -0.1391    0.2742    0.5084    0.2971    0.8701

N = 302,  Events: 54,  Censored: 248
Total time at risk: 4279
Log-likelihood = -286.7507, df = 3
AIC = 579.5015

How can I get the p-value of the covariate estimate (in this case iaas)? Thank you for your help.

Upvotes: 0

Views: 1208

Answers (2)

Matt
Matt

Reputation: 61

This can be accomplished using the tidy.flexsurvreg method

tidy(invweibull)

To get exponentiated coefficients and confidence intervals

tidy(invweibull, conf.int = TRUE, transform = "coefs.exp")

See the tidy.flexsurvreg help file here.

Upvotes: 1

Math Monster
Math Monster

Reputation: 11

Just in case this is still useful to anyone, this worked for me. First extract the matrix of coefficient information from the model:

invweibull.res <- invweibull$res

Then divide the estimated coefficients by their standard errors to calculate the Wald statistics, which have asymptotic standard normal distributions:

invweibull.wald <- invweibull.res[,1]/invweibull.res[,4]

Finally, get the p-values:

invweibull.p <- 2*pnorm(-abs(invweibull.wald))

Upvotes: 1

Related Questions