Search code examples
rsurvival-analysisp-value

How to get survdiff returned p value


I am using R survival package, survdiff function. I wonder how to get the p value from the return value.

> diff = survdiff(Surv(Time, Censored) ~ Treatment+Gender, data = dat)
> diff
Call:
survdiff(formula = Surv(Time, Censored) ~ Treatment + Gender, 
    data = dat)

                            N Observed Expected (O-E)^2/E (O-E)^2/V
Treatment=Control, Gender=M 2        1     1.65  0.255876  0.360905
Treatment=Control, Gender=F 7        3     2.72  0.027970  0.046119
Treatment=IND, Gender=M     5        2     2.03  0.000365  0.000519
Treatment=IND, Gender=F     6        2     1.60  0.100494  0.139041

 Chisq= 0.5  on 3 degrees of freedom, p= 0.924 

I want to get the p value 0.924 using some function. Thanks.


Solution

  • The p value is not stored in the survdiff class, so it must be calculated on the fly at the time of output. To reproduce the p value one could use the chisq distribution function: "pchisq"

    diff = survdiff(Surv(Time, Censored) ~ Treatment+Gender, data = dat)
    pchisq(diff$chisq, length(diff$n)-1, lower.tail = FALSE)