[R] log rank test p value
Marc Schwartz
marc_schwartz at comcast.net
Wed May 16 04:17:08 CEST 2007
On Wed, 2007-05-16 at 11:54 +1000, Murray Pung wrote:
> How can I get the Log - Rank p value to be output?
>
> The chi square value can be output, so I was thinking if I can also have the
> degrees of freedom output I could generate the p value, but can't see how to
> find df either.
>
> > (survtest <- survdiff(Surv(time, cens) ~ group, data = surv,rho=0))
> Call:
> survdiff(formula = Surv(time, cens) ~ group, data = surv, rho = 0)
>
> N Observed Expected (O-E)^2/E (O-E)^2/V
> group=1 20 16 11.0 2.23 4.64
> group=2 20 12 17.0 1.45 4.64
>
> Chisq= 4.6 on 1 degrees of freedom, p= 0.0312
>
> > survtest$chisq
> [1] 4.641028
>
> > survtest$df
> NULL
That part of the output is created in print.survdiff(), which you can
review by using:
survival:::print.survdiff
The degrees of freedom and the p value are calculated in that function.
Using the example in ?survdiff:
survtest <- survdiff(Surv(futime, fustat) ~ rx, data = ovarian)
> survtest
Call:
survdiff(formula = Surv(futime, fustat) ~ rx, data = ovarian)
N Observed Expected (O-E)^2/E (O-E)^2/V
rx=1 13 7 5.23 0.596 1.06
rx=2 13 5 6.77 0.461 1.06
Chisq= 1.1 on 1 degrees of freedom, p= 0.303
> str(survtest)
List of 6
$ n : 'table' int [, 1:2] 13 13
..- attr(*, "dimnames")=List of 1
.. ..$ groups: chr [1:2] "rx=1" "rx=2"
$ obs : num [1:2] 7 5
$ exp : num [1:2] 5.23 6.77
$ var : num [1:2, 1:2] 2.94 -2.94 -2.94 2.94
$ chisq: num 1.06
$ call : language survdiff(formula = Surv(futime, fustat) ~ rx, data = ovarian)
- attr(*, "class")= chr "survdiff"
We can then do the following to secure the p value:
> 1 - pchisq(survtest$chisq, 1)
[1] 0.3025911
See ?str and ?pchisq for more information.
HTH,
Marc Schwartz
More information about the R-help
mailing list