# [SciPy-User] Detecting Causal Relation in a Scatterplot

josef.pktd@gmai... josef.pktd@gmai...
Mon Apr 22 10:09:01 CDT 2013

```On Mon, Apr 22, 2013 at 11:03 AM, R. Michael Weylandt
<michael.weylandt@gmail.com> wrote:
> Cross-posted to R-help:
> https://stat.ethz.ch/pipermail/r-help/2013-April/352081.html

I would guess that stats.stackexchange might be the best candidate

>
> Best,
> Michael
>
> On Mon, Apr 22, 2013 at 3:49 PM, Lorenzo Isella
> <lorenzo.isella@gmail.com> wrote:
>> 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.

To me this sounds like a test for endogeneity, but you might need more
structure on the noise, like additivity.

A quick google search econ.msu.edu/faculty/wooldridge/docs/qmle_endog_r3.pdf
seems to apply for the non-linear case. (I haven't looked at it.)

I never looked at this literature, maybe White's sanity check can be used.

Josef
(I used the word endogeneity.)

>>
>>
>> Lorenzo
>> _______________________________________________
>> SciPy-User mailing list
>> SciPy-User@scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-user
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
```