It’s no secret that odds ratios (ORs) *cannot* be reported as risk ratios (RRs). But it bears repeating: odds ratios cannot be reported as risk ratios. It is perhaps the most common fallacy of reporting logistic regression models. At best, the OR is a biased estimator of the RR. A little bias is okay, but how little needs to be described. OR-RR bias is loosely believed to be “less bad” when the prevalence of the outcome is low in the unexposed population. Low is debatable: 10% has been asserted, but bias can be quite bad even at this prevalence. For a continuous exposure, everyone is a “little bit” exposed. This led to Zhang & Yu’s 1989 JAMA correction which, unfortunately, was too optimistic (anti-conservative) in 95% CIs or inference.

Modern regression pre-empts biased analyses in most cases: A great discussion on the topic is found in Lumley, et al. This paper also discusses estimation of RR components using available software. Of the proposed solutions, direct relative risk estimation with a binomial GLM and log link is the most appropriate. Poisson regression could be believed to be unbiased since it also models a log link, and robust error estimation averts any variance structure assumptions. However, Poisson allows the predicted risk to soar above 1 which would normally have been truncated at 1 in other regression: so a rare event (or similar) assumption crops up yet again.

What if we thought beyond “the model”? If the data are population representative, then the predicted values from logistic models are indeed the risk of the event in the population (under mean model assumptions). Muller and MacLehose discuss using marginal standardization to take these predicted values and simply predict the risk in people who are exposed and unexposed , average it up, and take the ratio. It’s (arguably) consistent with a Pearl-esque counterfactual understanding of causality.

The Stata code are out there to do this. R required handiwork. Since the math and programming were simple implementations of matrix algebra and some calculus, I wrote up code to replicate the Stata procedure and have put it on CRAN today.

probratio takes, as arguments, “object” a GLM object of family binomial, a method for converting your ORs to RRs, and a scale on which the inference in performed, among other things. The method is one of three ways: maximum likelihood (ML), delta-method, or bootstrap. ML is just refitting the GLM using relative risk regression, which in R is just as easily done using `glm(<your old formula>, data=<your old data>, family=`**binomial(link ='log')**

Note the latter bit. Of course, R explodes when doing this. And it does so often because the initial estimation procedure: naive linear regression to obtain starting coefficients. This ofte. Examples of fixing this are supplied in the examples. The delta-method and bootstrap specifically implements the approach advocated by Muller and MacLehose.

Some caveats to be aware of:

- The existing method does not support interactions between parameters. If there is a product term, the assumption that we “manipulate exposure” would also affect the product terms, but the current implementation does not do this.
- Relative Risk GLMs are very prone to domination. I’ve included in the examples and warnings indicators for how to improve convergence. However, not all problems will be solvable.
- Bootstrap is not bias corrected. I’m not even sure whether the RR is a pivotal quantity in this case. There are other ways of calculating CIs which account for the bias, and they are no less efficient that the biased methods, so using the proper bootstrap implementation seems the right way to go about things.
- I haven’t explored weighting too thoroughly. Scott & Wild talk about how this can be done with case-dependent sampling to produce population consistent predictions of risk and their variance. This is assuming, of course, the weights do not have variability or at best are independent of the data used in analysis. For two-phase estimation, well that’s way beyond me.

I’m very curious about this method and there are several avenues of methods exploration:

- What happens with model misspecification? I’m thinking about omitted covariates. The predicted risk is not necessarily the right risk due to non-collapsibility of the OR.
- Are there conditional likelihood extensions? If we have matched sets and conditional likelihood expressions, can a plug-in estimator of the risk in the matched set serve to adequately predict risk in participants?
- Is the RR actually pivotal?