Ye Xingwang
2007-Aug-20 13:55 UTC
[R] Ask for functions to obtain partial R-square (squared partial correlation coefficients)
The partial R-square (or coefficient of partial determination, or
squared partial correlation coefficients) measures the marginal
contribution of one explanatory variable when all others are already
included in multiple linear regression model.
The following link has very clear explanations on partial and
semi-partial correlation:
http://www.psy.jhu.edu/~ashelton/courses/stats315/week2.pdf
In SAS, the options is PCORR2 and SCORR2.
For example(from http://www.ats.ucla.edu/stat/sas/examples/alsm/alsmsasch7.htm)
data ch7tab01;
input X1 X2 X3 Y;
label x1 = 'Triceps'
x2 = 'Thigh cir.'
x3 = 'Midarm cir.'
y = 'body fat';
cards;
19.5 43.1 29.1 11.9
24.7 49.8 28.2 22.8
30.7 51.9 37.0 18.7
29.8 54.3 31.1 20.1
19.1 42.2 30.9 12.9
25.6 53.9 23.7 21.7
31.4 58.5 27.6 27.1
27.9 52.1 30.6 25.4
22.1 49.9 23.2 21.3
25.5 53.5 24.8 19.3
31.1 56.6 30.0 25.4
30.4 56.7 28.3 27.2
18.7 46.5 23.0 11.7
19.7 44.2 28.6 17.8
14.6 42.7 21.3 12.8
29.5 54.4 30.1 23.9
27.7 55.3 25.7 22.6
30.2 58.6 24.6 25.4
22.7 48.2 27.1 14.8
25.2 51.0 27.5 21.1
;
run;
proc reg data = ch7tab01;
model y = x1 x2 / pcorr2 SCORR2;
model y = x1-x3 / pcorr2 SCORR2;
run;
quit;
There has been a post in
http://tolstoy.newcastle.edu.au/R/help/05/03/0437.html
It will be great appreciated if someone could write a general function
to work with class lm or glm to obtain the
pcorr2 (squared partial correlation coefficients using Type II sums of squares)
and scorr2 (squared semi-partial correlation coefficients using Type
II sums of squares)
for all independent variables (>3 variables) simultaneously?
Thank you.
Xingwang Ye
Frank E Harrell Jr
2007-Aug-20 14:01 UTC
[R] Ask for functions to obtain partial R-square (squared partial correlation coefficients)
Ye Xingwang wrote:> The partial R-square (or coefficient of partial determination, or > squared partial correlation coefficients) measures the marginal > contribution of one explanatory variable when all others are already > included in multiple linear regression model. > > The following link has very clear explanations on partial and > semi-partial correlation: > http://www.psy.jhu.edu/~ashelton/courses/stats315/week2.pdf > > In SAS, the options is PCORR2 and SCORR2. > For example(from http://www.ats.ucla.edu/stat/sas/examples/alsm/alsmsasch7.htm) > > data ch7tab01; > input X1 X2 X3 Y; > label x1 = 'Triceps' > x2 = 'Thigh cir.' > x3 = 'Midarm cir.' > y = 'body fat'; > cards; > 19.5 43.1 29.1 11.9 > 24.7 49.8 28.2 22.8 > 30.7 51.9 37.0 18.7 > 29.8 54.3 31.1 20.1 > 19.1 42.2 30.9 12.9 > 25.6 53.9 23.7 21.7 > 31.4 58.5 27.6 27.1 > 27.9 52.1 30.6 25.4 > 22.1 49.9 23.2 21.3 > 25.5 53.5 24.8 19.3 > 31.1 56.6 30.0 25.4 > 30.4 56.7 28.3 27.2 > 18.7 46.5 23.0 11.7 > 19.7 44.2 28.6 17.8 > 14.6 42.7 21.3 12.8 > 29.5 54.4 30.1 23.9 > 27.7 55.3 25.7 22.6 > 30.2 58.6 24.6 25.4 > 22.7 48.2 27.1 14.8 > 25.2 51.0 27.5 21.1 > ; > run; > > proc reg data = ch7tab01; > model y = x1 x2 / pcorr2 SCORR2; > model y = x1-x3 / pcorr2 SCORR2; > run; > quit; > > There has been a post in > http://tolstoy.newcastle.edu.au/R/help/05/03/0437.html > > It will be great appreciated if someone could write a general function > to work with class lm or glm to obtain the > pcorr2 (squared partial correlation coefficients using Type II sums of squares) > and scorr2 (squared semi-partial correlation coefficients using Type > II sums of squares) > for all independent variables (>3 variables) simultaneously? > > Thank you. > Xingwang Ye >library(Design) # requires Hmisc f <- ols(y ~ x1 + x2) p <- plot(anova(f), what='partial R2') p The anova.Design function called above handles pooling related degrees of freedom and pools main effects with related interaction effects to get the total partial effect. Frank -- Frank E Harrell Jr Professor and Chair School of Medicine Department of Biostatistics Vanderbilt University