[SciPy-User] Detecting Causal Relation in a Scatterplot
Mon Apr 22 09:55:53 CDT 2013
I'm not sure I'm understanding what you're looking for. Are you looking for
*correlation* between two variables? If so, there are several statistical
tests you can use: linear correlation is the most obvious, but if your
variables are not linearly related you can try rank correlation tests:
However no statistical test will *ever* tell you if something causes
something else. *Correlation does not mean causation* is a fundamental
tenet of statistics -and of science in general. No matter how beautiful
your plot is, it will never imply a causal relationship.
2013/4/22 Lorenzo Isella <firstname.lastname@example.org>
> Dear All,
> I hope this is not too off topic.
> I am given a set of scatteplots (nothing too fancy; think about a
> normal x-y 2D plot).
> I do not deal with two time series (indeed I have no info about time).
> If I call A=(A1,A2,...) and B=(B1, B2, ...) the 2 variables (two
> vectors of numbers most of the case, but sometimes they can be
> categorical variables), I can plot one against the other and I
> essentially I need to determine whether
> A=f(B, noise) or B=g(A, noise)
> where the noise is the effect of other possibly unknown variables,
> measurement errors etc.... and f and g are two functions.
> Without the noise, if I want to test if A=f(B) [B causes A], then I
> need at least to ensure that f(B1)!=f(B2) must imply B1!=B2 (different
> effects must have a different cause), whereas it is not ruled out that
> f(B1)=f(B2) for B1!=B2 (different causes may lead to the same effect).
> However, in presence of the noise, these properties will hold only
> approximately so....any idea about how a statistical test, rather than
> eyeballing, to tell apart A=f(B, noise) vs B=g(A, noise)?
> Any suggestion is welcome.
> SciPy-User mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the SciPy-User