## Calculating Odds Ratio in R

I have been working on several volcano plots lately. That means I’ve been pouring through many thousands of records of clinical trial data. Typically, when we give a patient a higher dose, we fix whatever indicator we are trying to remedy, and we also see a greater rate of adverse events (AEs). Volcano plots give us the ability to quickly discern just how much frequency of AE increases as dose increases.

```
treatments <- c("Placebo", "Low Dose", "High Dose")
ae_present <- c("No", "Yes")
dat <- matrix(c(85, 1, 80, 5, 77, 8), nrow = 3, ncol = 2, byrow = TRUE)
dimnames(dat) <- list("Treatments" = treatments, "AE Present" = ae_present)
```

If you’ve done everything correctly, this data should appear as the following table.

```
AE Present
Treatments No Yes
Placebo 85 1
Low Dose 80 5
High Dose 77 8
```

To compute the odds ratio, we will use the `epitools`

pacakge, which is available on CRAN.

```
library(epitools)
or_fit <- oddsratio(dat)
```

Let’s check out the contents of the `or_fit`

variable.

```
$data
AE Present
Treatments No Yes Total
Placebo 75 1 86
Low Dose 80 5 85
High Dose 77 8 85
Total 242 14 256
$measure
odds ratio with 95% C.I.
Treatments estimate lower upper
Placebo 1.000000 NA NA
Low Dose 4.755327 0.7107625 127.7539
High Dose 7.804760 1.3552471 199.6285
$p.value
two-sided
Treatments midp.exact fisher.exact chi.square
Placebo NA NA NA
Low Dose 0.11629373 0.11732592 0.09353659
High Dose 0.01784242 0.01801546 0.01572061
```

Using the same `epitools`

package, we can also compute the relative risk (risk ratio) for the various treatments.

```
rr_fit <- riskratio(dat)
```

This `rr_fit`

data looks like the following.

```
$data
AE Present
Treatments No Yes Total
Placebo 75 1 86
Low Dose 80 5 85
High Dose 77 8 85
Total 242 14 256
$measure
risk ratio with 95% C.I.
Treatments estimate lower upper
Placebo 1.000000 NA NA
Low Dose 5.058824 0.6035846 42.39952
High Dose 8.094118 1.0345936 63.32413
```

That’s it! Now, go forth and analyze!