  At the heart of causal structure learning from observational data lies a
deceivingly simple question: given two statistically dependent random
variables, which one has a causal effect on the other? This is impossible to
answer using statistical dependence testing alone and requires that we make
additional assumptions. We propose several fast and simple criteria for
distinguishing cause and effect in pairs of discrete or continuous random
variables. The intuition behind them is that predicting the effect variable
using the cause variable should be `simpler' than the reverse -- different
notions of `simplicity' giving rise to different criteria. We demonstrate the
accuracy of the criteria on synthetic data generated under a broad family of
causal mechanisms and types of noise.
