[R-sig-Epi] epitools::oddsratio error numbers close to zero in cells?

BXC (Bendix Carstensen) bxc at steno.dk
Fri Mar 5 03:26:42 CET 2010


You can actually also get results from fisher.test when one of the entries is 0.
One of your confidence limits will just be either 0 or Inf.
But that should hardly be a surprise.

You could also try the twoby2 command from the Epi package which will summarize your 
table analysis nicely.

> m
     [,1] [,2]
[1,]  360    0
[2,]    7  120
> fisher.test(m)

        Fisher's Exact Test for Count Data

data:  m 
p-value < 2.2e-16
alternative hypothesis: true odds ratio is not equal to 1 
95 percent confidence interval:
 1204.706      Inf 
sample estimates:
odds ratio 
       Inf 

> fisher.test(m[,2:1])

        Fisher's Exact Test for Count Data

data:  m[, 2:1] 
p-value < 2.2e-16
alternative hypothesis: true odds ratio is not equal to 1 
95 percent confidence interval:
 0.0000000000 0.0008300781 
sample estimates:

> twoby2(m)
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   360     0      1.0000       NaN   1.0000
Row 2     7   120      0.0551    0.0265   0.1111

                                    95% conf. interval
             Relative Risk: 18.1429    8.8303  37.2767
         Sample Odds Ratio:     Inf       NaN      Inf
Conditional MLE Odds Ratio:     Inf 1204.7059      Inf
    Probability difference:  0.9449    0.8896   0.9730

             Exact P-value: 0 
        Asymptotic P-value: NaN 
------------------------------------------------------

Best regards,
Bendix
_______________________________________________

Bendix Carstensen 
Senior Statistician
Steno Diabetes Center
Niels Steensens Vej 2-4
DK-2820 Gentofte
Denmark
+45 44 43 87 38 (direct)
+45 30 75 87 38 (mobile)
bxc at steno.dk   http://www.biostat.ku.dk/~bxc
www.steno.dk


> -----Original Message-----
> From: r-sig-epi-bounces at stat.math.ethz.ch 
> [mailto:r-sig-epi-bounces at stat.math.ethz.ch] On Behalf Of C.H.
> Sent: 5. marts 2010 12:49
> To: Pedro Emmanuel Alvarenga Americano do Brasil
> Cc: r-sig-epi at stat.math.ethz.ch
> Subject: Re: [R-sig-Epi] epitools::oddsratio error numbers 
> close to zero in cells?
> 
> It is possible to calculate the OR with non-zero cells using 
> fisher.test
> 
> > m<-matrix(c(360,7,4,120),byrow=F,nrow=2,ncol=2)
> > fisher.test(m)$estimate
> odds ratio
>   1419.605
> > fisher.test(m)$conf.int
> [1]  407.324 8192.000
> attr(,"conf.level")
> [1] 0.95
> 
> For cases with zero cell, it is a problem. A typical work 
> round (by usual software such as Revman, Prism or SPSS) is to 
> add 0.5 to all cells to prevent the problem of division of 
> zero. I don't know if any packages implemented this.
> 
> 
> 
> On Fri, Mar 5, 2010 at 9:02 AM, Pedro Emmanuel Alvarenga 
> Americano do Brasil <emmanuel.brasil at gmail.com> wrote:
> > Hello all,
> >
> > I was runing some analysis here and found an error with 
> epitools::oddsratio.
> > First I tought it was in my data, later I tought I was running the 
> > function incorrectly but I now realize that there is something with 
> > numbers close to zero or cells with zero...
> >
> > below the same error with a simulated data... but it 
> happens exactly 
> > the same with mine wich has one cell with 1.
> >
> >> m<-matrix(c(360,7,0,120),byrow=F,nrow=2,ncol=2)
> >> m
> >     [,1] [,2]
> > [1,]  360    0
> > [2,]    7  120
> >> oddsratio(m)
> > Erro em uniroot(function(or) { :
> >  f() values at end points not of opposite sign
> >
> >> m<-matrix(c(360,7,4,120),byrow=F,nrow=2,ncol=2)
> >> m
> >     [,1] [,2]
> > [1,]  360    4
> > [2,]    7  120
> >> oddsratio(m)
> > Erro em uniroot(function(or) { :
> >  f() values at end points not of opposite sign
> >
> >> m<-matrix(c(360,7,7,120),byrow=F,nrow=2,ncol=2)
> >> m
> >     [,1] [,2]
> > [1,]  360    7
> > [2,]    7  120
> >> oddsratio(m)
> > $data
> >          Outcome
> > Predictor  Disease1 Disease2 Total
> >  Exposed1      360        7   367
> >  Exposed2        7      120   127
> >  Total         367      127   494
> >
> > $measure
> >          odds ratio with 95% C.I.
> > Predictor  estimate    lower upper
> >  Exposed1   1.0000       NA    NA
> >  Exposed2 806.1128 300.7302  2560
> >
> > $p.value
> >          two-sided
> > Predictor  midp.exact fisher.exact   chi.square
> >  Exposed1         NA           NA           NA
> >  Exposed2          0 1.896808e-96 4.400778e-94
> >
> > Is it impoossible to estimate OR confidence intervals with 
> tables with 
> > very low numbers? Any work around sugestions?
> >
> > Abraço forte e que a força esteja com você,
> >
> > Dr. Pedro Emmanuel A. A. do Brasil
> > Instituto de Pesquisa Clínica Evandro Chagas Fundação 
> Oswaldo Cruz Rio 
> > de Janeiro - Brasil
> >
> >        [[alternative HTML version deleted]]
> >
> >
> > _______________________________________________
> > R-sig-Epi at stat.math.ethz.ch mailing list 
> > https://stat.ethz.ch/mailman/listinfo/r-sig-epi
> >
> >
> 
> 
> 
> --
> CH Chan
> Research Assistant - KWH
> http://www.macgrass.com
> 
> _______________________________________________
> R-sig-Epi at stat.math.ethz.ch mailing list 
> https://stat.ethz.ch/mailman/listinfo/r-sig-epi
> 


More information about the R-sig-Epi mailing list