zepid.base.interaction_contrast(df, exposure, outcome, modifier, adjust=None, decimal=3, print_results=True)

Calculate the Interaction Contrast (IC) using a pandas dataframe and statsmodels to fit a linear binomial regression. Can ONLY be used for a 0,1 coded exposure and modifier (exposure = {0,1}, modifier = {0,1}, outcome = {0,1}). Can handle adjustment for other confounders in the regression model. Prints the fit of the linear binomial regression, the IC, and the corresponding IC 95% confidence interval.

Interaction Contrast is defined as the following

\[IC = RD_{11} - RD_{10} - RD_{01}\]


statsmodels may produce a domain error in some versions.

  • df (DataFrame) – Pandas dataframe containing variables of interest
  • exposure (string) – Column name of exposure variable. Must be coded as (0,1) where 1 is exposure
  • outcome (string) – Column name of outcome variable. Must be coded as (0,1) where 1 is outcome of interest
  • modifier (string) – Column name of modifier variable. Must be coded as (0,1) where 1 is modifier
  • adjust (string, optional) – String of other variables to adjust for, in correct statsmodels format. Default is None. Variables can NOT be named {E1M0,E0M1,E1M1} since this function creates variables with those names. Answers will be incorrect Example of accepted input is ‘C1 + C2 + C3 + Z’
  • decimal (integer, optional) – Decimal places to display in result. Default is 3
  • print_results (bool, optional) – Whether to print results from interaction contrast assessment


Setting up environment

>>> from zepid import interaction_contrast, load_sample_data
>>> df = load_sample_data(False)

Calculating interaction contrast for ART and gender

>>> interaction_contrast(df, exposure='art', outcome='dead', modifier='male')