Hello,
I have 6 independent variables (A, B, C, D, E, and F)
proc reg data = example;
model y = A B C D E F;
run;
Given that b_A, b_B and b_c are coefficients of A, B and C, respectively.
How can I generate a new variable from
NewVar = y - (b_A)*A - (b_B)*B - (b_C)*C
Thank You
Hi @Golf
This is untested code:
proc reg data = example outest=parameters;
model y = A B C D E F;
run;
data _null_;
set parameters;
call symputx("Intercept", Intercept);
call symputx("b_A", A);
call symputx("b_B", B);
call symputx("b_C", C);
run;
data want;
set example;
newvar = y - (&b_A.)*A - (&b_B.)*B - (&b_C.)*C;
run;
Would that meet your expectations?
Best,
@Golf wrote:
Hello,
I have 6 independent variables (A, B, C, D, E, and F)
proc reg data = example;
model y = A B C D E F;run;
Given that b_A, b_B and b_c are coefficients of A, B and C, respectively.
How can I generate a new variable from
NewVar = y - (b_A)*A - (b_B)*B - (b_C)*C
You want to compute residuals (y – predicted value)?
Add an OUTPUT statement into your PROC REG that asks for residuals to be computed
proc reg data = example;
model y = A B C D E F;
output out=residuals r=residual;
run;
@Golf wrote:
PaigeMiller,
Nope. I don't want predicted value to subtract from y.
I want to use (b_A)*A + (b_B)*B + (b_C)*C to subtract from y as follow:
NewVar = y - (b_A)*A - (b_B)*B - (b_C)*C.
Use PROC SCORE to use the regression coefficients as you show.
Here's an example: https://documentation.sas.com/?cdcId=pgmsascdc&cdcVersion=9.4_3.4&docsetId=statug&docsetTarget=statu...
Hi @Golf
Why don't you take also estimated parameters for variables D, E and F? Is it a mistake ?
As suggested by @PaigeMiller you can retrieve the residuals in an OUTPUT statement.
Maybe you will need to re-run the model with only A, B and C to get the desired calculation.
NB: for information, you can gather the parameter estimates by specifying the outest= option in the PROC REG statement.
best,
Hi @Golf
This is untested code:
proc reg data = example outest=parameters;
model y = A B C D E F;
run;
data _null_;
set parameters;
call symputx("Intercept", Intercept);
call symputx("b_A", A);
call symputx("b_B", B);
call symputx("b_C", C);
run;
data want;
set example;
newvar = y - (&b_A.)*A - (&b_B.)*B - (&b_C.)*C;
run;
Would that meet your expectations?
Best,
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Lock in the best rate now before the price increases on April 1.
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.