Quartz | Level 8

## Proc Reg : generate new variables from some coefficients

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
Meteorite | Level 14

## Re: Proc Reg : generate new variables from some coefficients

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;
``````

Best,

8 REPLIES 8
Diamond | Level 26

## Re: Proc Reg : generate new variables from some coefficients

@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)?

``````proc reg data = example;
model y =  A B C D E F;
output out=residuals r=residual;
run;``````
--
Paige Miller
Quartz | Level 8

## Re: Proc Reg : generate new variables from some coefficients

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.
Diamond | Level 26

## Re: Proc Reg : generate new variables from some coefficients

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

--
Paige Miller
Meteorite | Level 14

## Re: Proc Reg : generate new variables from some coefficients

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,

Quartz | Level 8

## Re: Proc Reg : generate new variables from some coefficients

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.
Meteorite | Level 14

## Re: Proc Reg : generate new variables from some coefficients

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;
``````

Best,

Quartz | Level 8

## Re: Proc Reg : generate new variables from some coefficients

Dear ed_sas_member,
Thank you so much for your helps.
Best,
Meteorite | Level 14

## Re: Proc Reg : generate new variables from some coefficients

You're welcome @Golf !
Discussion stats
• 8 replies
• 536 views
• 2 likes
• 3 in conversation