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;
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: