<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to create rolling windows with different numbers of observations per window? in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317868#M61812</link>
    <description>&lt;P&gt;Hello RW9,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks again.&amp;nbsp;Your macro runs smoothly and it divides the data into 10-years windows (e.g All firm data from 1960-1969--&amp;gt; window 1, data from 1970-1979 --&amp;gt; window 2...).&lt;/P&gt;&lt;P&gt;But do you maybe habe an idea how to&amp;nbsp;create rolling 10-years windows? Like window 1 1960-1969; window 2 1961-197o ....?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 09 Dec 2016 11:39:24 GMT</pubDate>
    <dc:creator>AnjaV</dc:creator>
    <dc:date>2016-12-09T11:39:24Z</dc:date>
    <item>
      <title>How to create rolling windows with different numbers of observations per window?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317642#M61793</link>
      <description>&lt;P&gt;Dear SAS Community,&lt;/P&gt;&lt;P&gt;As a first step to perform to perform a rolling regression I would like to create rolling regression windows.&lt;/P&gt;&lt;P&gt;Keintz (2012) suggested following approach:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DATA rwin / view=rwin;&lt;/P&gt;&lt;P&gt;ws = 90;&lt;/P&gt;&lt;P&gt;nwin = nrecs - ws +1;&lt;/P&gt;&lt;P&gt;do w=1 to nwin;&lt;/P&gt;&lt;P&gt;do p=w to w + ws -1;&lt;/P&gt;&lt;P&gt;set myseries point=p nobs=nrecs;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;stop;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However, I want to create annual rolling windows but with different numbers of observations per window. Window 1 must contain all firm observations from 1950-1959, window 2 all firm observation of the years 1951-1960 etc…. the last window contains all observations from 2006-2015. The number of observations differ between years.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is it possible to solve the problem by altering the code of keintz (2012)?&lt;/P&gt;&lt;P&gt;Thanks very much in advance&lt;/P&gt;&lt;P&gt;Best regards&amp;nbsp;&lt;/P&gt;&lt;P&gt;Anja&lt;/P&gt;</description>
      <pubDate>Thu, 08 Dec 2016 16:20:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317642#M61793</guid>
      <dc:creator>AnjaV</dc:creator>
      <dc:date>2016-12-08T16:20:24Z</dc:date>
    </item>
    <item>
      <title>Re: How to create rolling windows with different numbers of observations per window?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317644#M61795</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Can you post test data (form of a datastep) with some simple data, and what the output should look like. &amp;nbsp;If you have a date then:&lt;/P&gt;
&lt;PRE&gt;data have;
  thedate="01jan1950"d; output;
  thedate="01jan1956"d; output;
  thedate="01jan1962"d; output;
  thedate="01jan1970"d; output;
run;

data want;
  set have;
  window=floor((year(thedate)-1950) / 10)+1;
run;&lt;/PRE&gt;
&lt;P&gt;So you can get a window number based on year very simply with a formula. &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Dec 2016 16:35:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317644#M61795</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2016-12-08T16:35:41Z</dc:date>
    </item>
    <item>
      <title>Re: How to create rolling windows with different numbers of observations per window?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317657#M61799</link>
      <description>&lt;P&gt;Hello RW9,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your reply. This is how my data set looks like (rudimenarily)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Beob. Year FirmID Earnings LaggedEarnings 1 2 3 4 5 6 7 8 9 10 11 12 13&lt;/P&gt;&lt;TABLE cellspacing="0" cellpadding="5"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;1970&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1971&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1972&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1973&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1974&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1970&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1971&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1972&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1970&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1971&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1972&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1973&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1974&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And that is how the ouput should look like (but with 10 years rolling regression instead of 3 years)&lt;/P&gt;&lt;P&gt;Beob. Window Year FirmID Earnings LaggedEarnings 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23&lt;/P&gt;&lt;TABLE cellspacing="0" cellpadding="5"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1970&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1970&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1970&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1971&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1971&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1971&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1972&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1972&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1972&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1971&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1971&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1971&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1972&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1972&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1972&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1973&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1973&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1972&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1972&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1973&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1973&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1974&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1974&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;Thanks !!&lt;/P&gt;</description>
      <pubDate>Thu, 08 Dec 2016 17:06:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317657#M61799</guid>
      <dc:creator>AnjaV</dc:creator>
      <dc:date>2016-12-08T17:06:45Z</dc:date>
    </item>
    <item>
      <title>Re: How to create rolling windows with different numbers of observations per window?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317836#M61809</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Its a good idea to post test data in the form of a datastep.&lt;/P&gt;
&lt;PRE&gt;data have;
  input Year FirmID Earnings LaggedEarnings;
datalines;
1970	1	100	0
1971	1	200	100
1972	1	200	200
1973	1	200	200
1974	1	200	200
1970	2	100	0
1971	2	200	100
1972	2	200	200
1970	3	100	0
1971	3	200	100
1972	3	200	200
1973	3	200	200
1974	3	200	200
;
run;

data want (drop=inner);
  set have;
  retain window firm_id inner;
  if _n_=1 then do;
    window=1;
    firm_id=1;
    inner=1;
  end;
  else do;
    firm_id=sum(firm_id,1);
    if firm_id &amp;gt; 3 then do;
      firm_id=1;
      inner=sum(inner,1);
      if inner &amp;gt; 3 then do;
        inner=1;
        window=sum(window,1);
      end;
    end;
  end;
run;
&lt;/PRE&gt;</description>
      <pubDate>Fri, 09 Dec 2016 09:39:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317836#M61809</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2016-12-09T09:39:41Z</dc:date>
    </item>
    <item>
      <title>Re: How to create rolling windows with different numbers of observations per window?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317851#M61810</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much. Sorry, my statement was a misleading.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to divide my dataset by time-windows. The window "1970" should contain all firm data of years 1961-1970. The window "1971" should contain all firm data of years 1962-1971 and so on.... So&amp;nbsp;in the end all firms of the year 1970&amp;nbsp;are listed in 10 different windows (1970-1979).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Afterwants I want to run a pooled regression. Like:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PROC Reg Data=want Outest=Regression;&lt;/P&gt;&lt;P&gt;By Window;&lt;/P&gt;&lt;P&gt;Run;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So that I get regression coefficients for each window.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It is not very elegant because I have a lot of doublings in my want dataset&amp;nbsp;but since I am new to SAS I do not know how to code pooled rolling regression&amp;nbsp;otherwise.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much.&lt;/P&gt;</description>
      <pubDate>Fri, 09 Dec 2016 10:42:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317851#M61810</guid>
      <dc:creator>AnjaV</dc:creator>
      <dc:date>2016-12-09T10:42:55Z</dc:date>
    </item>
    <item>
      <title>Re: How to create rolling windows with different numbers of observations per window?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317857#M61811</link>
      <description>&lt;P&gt;Something like (maybe a bit overcomplicated, don't really have time to look at it at the moment):&lt;/P&gt;
&lt;PRE&gt;data have;
  input Year FirmID Earnings LaggedEarnings;
datalines;
1970	1	100	0
1971	1	200	100
1972	1	200	200
1973	1	200	200
1974	1	200	200
1970	2	100	0
1971	2	200	100
1972	2	200	200
1970	3	100	0
1971	3	200	100
1972	3	200	200
1973	3	200	200
1974	3	200	200
1983	3	200	200
1984	3	200	200
;
run;

data want;
  length window 8;
  set have (where=(1=0));
run;

proc sql noprint;
  select  min(YEAR),max(YEAR)
  into    :LOW,:HIGH
  from    HAVE;
quit;

%macro Get_Window;
  %local window;
  %let window=1;
  %do i=&amp;amp;low. %to &amp;amp;high. %by 10;
    data temp;
      set have (where=(&amp;amp;i. &amp;lt;= year &amp;lt;= %eval(&amp;amp;i.+10)));
      window=&amp;amp;window.;
    run;
    proc append base=want data=temp;
    run;
    %let window=%eval(&amp;amp;window.+1);
  %end;
%mend;
%Get_Window;&lt;/PRE&gt;</description>
      <pubDate>Fri, 09 Dec 2016 11:04:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317857#M61811</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2016-12-09T11:04:40Z</dc:date>
    </item>
    <item>
      <title>Re: How to create rolling windows with different numbers of observations per window?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317868#M61812</link>
      <description>&lt;P&gt;Hello RW9,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks again.&amp;nbsp;Your macro runs smoothly and it divides the data into 10-years windows (e.g All firm data from 1960-1969--&amp;gt; window 1, data from 1970-1979 --&amp;gt; window 2...).&lt;/P&gt;&lt;P&gt;But do you maybe habe an idea how to&amp;nbsp;create rolling 10-years windows? Like window 1 1960-1969; window 2 1961-197o ....?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Dec 2016 11:39:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317868#M61812</guid>
      <dc:creator>AnjaV</dc:creator>
      <dc:date>2016-12-09T11:39:24Z</dc:date>
    </item>
    <item>
      <title>Re: How to create rolling windows with different numbers of observations per window?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317871#M61813</link>
      <description>&lt;P&gt;Try dropping the "%by 10" part. &amp;nbsp;You will have to fiddle with it from there, I am travelling now.&lt;/P&gt;</description>
      <pubDate>Fri, 09 Dec 2016 11:42:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317871#M61813</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2016-12-09T11:42:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to create rolling windows with different numbers of observations per window?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317873#M61814</link>
      <description>&lt;P&gt;RW9, thank you very much. It works&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You made my day!!&lt;/P&gt;</description>
      <pubDate>Fri, 09 Dec 2016 12:16:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/317873#M61814</guid>
      <dc:creator>AnjaV</dc:creator>
      <dc:date>2016-12-09T12:16:24Z</dc:date>
    </item>
    <item>
      <title>Re: How to create rolling windows with different numbers of observations per window?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/318047#M61833</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'd recommend the following sequence:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&amp;nbsp;Make sure your dataset is sorted by ID/YEAR&lt;/LI&gt;
&lt;LI&gt;Make a data set VIEW containing all the needed squares and cross-products - call it&amp;nbsp; SQ_CP_BY_IDYEAR&lt;/LI&gt;
&lt;LI&gt;Run a proc expand to generate 10-year rolling SSCP values for each firm&lt;/LI&gt;
&lt;LI&gt;Run proc summary to pool data over all firms&lt;/LI&gt;
&lt;LI&gt;Convert the rolling sscp into a TYPE=SSCP dataset, which PROC REG can process&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The code here applies that process to sashelp.stocks (10 days instead of 10 years)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For a 10-year window this process of making 10-year rolling SSCP may not be particlularly faster than making 10-year rolling oriiginal data windows, but for daily and monthly data, where each window commonly has more records, it becomes notably superior.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=sashelp.stocks 
   out=stocks (rename=(close=y open=ylag1 high=x1 low=x2 volume=x3 adjclose=x4));
  by stock date;
run;

/* Make a data set view of squares and cross-products */
data sqcp   /view=sqcp;
  set stocks;
  array vars {7} intercept y ylag1 x1-x4;
  retain intercept 1;

  array sqcp {7,7};
  do r=1 to 7;
    sqcp{r,r}=vars{r}**2;
    if r&amp;lt;7 then do c=r+1 to 7;
      sqcp{r,c}=vars{r}*vars{c};
      sqcp{c,r}=sqcp{r,c};
    end;
  end;
  drop r c;
run;

/* Make rolling sscp (SUM of squares &amp;amp; cross-prods) data for 10-day windows */
proc expand data=sqcp  out=rsscp_data2 (where=(intercept=10)) method=none;
  by stock;
  id date;
  convert _numeric_  / transform=(movsum 10);
run;

/* Pool sscp data over all stocks */
proc summary data=rsscp_data  nway;
  class date;
  var _numeric_;
  output out=pooled_rsscp_data (drop=_TYPE_ _FREQ_) sum=;
run;

/* Reformat the data as a TYPE=SSCP data set, ready for PROC REG */
data pooled_rolling_sscp (type=SSCP drop=sqcp:  n v);
  length _TYPE_ $8 _NAME_ $32;
  set pooled_rsscp_data;  

  array vars {7} intercept y ylag1 x1-x4;
  array sqcp {7,7};

  array vnames {7} $32 _temporary_ ;
  if _n_=1 then do v=1 to dim(vars); vnames{v}=vname(vars{v}); end;

  _TYPE_='SSCP';
  do n=1 to 7;
    _NAME_=vnames{n};
    do v=1 to 7;  vars{v}=sqcp{n,v};  end;
    output;
  end;

  _type_='N';
  _NAME_=' ';
  do v=1 to 7; vars{v}=sqcp{1,1}; end;
  output;
run;

proc reg data=pooled_rolling_sscp (obs=8);
  var y ylag1 x1-x4;
  model y=ylag1 x1-x4;
run;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 10 Dec 2016 03:17:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-create-rolling-windows-with-different-numbers-of/m-p/318047#M61833</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2016-12-10T03:17:10Z</dc:date>
    </item>
  </channel>
</rss>

