  We propose a simple method to learn linear causal cyclic models in the
presence of latent variables. The method relies on equilibrium data of the
model recorded under a specific kind of interventions ("shift interventions").
The location and strength of these interventions do not have to be known and
can be estimated from the data. Our method, called backShift, only uses second
moments of the data and performs simple joint matrix diagonalization, applied
to differences between covariance matrices. We give a sufficient and necessary
condition for identifiability of the system, which is fulfilled almost surely
under some quite general assumptions if and only if there are at least three
distinct experimental settings, one of which can be pure observational data. We
demonstrate the performance on some simulated data and applications in flow
cytometry and financial time series. The code is made available as R-package
backShift.
