On 5 March 2010 03:26, BXC (Bendix Carstensen) <b...@steno.dk> wrote: > 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
Another approach is to run a logistic regression model. Using the same data as above: > (dp <- data.frame (a=c(320,7,0,0), b=c(0,0,4,120), t=c(1,0,1,0))) a b t 1 320 0 1 2 7 0 0 3 0 4 1 4 0 120 0 > fit <- glm(cbind(a,b) ~ t, binomial, dp) The estimated odds ratio is here (OR=1371): > exp(coef(fit)) (Intercept) t 5.833e-02 1.371e+03 And its confidence interval: > exp(confint(fit)) Waiting for profiling to be done... 2.5 % 97.5 % (Intercept) 0.02466 0.1159 t 442.87000 5551.2516 With less unbalanced data, glm() gives results very close to those from fisher.test() > dp2 a b t 1 320 0 1 2 200 0 0 3 0 100 1 4 0 150 0 > fit2 <- glm(cbind(a,b) ~ t, binomial, dp2) > exp(coef(fit2)) (Intercept) t 1.333 2.400 > exp(confint(fit2)) Waiting for profiling to be done... 2.5 % 97.5 % (Intercept) 1.080 1.650 t 1.766 3.274 > fisher.test(matrix(c(320,200,100,150),2)) Fisher's Exact Test for Count Data data: matrix(c(320, 200, 100, 150), 2) p-value = 2.294e-08 alternative hypothesis: true odds ratio is not equal to 1 95 percent confidence interval: 1.742 3.309 sample estimates: odds ratio 2.397 --Philippe Senior Epidemiologist, World Health Organization Geneva, Switzerland _______________________________________________ R-sig-Epi@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-epi