BookmarkSubscribeRSS Feed
RazzleBayker
Calcite | Level 5

I have several thousand observations.  I want a code for a regression that would work like a moving average; i need a regression for obs 1 through 200, then a regression for obs 2 through 201, then 3 through 202, etc etc.  Is this possible to do without making a seperate sample for each regression?  Any idea what the coding would look like?

Thanks in advance.

18 REPLIES 18
art297
Opal | Level 21

Not sure if there is a more direct way, but you could always wrap the reg call in a macro.  E.g., given sashelp.class which has 19 records, the following would run regressions on records 1 thru 5, then 2 thru 6, etc, thru 15 thru 19:

%macro repeatreg (number,lastset);

  %do i=1 %to &lastset;

    %let j=%eval(&i.+&number.);

    proc reg data=sashelp.class (firstobs=&i obs=&j.);

      model age=height weight;

    run;

    quit;

  %end;

%mend repeatreg;

%repeatreg(5,15)

Reeza
Super User

use by groups after classifying your observations into groups, you can use proc format to help.

proc sort data=sashelp.class; by sex;

proc reg data=sashelp.class;

by sex;

model age=height weight;

run;

quit;

PGStats
Opal | Level 21

Or use a view and POINT=

data rCars(keep=grp engineSize horsepower) / view=rCars;
do grp = 0 to nbCars-200;
     do j = 1 + grp to 200 + grp;
          set sashelp.cars nobs=nbCars point=j;
          output;
          end;
     end;
stop;
run;

proc reg data=rCars outest=eCars;
by grp;
model horsePower = enginesize;
run;

That way you don't create any new version of your dataset and you can collect all the results in a single dataset.

PG

PG
Reeza
Super User

You can tell the Canadians today....

art297
Opal | Level 21

I couldn't talk my wife into doing two thanksgivings this year.  Anyone have a spare turkey leg?

P.S.: I like your solution

Ksharp
Super User

ArthurT,

Actually I like your solution more than PG's . PG's code will generated lots of obs when it is a big data.

Ksharp

PGStats
Opal | Level 21

A view doesn't generate any data. At least, it doesn't have to. - PG

PG
Ksharp
Super User

PG,

Yeah, But when you implement PROC REG ,it will produce lots of obs in a dataset.

PGStats
Opal | Level 21

There won"t be much data produced unless you include an OUTPUT statement (to get predicted values or residuals). The OUTEST=eCars option produces a single observation per regression. You can also request the NOPRINT option to suppress printed output. - PG

PG
Ksharp
Super User

Hi. PG,

I do not think so.

when you implement REG ,  data=rCars  will generate a  concrete dataset even you cann't see it .

View only contains the sas code you wrote before, when sas use reg model ,it will also need a real dataset to feed REG. View can't do it , I guess so. Did you make a experiment for it ?

Ksharp

PGStats
Opal | Level 21

I tested both solutions that I proposed. I can't tell if a hidden dataset is created by executing the view or if some other kind of interprocess communication is used. It might depend on its size. - PG

PG
Ksharp
Super User

Hi, PG

I believe a concrete dataset in somewhere, VIEW only contains the sas code ,you can't feed it into REG .

when you execute PROC REG ,sas will generate a dataset to feed it . You can't walk around it by using View.

Regards.

Ksharp

PGStats
Opal | Level 21

Please check section Performance Considerations in

http://support.sas.com/documentation/cdl/en/lrcon/65287/HTML/default/viewer.htm#n07vq6hmss6f67n1vhnn...

It states that when only sequential access is required, no actual dataset is created when reading a data step view.

PG

PG
Linlin
Lapis Lazuli | Level 10

Hi Art,

Sorry, no spare turkey leg from me. You can have something else, enjoy it! - Linlin

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

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
  • 18 replies
  • 1941 views
  • 1 like
  • 7 in conversation