Hi all,
Consider the following basic example, where "Add" is used to add two variables to an existing regression equation:
proc reg;
model Y=x1 x2;
run;
add x3 x4;
print;
run;
The print command after the "add" shows the new model and its R square. However, it does not show the change (or delta) in R square from the first to the second model (as with full/nested models). It also does not provide a signficance test (specifically, an F test) to determine if the new variables provide a significant change in R2. How can I get SAS to provide the change in R square and the accompanying significance test from the first to the second model?
EDIT: Added request for significant test of change in R2.
You should get the proper tests with the test statement in proc reg:
proc reg data=pt8 edf outest=r2 plots=none;
Covariates: model jobSat= I IM A AM;
Linear: model jobSat= R RM I IM A AM;
LinTest: test R=0, RM=0;
Quadratic: model jobSat= R RM RM2 R2 RInt I IM A AM;
QuadTest: test RM2=0, R2=0, RInt=0;
run;
quit;
If you give labels to your models :
proc reg data=sashelp.class edf outest=r2 plots=none;
partial: model weight = height;
full: model weight = height age;
run;
quit;
data _null_;
set r2(where=(_model_="partial"));
R2_partial = _RSQ_;
set r2(where=(_model_="full"));
R2_full = _RSQ_;
R2_diff = R2_full - R2_partial;
put (R2_:) (percentn6.1);
run;
Thanks @PGStats
I'm almost there, but two issues remain:
Of note, here is the actual syntax I'm using, please build from it if possible. I'm adding to sets of variables to the initial equation. So there are 3 models and two comparisons for change in R-square:
proc reg data=pt8 edf outest=r2 plots=none;
Covariates: model jobSat= I IM A AM;
Linear: model jobSat= R RM I IM A AM;
Quadratic: model jobSat= R RM RM2 R2 RInt I IM A AM;
run;
quit;
data _null_;
set r2(where=(_model_="Covariates"));
R2_Covariates = _RSQ_;
set r2(where=(_model_="Linear"));
R2_Linear = _RSQ_;
set r2(where=(_model_="Quadratic"));
R2_Quadratic = _RSQ_;
R2_diff1 = R2_Linear - R2_Covariates;
R2_diff2 = R2_Quadratic - R2_Linear;
put (R2_:) (percentn6.1);
run;
Many thanks!
You should get the proper tests with the test statement in proc reg:
proc reg data=pt8 edf outest=r2 plots=none;
Covariates: model jobSat= I IM A AM;
Linear: model jobSat= R RM I IM A AM;
LinTest: test R=0, RM=0;
Quadratic: model jobSat= R RM RM2 R2 RInt I IM A AM;
QuadTest: test RM2=0, R2=0, RInt=0;
run;
quit;
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.