Additive noise models

Algorithm Introduction

Causal discovery based on the additive noise models (ANM 1). If you would like to apply the method to more than two variables, we suggest you first apply the PC algorithm and then use pair-wise analysis in this implementation to find the causal directions that cannot be determined by PC.


from import ANM
anm = ANM()
p_value_foward, p_value_backward = anm.cause_or_effect(data_x, data_y)


data_x: input data (n, 1).

data_y: output data (n, 1).


pval_forward: p value in the x->y direction.

pval_backward: p value in the y->x direction.


Hoyer, P. O., Janzing, D., Mooij, J. M., Peters, J., & Schölkopf, B. (2008, December). Nonlinear causal discovery with additive noise models. In NIPS (Vol. 21, pp. 689-696).