12.4 Estimate the odds ratio
We’ll use the oddsratio
function from the epitools
package to calculate the odds ratio (\(\hat{OR}\)) and its 95% confidence interval.
Check out the help file for the function:
?oddsratio
The oddsratio
function expects the contingency table to be arranged exactly like this:
# treatment control
# sick a b
# healthy c d
If you were calculating the odds ratio by hand, using the letters shown in the table above, the shortcut formula is:
\[\hat{OR} = \frac{{a/c}}{{b/d}}\]
Here’s the code for producing the appropriately formatted 2 x 2 table as so:
## Cancer No cancer
## 1438 18496
## 1427 18515
So thats what the oddsratio
function is expecting as input.
However, it’s also expecting it in the form of a “matrix” object.
Here’s all the code at once, and we’ll store the output (which comes in the form of a “list”) in an object called “cancer.odds”:
cancer.odds <- cancer %>%
tabyl(aspirinTreatment, response) %>%
select(Cancer, "No cancer") %>%
as.matrix() %>%
oddsratio(method = "wald")
We’ve seen the first two lines before. Then:
- we
select
the two columns associated with the “Cancer” and “No cancer” data. NOTE that because there’s a space in the variable name “No cancer”, we need to use quotation marks around it - Then we use the base
as.matrix
function to coerce the resulting 2 x 2 table that we’ve created into a matrix type object, which is what theoddsratio
function is expecting. - lastly we run the
oddsratio
function, with the argument “method = ‘wald’” (don’t worry about why)
Let’s have a look at the rather verbose output:
## $data
## Cancer No cancer Total
## row1 1438 18496 19934
## row2 1427 18515 19942
## Total 2865 37011 39876
##
## $measure
## NA
## odds ratio with 95% C.I. estimate lower upper
## [1,] 1.000000 NA NA
## [2,] 1.008744 0.9349043 1.088415
##
## $p.value
## NA
## two-sided midp.exact fisher.exact chi.square
## [1,] NA NA NA
## [2,] 0.8224348 0.8310911 0.8223986
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
This is more information than we need.
What we’re interested in is the information under the “$measure” part, and specifically the “odds ratio with 95% C.I.”.
To limit the output to the relevant information, use this code:
## estimate lower upper
## 1.0087436 0.9349043 1.0884148
This isolates the actual estimate of the odds ratio (\(\hat{OR}\)) with its 95% confidence interval.
The estimate of the odds ratio is around 1.009, and notice the 95% confidence interval encompasses one.
Given that the calculated 95% confidence interval encompasses 1 (representing equal odds among treatment and control groups), there is presently no evidence that the odds of developing cancer differ among control and aspirin treatment groups.
IMPORTANT The odds ratio and its 95% confidence interval are useful to report in any analysis of a 2 x 2 contingency table that deals with health outcomes data like those used here.