I sympathize with Igor. I have an R package to implement causality of the type Igor wants. However
nonlinearity seems to be needed for determining that a variable is exogenous.
Causal Paths from data and new exogeneity tests in {generalCorr} Package for Air Pollution and Monetary Policy
by H. D. Vinod, Ph.D., Fordham University, NY, June 7, 2017.
Since causal paths from data are important for all sciences, my R package `generalCorr' provides sophisticated functions. The idea is simply that if X causes Y (path: X->Y) then non-deterministic variation in X is more "original or independent" than similar variation in Y. We compare two flipped kernel regressions: X=f(Y, Z) and Y=g(X,Z), where Z are control variables. Our first two criteria compare absolute gradients (Cr1) and absolute residuals (Cr2), both quantified by stochastic dominance of four orders (SD1 to SD4). Our third criterion (Cr3) expects X to be better able to predict Y than vice versa using generalized partial correlation coefficients r*(X,Y|Z). These methods allow us to create a replacement for the Hausman-Wu medieval-style diagnosis of endogeneity relying on showing that a dubious cure (instrumental variables) works. The ultimate causal path: X->Y depends on a weighted sum (strength) of all three criteria. Bootstrap inference is also available.
A new version of the package makes it possible to get evidence on causal paths with few lines of code. Details and examples are at: Vinod, H. D., "Causal Paths and Exogeneity Tests in {generalCorr} Package for Air Pollution and Monetary Policy" (June 6, 2017). Available at SSRN:
https://ssrn.com/abstract=2982128
[code lang="r"]
install.packages("generalCorr"); require(generalCorr); options(np.messages=FALSE); causeSummary(airquality)
[/code]
cause response strength corr. p-value
[1,] "Solar.R" "Ozone" "100" "0.3483" "0.00018"
[2,] "Wind" "Ozone" "31.496" "-0.6015" "0"
[3,] "Temp" "Ozone" "100" "0.6984" "0"
[4,] "Month" "Ozone" "31.496" "0.1645" "0.0776"
[5,] "Day" "Ozone" "31.496" "-0.0132" "0.88794"
------------------------------
Hrishikesh Vinod
------------------------------
Original Message:
Sent: 07-20-2017 09:11
From: Igor Mandel
Subject: Regression coefficients vs causal coefficients
Many thanks, London. However, the conceptual difference is one thing (I may say a lot about it, especially in J. Pearl's version of causality, which has too many ill formulated problems
http://ssrn.com/abstract=2984045), but the values of "causal" and regression coefficients in this simple situation (which I'm interested in) is quite another. Are they different or not?
As for the paper you refer to - yes, I familiar with it and even published (with a colleague) a critical review of this Handbook in Technometrics ((2015) Book Reviews, Technometrics, 57:2, 292-300, DOI: 10.1080/00401706.2015.1052714).
The only reason I put this question for discussion is that when I tried to put it, among several others, into "Causality blog"
http://causality.cs.ucla.edu/blog/ (where its originator J. Pearl regularly invites to put questions, etc.), it was rejected exactly for the reason, that I don't understand the difference between causal and regression coefficients. Well, I plainly admit the fact that they may be different in complex DAG (and never denied it), but still, struggle to understand, what is the difference when DAG has its most primitive shape, Y as a function of several X without any strings attached to X.
You mentioned two parametrizations: which are they? Are they possible even in this situation, when all X are exogenous?