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

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
Quartz | Level 8
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
Quartz | Level 8
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
Quartz | Level 8
Dear ed_sas_member,
Thank you so much for your helps.
Best,

SAS INNOVATE 2024

Innovate_SAS_Blue.png

Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.

If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website. 

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.

Get the $99 certification deal.jpg

 

 

Back in the Classroom!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

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