Hi,
I use the sashelp.stocks as the input file and I want to run regression of
Close = Volume
For a given day, say 27Feb2023, I want to run this regression on 30 rows including 27Feb2023.
The output I want to have is date, stock, predicted value and residual value as in the code below.
Can you please help?
Thank you,
HHC
proc reg noprint data=sashelp.stocks outest=want_test;
by stock;
model close = volume;
output out=want (keep = stock date predicted residual) p=predicted r=residual;
run;
quit;
Thanks for you suggestion.
proc sort data=sashelp.stocks out =have ; by stock descending date;run;
data have; set have ;
by stock;
if first.stock then n=0;
n+1;
run;
proc sql;
create table full
as select a.stock, a.date , b. date as _date, b.close, b.volume
from have as a left join have as b
on a.stock=b.stock and a.n<=b.n<=a.n+30
order by a.stock, a.date , b.date;
quit;
proc reg noprint data=full outest=want_test;
by stock date;
model close = volume;
output out=want (keep = stock date predicted residual) p=predicted r=residual;
run;
quit;
Thanks for you suggestion.
proc sort data=sashelp.stocks out =have ; by stock descending date;run;
data have; set have ;
by stock;
if first.stock then n=0;
n+1;
run;
proc sql;
create table full
as select a.stock, a.date , b. date as _date, b.close, b.volume
from have as a left join have as b
on a.stock=b.stock and a.n<=b.n<=a.n+30
order by a.stock, a.date , b.date;
quit;
proc reg noprint data=full outest=want_test;
by stock date;
model close = volume;
output out=want (keep = stock date predicted residual) p=predicted r=residual;
run;
quit;
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.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.