[R] Confidence interval for relative risk
Michael Dewey
info at aghmed.fsnet.co.uk
Sun Nov 12 13:18:00 CET 2006
At 15:54 10/11/2006, Viechtbauer Wolfgang (STAT) wrote:
Thanks for the suggestion Wolfgang, but whatever the original authors
did that is not it.
>Hello,
>
>A common way to calculate the CI for a relative risk is the
>following. Given a 2x2 table of the form:
>
>a b
>c d
>
>the log of the risk ratio is given by:
>
>lrr = log[ a/(a+b) / ( c/(c+d) ) ]
>
>which is asymptotically normal with variance:
>
>vlrr = 1/a - 1/(a+b) + 1/c - 1/(c+d).
>
>So an approximate 95% CI for the risk ratio is given by:
>
>exp[ lrr - 1.96*sqrt(vlrr) ], exp[ lrr + 1.96*sqrt(vlrr) ].
>
>A common convention is to add 1/2 to each cell when there are zeros.
>
>So, for the table:
>
> Col 1 Col 2
>Row 1 8 500
>Row 2 0 500
>
>lrr = log[ 8.5/509 / ( 0.5/501 ) ] = 2.817
>vllr = 1/8.5 - 1/509 + 1/0.5 - 1/501 = 2.1137
>
>exp[ 2.817-1.96*sqrt(2.1137) ] = .97
>exp[ 2.817+1.96*sqrt(2.1137) ] = 289.04
>
>Maybe that is what the authors did.
>
>Best,
>
>--
>Wolfgang Viechtbauer
> Department of Methodology and Statistics
> University of Maastricht, The Netherlands
> http://www.wvbauer.com/
>
>
> > -----Original Message-----
> > From: r-help-bounces at stat.math.ethz.ch [mailto:r-help-
> > bounces at stat.math.ethz.ch] On Behalf Of Michael Dewey
> > Sent: Friday, November 10, 2006 15:43
> > To: r-help at stat.math.ethz.ch
> > Subject: [R] Confidence interval for relative risk
> >
> > 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
Michael Dewey
http://www.aghmed.fsnet.co.uk
More information about the R-help
mailing list