Causal Formula

CausalFormula is the class that represents a causal query in a causal model. Mainly it consits in

  • a reference to the CausalModel

  • Three sets of variables name that represent the 3 sets of variable in the query P(set1 | doing(set2),knowing(set3)).

  • the AST for compute the query.

class pyAgrum.causal.CausalFormula(cm, root, on, doing, knowing=None)

Represents a causal query in a causal model. The query is encoded as an CausalFormula that can be evaluated in the causal model : $P(on|knowing, overhook (doing))$

Parameters
  • cm (CausalModel) – the causal model

  • root (ASTtree) – the syntax tree as the root ASTtree

  • on (Union[str, Set[str]]) – the variable or the set of variables of interest

  • doing (Union[str, Set[str]]) – the intervention variables

  • knowing (Optional[Set[str]]) – the observation variables

property cm: pyAgrum.causal._CausalModel.CausalModel

return: the causal model

Return type

CausalModel

copy()

Copy theAST. Note that the causal model is just referenced. The tree is copied.

Return type

CausalFormula

Returns

the new CausalFormula

eval()

Compute the Potential from the CausalFormula over vars using cond as value for others variables

Return type

Potential

Returns

latexQuery(values=None)

Returns a string representing the query compiled by this Formula. If values, the query is annotated with the values in the dictionary.

Parameters

values (Optional[Dict[str, str]]) – the values to add in the query representation

Return type

str

Returns

the string representing the causal query for this CausalFormula

property root: pyAgrum.causal._doAST.ASTtree

return: ASTtree root of the CausalFormula tree

Return type

ASTtree

toLatex()
Return type

str

Returns

a LaTeX representation of the CausalFormula

Causal Inference

Obtaining and evaluating a CausalFormula is done using one these functions :

pyAgrum.causal.causalImpact(cm, on, doing, knowing=None, values=None)

Determines the causal impact of interventions.

Determines the causal impact of the interventions specified in doing on the single or list of variables on knowing the states of the variables in knowing (optional). These last parameters is dictionary <variable name>:<value>. The causal impact is determined in the causal DAG cm. This function returns a triplet with a latex format formula used to compute the causal impact, a potential representing the probability distribution of on given the interventions and observations as parameters, and an explanation of the method allowing the identification. If there is no impact, the joint probability of on is simply returned. If the impact is not identifiable the formula and the adjustment will be None but an explanation is still given.

Parameters
  • cm (CausalModel) – causal model

  • on (Union[str, Set[str]]) – variable name or variable names set

  • doing (Union[str, Set[str]]) – variable name or variable names set

  • knowing (Optional[Set[str]]) – variable names set

  • values (Optional[Dict[str, int]]) – Dictionary

Return type

Tuple[CausalFormula, Potential, str]

Returns

the CausalFormula, the computation, the explanation

pyAgrum.causal.doCalculusWithObservation(cm, on, doing, knowing=None)

Compute the CausalFormula for an impact analysis given the causal model, the observed variables and the variable on which there will be intervention.

Parameters
  • on (str) – the variables of interest

  • cm (CausalModel) – the causal model

  • doing (Set[str]) – the interventions

  • knowing (Optional[Set[str]]) – the observations

Return type

CausalFormula

Returns

the CausalFormula for computing this causal impact

pyAgrum.causal.identifyingIntervention(cm, Y, X, P=None)

Following Shpitser, Ilya and Judea Pearl. ‘Identification of Conditional Interventional Distributions.’ UAI2006 and ‘Complete Identification Methods for the Causal Hierarchy’ JMLR 2008

Parameters
  • cm (CausalModel) – the causal model

  • Y (Set[str]) – The variables of interest (named following the paper)

  • X (Set[str]) – The variable of intervention (named following the paper)

  • P (Optional[ASTtree]) – The ASTtree representing the calculus in construction

Return type

ASTtree

Returns

the ASTtree representing the calculus