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;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.