  The purpose of many health studies is to estimate the effect of an exposure
on an outcome. It is not always ethical to assign an exposure to individuals in
randomised controlled trials, instead observational data and appropriate study
design must be used. There are major challenges with observational studies, one
of which is confounding that can lead to biased estimates of the causal
effects. Controlling for confounding is commonly performed by simple adjustment
for measured confounders; although, often this is not enough. Recent advances
in the field of causal inference have dealt with confounding by building on
classical standardisation methods. However, these recent advances have
progressed quickly with a relative paucity of computational-oriented applied
tutorials contributing to some confusion in the use of these methods among
applied researchers. In this tutorial, we show the computational implementation
of different causal inference estimators from a historical perspective where
different estimators were developed to overcome the limitations of the previous
one. Furthermore, we also briefly introduce the potential outcomes framework,
illustrate the use of different methods using an illustration from the health
care setting, and most importantly, we provide reproducible and commented code
in Stata, R and Python for researchers to apply in their own observational
study. The code can be accessed at
https://github.com/migariane/TutorialCausalInferenceEstimators
