BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Golf
Pyrite | Level 9

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

1 ACCEPTED SOLUTION

Accepted Solutions
ed_sas_member
Meteorite | Level 14

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,

View solution in original post

8 REPLIES 8
PaigeMiller
Diamond | Level 26

@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;
--
Paige Miller
Golf
Pyrite | Level 9
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.
PaigeMiller
Diamond | Level 26

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

--
Paige Miller
ed_sas_member
Meteorite | Level 14

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,

Golf
Pyrite | Level 9
It is because I am doing Dynamic OLS to obtain cointegration relationship. In this case only some coefficients need to be used instead of all coefficients.
Thanks.
PS Actually, I can estimate all and see the results, then plug in the number. But I'd like if there exist better way than this.
ed_sas_member
Meteorite | Level 14

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
Pyrite | Level 9
Dear ed_sas_member,
Thank you so much for your helps.
Best,
ed_sas_member
Meteorite | Level 14
You're welcome @Golf !

sas-innovate-white.png

🚨 Early Bird Rate Extended!

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.

Register now!

What is Bayesian Analysis?

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 8 replies
  • 1667 views
  • 2 likes
  • 3 in conversation