Good and Bas Cholesterol (p229)

Authors: Aymen Merrouche and Pierre-Henri Wuillemin.

This notebook follows the example from “The Book Of Why” (Pearl, 2018) chapter 7 page 229

Randomised Controlled Trials with noncompliance

In [1]:

from IPython.display import display, Math, Latex,HTML

import pyAgrum as gum
import pyAgrum.lib.notebook as gnb
import pyAgrum.causal as csl
import pyAgrum.causal.notebook as cslnb
import os


Noncompliance is an important issue in the conduct of randomized controlled trials (RCTs). Taking account for noncompliers is necessary because they will bias the impact of the treatment on the outcome.

We create the causal diagram:

From 1973 to 1984 a randomized controlled trial was conducted to measure the effect of cholestyramine on cholesterol. The researchers in charge of this trial faced the noncompliance problem. (when patients who participate in the trial don’t take their treatment). The corresponding causal diagram is the following:

In [2]:

bw = gum.fastBN("Assigned->Received->Cholesterol")
bw

Out[2]:


All our variables are binary, not numerical.

What is the effect of the treatment on the outcome?

This question raises another one: What if noncompliers followed the instructions they were given, how would they have responded to the treatment? We can’t suppose that they would respond the same way compliers did. Not complying is maybe due to the risk of interacting with other drugs which can be a sign of a disease, and therefore these noncompliers may react differently: confounding.

In [3]:

bwModele = csl.CausalModel(bw,[("confounder",["Received","Cholesterol"])], True)
gnb.show(bwModele)

In [4]:

cslnb.showCausalImpact(bwModele,on = "Cholesterol",doing="Received")


Causal Model
In [ ]: