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,
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 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.