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,

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

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

View all other training opportunities.

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