[R] Confidence interval for relative risk

Michael Dewey info at aghmed.fsnet.co.uk
Fri Nov 10 15:43:27 CET 2006


The concrete problem is that I am refereeing
a paper where a confidence interval is
presented for the risk ratio and I do not find
it credible. I show below my attempts to
do this in R. The example is slightly changed
from the authors'.

I can obtain a confidence interval for
the odds ratio from fisher.test of
course

=== fisher.test example ===

 > outcome <- matrix(c(500, 0, 500, 8), ncol = 2, byrow = TRUE)
 > fisher.test(outcome)

         Fisher's Exact Test for Count Data

data:  outcome
p-value = 0.00761
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
  1.694792      Inf
sample estimates:
odds ratio
        Inf

=== end example ===

but in epidemiology authors often
prefer to present risk ratios.

Using the facility on CRAN to search
the site I find packages epitools and Epi
which both offer confidence intervals
for the risk ratio

=== Epi example ===

 > library(Epi)
 > twoby2(outcome[c(2,1),c(2,1)])
2 by 2 table analysis:
------------------------------------------------------
Outcome   : Col 1
Comparing : Row 1 vs. Row 2

       Col 1 Col 2    P(Col 1) 95% conf. interval
Row 1     8   500      0.0157    0.0079   0.0312
Row 2     0   500      0.0000    0.0000      NaN

                                    95% conf. interval
              Relative Risk:    Inf       NaN      Inf
          Sample Odds Ratio:    Inf       NaN      Inf
Conditional MLE Odds Ratio:    Inf    1.6948      Inf
     Probability difference: 0.0157    0.0027   0.0337

              Exact P-value: 0.0076
         Asymptotic P-value: NaN
------------------------------------------------------

=== end example ===

So Epi gives me a lower limit of NaN but the same confidence
interval and p-value as fisher.test

=== epitools example ===

 > library(epitools)
 > riskratio(outcome)
$data
           Outcome
Predictor  Disease1 Disease2 Total
   Exposed1      500        0   500
   Exposed2      500        8   508
   Total        1000        8  1008

$measure
           risk ratio with 95% C.I.
Predictor  estimate lower upper
   Exposed1        1    NA    NA
   Exposed2      Inf   NaN   Inf

$p.value
           two-sided
Predictor  midp.exact fisher.exact  chi.square
   Exposed1         NA           NA          NA
   Exposed2 0.00404821  0.007610478 0.004843385

$correction
[1] FALSE

attr(,"method")
[1] "Unconditional MLE & normal approximation (Wald) CI"
Warning message:
Chi-squared approximation may be incorrect in: chisq.test(xx, correct =
correction)

=== end example ===

And epitools also gives a lower limit
of NaN.

=== end all examples ===

I would prefer not to have to tell the authors of the
paper I am refereeing that
I think they are wrong unless I can help them with what they
should have done.

Is there another package I should have tried?

Is there some other way of doing this?

Am I doing something fundamentally wrong-headed?



Michael Dewey
http://www.aghmed.fsnet.co.uk



More information about the R-help mailing list