Learn R Programming

generalCorr (version 1.2.6)

mag_ctrl: After removing control variables, magnitude of effect of x on y, and of y on x.

Description

Uses Vinod (2015) and runs kernel regressions: x~ y + ctrl and x~ ctrl to evaluate the `incremental change' in R-squares. Let (rxy;ctrl) denote the square root of that `incremental change' after its sign is made the same as that of the Pearson correlation coefficient from cor(x,y)). One can interpret (rxy;ctrl) as a generalized partial correlation coefficient when x is regressed on y after removing the effect of control variable(s) in ctrl. It is more general than the usual partial correlation coefficient, since this one allows for nonlinear relations among variables. Next, the function computes `dxdy' obtained by multiplying (rxy;ctrl) by the ratio of standard deviations, sd(x)/sd(y). Now our `dxdy' approximates the magnitude of the partial derivative (dx/dy) in a causal model where y is the cause and x is the effect. The function also reports entirely analogous `dydx' obtained by interchanging x and y.

Usage

mag_ctrl(x, y, ctrl)

Value

vector of two magnitudes `dxdy' (effect when x is regressed on y) and `dydx' for reverse regression. Both regressions remove the effect of control variable(s).

Arguments

x

Vector of data on the dependent variable.

y

Vector of data on the regressor.

ctrl

data matrix for designated control variable(s) outside causal paths. A constant vector is not allowed as a control variable.

Author

Prof. H. D. Vinod, Economics Dept., Fordham University, NY

References

Vinod, H. D. `Generalized Correlation and Kernel Causality with Applications in Development Economics' in Communications in Statistics -Simulation and Computation, 2015, tools:::Rd_expr_doi("10.1080/03610918.2015.1122048")

Vinod, H. D. 'Matrix Algebra Topics in Statistics and Economics Using R', Chapter 4 in Handbook of Statistics: Computational Statistics with R, Vol.32, co-editors: M. B. Rao and C. R. Rao. New York: North Holland, Elsevier Science Publishers, 2014, pp. 143-176.

See Also

See mag

Examples

Run this code

set.seed(123);x=sample(1:10); z=runif(10); y=1+2*x+3*z+rnorm(10)
options(np.messages=FALSE)
mag_ctrl(x,y,z)#dx/dy=0.47 is approximately 0.5, but dy/dx=1.41 is not approx=2,

Run the code above in your browser using DataLab