<?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: rolling alpha in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/rolling-alpha/m-p/375929#M90178</link>
    <description>&lt;P&gt;Hello&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your reply.&lt;/P&gt;&lt;P&gt;Maybe you are right I should use a simplified example .&lt;/P&gt;&lt;P&gt;I have posted the sas code. My goal is to &amp;nbsp;extract the beta of x . My question is that if I have missing values for my X and I want to run the regression only if I have 4 previous non missing values of X how &amp;nbsp;can I do that ??&lt;/P&gt;&lt;P&gt;Since with these codes I obtain &amp;nbsp;betas for date_code 04 ,05,06,07 , but I want only the beta of date_code 07 since it have full 4 previous observation.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you in advance for you help&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;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have1;
input id $date_code y x;
cards;
1 01 12 .
1 02 23 .
1 03 10 .
1 04 15 7
1 05 31 16
1 06 17 9
1 07 22 12
;
run;

data prepare1;
    array _X {4} _temporary_ ;
    array _Y {4} _temporary_ ;
    set have1;
    by  id;
    retain N 0;
    N = ifn(first.id,1,N+1);

    I=mod(N-1,4)+1;

    _X{I}=x;
    _Y{I}=y;
    if N&amp;gt;=4 then do I= 1 to 4;
        x=_X{I};
        y=_Y{I};
        output;
    end;
run;

proc reg data=prepare1  outest=result noprint;
    by id date_code ;
    model y = x;
run;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 14 Jul 2017 06:34:38 GMT</pubDate>
    <dc:creator>odette</dc:creator>
    <dc:date>2017-07-14T06:34:38Z</dc:date>
    <item>
      <title>rolling alpha</title>
      <link>https://communities.sas.com/t5/SAS-Programming/rolling-alpha/m-p/374391#M89634</link>
      <description>&lt;P&gt;hello everyone&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am new to sas and my question is a bit basic.&lt;/P&gt;&lt;P&gt;I want to extract for each fund_id in each month , the &amp;nbsp;fama french alpha using 60 month previous observations using this model&lt;/P&gt;&lt;P&gt;&amp;nbsp;mretf = alpha +b1 MKTRF+b2 SMB + b3 HML+ b4 UMD; my sample&lt;SPAN&gt;&amp;nbsp;period is 2001-2016 and the starting period of my study is 01/01/2005 .&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I have tried the following code and I think it works well but my question is about the index &amp;nbsp;(&amp;nbsp;I=mod(N-1,60)+1). Since the table rf4 created by sas,skip the first observation at each new id. I have posted here for one fund an example of the data.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;For 31 jan 2005 , the table rf4 created by sas &amp;nbsp;skip the first obs( 31 jan 2000) and begins by 29 fev 2000 &amp;nbsp;until 31 jan 2005.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Your help is much appreciated. Thanks&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;CALDT&lt;/TD&gt;&lt;TD&gt;FACTSET_FUND_ID&lt;/TD&gt;&lt;TD&gt;mretf&lt;/TD&gt;&lt;TD&gt;SMB&lt;/TD&gt;&lt;TD&gt;HML&lt;/TD&gt;&lt;TD&gt;MKTRF&lt;/TD&gt;&lt;TD&gt;UMD&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Jan-00&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.02107&lt;/TD&gt;&lt;TD&gt;0.0501&lt;/TD&gt;&lt;TD&gt;-0.0045&lt;/TD&gt;&lt;TD&gt;-0.0474&lt;/TD&gt;&lt;TD&gt;0.0188&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;29-Feb-00&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.25627&lt;/TD&gt;&lt;TD&gt;0.2208&lt;/TD&gt;&lt;TD&gt;-0.1049&lt;/TD&gt;&lt;TD&gt;0.0245&lt;/TD&gt;&lt;TD&gt;0.1838&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Mar-00&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.08662&lt;/TD&gt;&lt;TD&gt;-0.1717&lt;/TD&gt;&lt;TD&gt;0.0786&lt;/TD&gt;&lt;TD&gt;0.052&lt;/TD&gt;&lt;TD&gt;-0.068&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;28-Apr-00&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.11902&lt;/TD&gt;&lt;TD&gt;-0.0777&lt;/TD&gt;&lt;TD&gt;0.0857&lt;/TD&gt;&lt;TD&gt;-0.064&lt;/TD&gt;&lt;TD&gt;-0.0852&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-May-00&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.09957&lt;/TD&gt;&lt;TD&gt;-0.0494&lt;/TD&gt;&lt;TD&gt;0.0239&lt;/TD&gt;&lt;TD&gt;-0.0442&lt;/TD&gt;&lt;TD&gt;-0.0906&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Jun-00&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.085008&lt;/TD&gt;&lt;TD&gt;0.1395&lt;/TD&gt;&lt;TD&gt;-0.1003&lt;/TD&gt;&lt;TD&gt;0.0464&lt;/TD&gt;&lt;TD&gt;0.165&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Jul-00&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.02268&lt;/TD&gt;&lt;TD&gt;-0.0278&lt;/TD&gt;&lt;TD&gt;0.0815&lt;/TD&gt;&lt;TD&gt;-0.0251&lt;/TD&gt;&lt;TD&gt;-0.0012&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Aug-00&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.085901&lt;/TD&gt;&lt;TD&gt;-0.0111&lt;/TD&gt;&lt;TD&gt;-0.0069&lt;/TD&gt;&lt;TD&gt;0.0703&lt;/TD&gt;&lt;TD&gt;0.057&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;29-Sep-00&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.09272&lt;/TD&gt;&lt;TD&gt;-0.014&lt;/TD&gt;&lt;TD&gt;0.0623&lt;/TD&gt;&lt;TD&gt;-0.0545&lt;/TD&gt;&lt;TD&gt;0.0215&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Oct-00&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.07226&lt;/TD&gt;&lt;TD&gt;-0.0377&lt;/TD&gt;&lt;TD&gt;0.0555&lt;/TD&gt;&lt;TD&gt;-0.0276&lt;/TD&gt;&lt;TD&gt;-0.0463&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Nov-00&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.16127&lt;/TD&gt;&lt;TD&gt;-0.0277&lt;/TD&gt;&lt;TD&gt;0.1129&lt;/TD&gt;&lt;TD&gt;-0.1072&lt;/TD&gt;&lt;TD&gt;-0.0244&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;29-Dec-00&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.029903&lt;/TD&gt;&lt;TD&gt;0.0096&lt;/TD&gt;&lt;TD&gt;0.073&lt;/TD&gt;&lt;TD&gt;0.0119&lt;/TD&gt;&lt;TD&gt;0.0673&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Jan-01&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.066976&lt;/TD&gt;&lt;TD&gt;0.0656&lt;/TD&gt;&lt;TD&gt;-0.0488&lt;/TD&gt;&lt;TD&gt;0.0313&lt;/TD&gt;&lt;TD&gt;-0.2501&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;28-Feb-01&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.15926&lt;/TD&gt;&lt;TD&gt;-0.0072&lt;/TD&gt;&lt;TD&gt;0.1291&lt;/TD&gt;&lt;TD&gt;-0.1005&lt;/TD&gt;&lt;TD&gt;0.1248&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;29-Mar-01&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.10098&lt;/TD&gt;&lt;TD&gt;0.0039&lt;/TD&gt;&lt;TD&gt;0.0649&lt;/TD&gt;&lt;TD&gt;-0.0726&lt;/TD&gt;&lt;TD&gt;0.0838&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Apr-01&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.085569&lt;/TD&gt;&lt;TD&gt;0.005&lt;/TD&gt;&lt;TD&gt;-0.0469&lt;/TD&gt;&lt;TD&gt;0.0794&lt;/TD&gt;&lt;TD&gt;-0.0812&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-May-01&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.002938&lt;/TD&gt;&lt;TD&gt;0.026&lt;/TD&gt;&lt;TD&gt;0.0313&lt;/TD&gt;&lt;TD&gt;0.0072&lt;/TD&gt;&lt;TD&gt;0.0217&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;29-Jun-01&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.02129&lt;/TD&gt;&lt;TD&gt;0.0603&lt;/TD&gt;&lt;TD&gt;-0.0109&lt;/TD&gt;&lt;TD&gt;-0.0194&lt;/TD&gt;&lt;TD&gt;0.0034&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Jul-01&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.04485&lt;/TD&gt;&lt;TD&gt;-0.0435&lt;/TD&gt;&lt;TD&gt;0.0561&lt;/TD&gt;&lt;TD&gt;-0.0213&lt;/TD&gt;&lt;TD&gt;0.055&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Aug-01&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.05641&lt;/TD&gt;&lt;TD&gt;0.025&lt;/TD&gt;&lt;TD&gt;0.0256&lt;/TD&gt;&lt;TD&gt;-0.0646&lt;/TD&gt;&lt;TD&gt;0.0554&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;28-Sep-01&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.12993&lt;/TD&gt;&lt;TD&gt;-0.0611&lt;/TD&gt;&lt;TD&gt;0.0156&lt;/TD&gt;&lt;TD&gt;-0.0925&lt;/TD&gt;&lt;TD&gt;0.1155&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Oct-01&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.047347&lt;/TD&gt;&lt;TD&gt;0.0756&lt;/TD&gt;&lt;TD&gt;-0.0802&lt;/TD&gt;&lt;TD&gt;0.0246&lt;/TD&gt;&lt;TD&gt;-0.0838&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Nov-01&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.032566&lt;/TD&gt;&lt;TD&gt;-0.004&lt;/TD&gt;&lt;TD&gt;0.02&lt;/TD&gt;&lt;TD&gt;0.0754&lt;/TD&gt;&lt;TD&gt;-0.0857&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Dec-01&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.018145&lt;/TD&gt;&lt;TD&gt;0.0456&lt;/TD&gt;&lt;TD&gt;0.0108&lt;/TD&gt;&lt;TD&gt;0.0161&lt;/TD&gt;&lt;TD&gt;-0.0003&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Jan-02&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.01629&lt;/TD&gt;&lt;TD&gt;0.0119&lt;/TD&gt;&lt;TD&gt;0.0335&lt;/TD&gt;&lt;TD&gt;-0.0144&lt;/TD&gt;&lt;TD&gt;0.0376&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;28-Feb-02&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.01538&lt;/TD&gt;&lt;TD&gt;-0.0114&lt;/TD&gt;&lt;TD&gt;0.0251&lt;/TD&gt;&lt;TD&gt;-0.0229&lt;/TD&gt;&lt;TD&gt;0.0679&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;28-Mar-02&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.045198&lt;/TD&gt;&lt;TD&gt;0.0426&lt;/TD&gt;&lt;TD&gt;0.0111&lt;/TD&gt;&lt;TD&gt;0.0424&lt;/TD&gt;&lt;TD&gt;-0.0164&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Apr-02&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.00575&lt;/TD&gt;&lt;TD&gt;0.0594&lt;/TD&gt;&lt;TD&gt;0.0392&lt;/TD&gt;&lt;TD&gt;-0.052&lt;/TD&gt;&lt;TD&gt;0.0798&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-May-02&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.0054&lt;/TD&gt;&lt;TD&gt;-0.0322&lt;/TD&gt;&lt;TD&gt;0.017&lt;/TD&gt;&lt;TD&gt;-0.0138&lt;/TD&gt;&lt;TD&gt;0.0304&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;28-Jun-02&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.04528&lt;/TD&gt;&lt;TD&gt;0.0426&lt;/TD&gt;&lt;TD&gt;0.0012&lt;/TD&gt;&lt;TD&gt;-0.0721&lt;/TD&gt;&lt;TD&gt;0.0614&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Jul-02&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.09043&lt;/TD&gt;&lt;TD&gt;-0.0537&lt;/TD&gt;&lt;TD&gt;-0.0352&lt;/TD&gt;&lt;TD&gt;-0.0818&lt;/TD&gt;&lt;TD&gt;0.0338&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Aug-02&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.00355&lt;/TD&gt;&lt;TD&gt;-0.0243&lt;/TD&gt;&lt;TD&gt;0.0253&lt;/TD&gt;&lt;TD&gt;0.005&lt;/TD&gt;&lt;TD&gt;0.0175&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Sep-02&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.06487&lt;/TD&gt;&lt;TD&gt;0.0255&lt;/TD&gt;&lt;TD&gt;0.0126&lt;/TD&gt;&lt;TD&gt;-0.1035&lt;/TD&gt;&lt;TD&gt;0.0915&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Oct-02&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.024372&lt;/TD&gt;&lt;TD&gt;-0.0286&lt;/TD&gt;&lt;TD&gt;-0.054&lt;/TD&gt;&lt;TD&gt;0.0784&lt;/TD&gt;&lt;TD&gt;-0.0546&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;29-Nov-02&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.032228&lt;/TD&gt;&lt;TD&gt;0.0295&lt;/TD&gt;&lt;TD&gt;-0.0095&lt;/TD&gt;&lt;TD&gt;0.0596&lt;/TD&gt;&lt;TD&gt;-0.1628&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Dec-02&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.0285&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0.0221&lt;/TD&gt;&lt;TD&gt;-0.0576&lt;/TD&gt;&lt;TD&gt;0.0962&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Jan-03&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.02095&lt;/TD&gt;&lt;TD&gt;0.0144&lt;/TD&gt;&lt;TD&gt;-0.0083&lt;/TD&gt;&lt;TD&gt;-0.0257&lt;/TD&gt;&lt;TD&gt;0.0158&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;28-Feb-03&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.01952&lt;/TD&gt;&lt;TD&gt;-0.0035&lt;/TD&gt;&lt;TD&gt;-0.0147&lt;/TD&gt;&lt;TD&gt;-0.0188&lt;/TD&gt;&lt;TD&gt;0.0125&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Mar-03&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.030325&lt;/TD&gt;&lt;TD&gt;0.01&lt;/TD&gt;&lt;TD&gt;-0.0193&lt;/TD&gt;&lt;TD&gt;0.0109&lt;/TD&gt;&lt;TD&gt;0.0152&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Apr-03&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.063457&lt;/TD&gt;&lt;TD&gt;0.0061&lt;/TD&gt;&lt;TD&gt;0.0111&lt;/TD&gt;&lt;TD&gt;0.0822&lt;/TD&gt;&lt;TD&gt;-0.0942&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-May-03&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.070241&lt;/TD&gt;&lt;TD&gt;0.0484&lt;/TD&gt;&lt;TD&gt;-0.001&lt;/TD&gt;&lt;TD&gt;0.0605&lt;/TD&gt;&lt;TD&gt;-0.1076&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Jun-03&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.021306&lt;/TD&gt;&lt;TD&gt;0.016&lt;/TD&gt;&lt;TD&gt;0.0057&lt;/TD&gt;&lt;TD&gt;0.0142&lt;/TD&gt;&lt;TD&gt;-0.0102&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Jul-03&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.031667&lt;/TD&gt;&lt;TD&gt;0.0534&lt;/TD&gt;&lt;TD&gt;-0.0102&lt;/TD&gt;&lt;TD&gt;0.0235&lt;/TD&gt;&lt;TD&gt;-0.0029&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;29-Aug-03&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.036795&lt;/TD&gt;&lt;TD&gt;0.0265&lt;/TD&gt;&lt;TD&gt;0.021&lt;/TD&gt;&lt;TD&gt;0.0234&lt;/TD&gt;&lt;TD&gt;-0.0054&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Sep-03&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.010955&lt;/TD&gt;&lt;TD&gt;0.0081&lt;/TD&gt;&lt;TD&gt;0.0001&lt;/TD&gt;&lt;TD&gt;-0.0124&lt;/TD&gt;&lt;TD&gt;-0.0019&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Oct-03&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.06943&lt;/TD&gt;&lt;TD&gt;0.0281&lt;/TD&gt;&lt;TD&gt;0.0193&lt;/TD&gt;&lt;TD&gt;0.0608&lt;/TD&gt;&lt;TD&gt;0.0375&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;28-Nov-03&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.023784&lt;/TD&gt;&lt;TD&gt;0.0216&lt;/TD&gt;&lt;TD&gt;0.0196&lt;/TD&gt;&lt;TD&gt;0.0135&lt;/TD&gt;&lt;TD&gt;0.0163&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Dec-03&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.051092&lt;/TD&gt;&lt;TD&gt;-0.0305&lt;/TD&gt;&lt;TD&gt;0.0235&lt;/TD&gt;&lt;TD&gt;0.0429&lt;/TD&gt;&lt;TD&gt;-0.0569&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Jan-04&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.037932&lt;/TD&gt;&lt;TD&gt;0.0274&lt;/TD&gt;&lt;TD&gt;0.0196&lt;/TD&gt;&lt;TD&gt;0.0215&lt;/TD&gt;&lt;TD&gt;0.0259&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;27-Feb-04&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.032609&lt;/TD&gt;&lt;TD&gt;-0.0143&lt;/TD&gt;&lt;TD&gt;0.0048&lt;/TD&gt;&lt;TD&gt;0.014&lt;/TD&gt;&lt;TD&gt;-0.011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Mar-04&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.00011&lt;/TD&gt;&lt;TD&gt;0.0177&lt;/TD&gt;&lt;TD&gt;0.0025&lt;/TD&gt;&lt;TD&gt;-0.0132&lt;/TD&gt;&lt;TD&gt;0.002&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Apr-04&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.02934&lt;/TD&gt;&lt;TD&gt;-0.0212&lt;/TD&gt;&lt;TD&gt;-0.0262&lt;/TD&gt;&lt;TD&gt;-0.0183&lt;/TD&gt;&lt;TD&gt;-0.0536&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-May-04&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.013562&lt;/TD&gt;&lt;TD&gt;-0.0019&lt;/TD&gt;&lt;TD&gt;-0.0035&lt;/TD&gt;&lt;TD&gt;0.0117&lt;/TD&gt;&lt;TD&gt;0.0165&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Jun-04&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.016311&lt;/TD&gt;&lt;TD&gt;0.0223&lt;/TD&gt;&lt;TD&gt;0.0135&lt;/TD&gt;&lt;TD&gt;0.0186&lt;/TD&gt;&lt;TD&gt;0.0207&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Jul-04&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.0625&lt;/TD&gt;&lt;TD&gt;-0.038&lt;/TD&gt;&lt;TD&gt;0.0409&lt;/TD&gt;&lt;TD&gt;-0.0406&lt;/TD&gt;&lt;TD&gt;-0.023&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Aug-04&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.011417&lt;/TD&gt;&lt;TD&gt;-0.0159&lt;/TD&gt;&lt;TD&gt;0.0096&lt;/TD&gt;&lt;TD&gt;0.0008&lt;/TD&gt;&lt;TD&gt;-0.015&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Sep-04&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.04196&lt;/TD&gt;&lt;TD&gt;0.0305&lt;/TD&gt;&lt;TD&gt;-0.0024&lt;/TD&gt;&lt;TD&gt;0.016&lt;/TD&gt;&lt;TD&gt;0.0526&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;29-Oct-04&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.041746&lt;/TD&gt;&lt;TD&gt;0.0033&lt;/TD&gt;&lt;TD&gt;-0.0056&lt;/TD&gt;&lt;TD&gt;0.0143&lt;/TD&gt;&lt;TD&gt;-0.0149&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-Nov-04&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.070328&lt;/TD&gt;&lt;TD&gt;0.039&lt;/TD&gt;&lt;TD&gt;0.0181&lt;/TD&gt;&lt;TD&gt;0.0454&lt;/TD&gt;&lt;TD&gt;0.0322&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Dec-04&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0.050927&lt;/TD&gt;&lt;TD&gt;0.0016&lt;/TD&gt;&lt;TD&gt;-0.0004&lt;/TD&gt;&lt;TD&gt;0.0343&lt;/TD&gt;&lt;TD&gt;-0.0283&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-Jan-05&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;-0.01264&lt;/TD&gt;&lt;TD&gt;-0.0153&lt;/TD&gt;&lt;TD&gt;0.0195&lt;/TD&gt;&lt;TD&gt;-0.0276&lt;/TD&gt;&lt;TD&gt;0.0312&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data rf4  / view= rf4;
 array _X1 {60} _temporary_ ;
 array _X2 {60} _temporary_ ;
 array _X3 {60} _temporary_ ;
 array _X4 {60} _temporary_ ;
 array _Y {60} _temporary_ ;
 set rf3m;
 by  FUND_ID;
 retain N 0;
 N = ifn(first.FUND_ID,1,N+1);
 I=mod(N-1,60)+1;
 _X1{I}=MKTRF;
 _X2{I}=SMB;
 _X3{I}=HML;
 _X4{I}=UMD;
 _Y{I}=mretf;
 if N&amp;gt;=60 then do I= 1 to 60;
 MKTRF=_X1{I};
 SMB=_X2{I};
 HML=_X3{I};
 UMD=_X4{I};
 mretf=_Y{I};
 output;
 end;
run;

proc reg data=rf4 outest=resultsalpha noprint;
    by FUND_ID caldt;
    model mretf = MKTRF SMB HML UMD;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 10 Jul 2017 07:24:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/rolling-alpha/m-p/374391#M89634</guid>
      <dc:creator>odette</dc:creator>
      <dc:date>2017-07-10T07:24:09Z</dc:date>
    </item>
    <item>
      <title>Re: rolling alpha</title>
      <link>https://communities.sas.com/t5/SAS-Programming/rolling-alpha/m-p/374511#M89692</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since I don't really see a question, I can not give you an answer but only a general advice.&lt;/P&gt;
&lt;P&gt;When you want to figure out what is going on when your program is executed, the best&lt;/P&gt;
&lt;P&gt;is to work with a simplified example. For instance, you can use only one explanatory variable and&lt;/P&gt;
&lt;P&gt;a rolling window of 4 observations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input id y x;
cards;
1 12 5
1 23 8
1 10 2
1 15 7
1 31 16
1 17 9
1 22 12
;
run;

data prepare;
    array _X {4} _temporary_ ;
    array _Y {4} _temporary_ ;
    set have;
    by  id;
    retain N 0;
    N = ifn(first.id,1,N+1);

    I=mod(N-1,4)+1;

    _X{I}=x;
    _Y{I}=y;
    if N&amp;gt;=4 then do I= 1 to 4;
        x=_X{I};
        y=_Y{I};
        output;
    end;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The output dataset we obtain is :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.PREPARE" frame="box" rules="all" cellpadding="5" cellspacing="0"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="r header" scope="col"&gt;Obs&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;id&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;y&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;x&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;N&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;I&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;1&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;12&lt;/TD&gt;
&lt;TD class="r data"&gt;5&lt;/TD&gt;
&lt;TD class="r data"&gt;4&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;2&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;23&lt;/TD&gt;
&lt;TD class="r data"&gt;8&lt;/TD&gt;
&lt;TD class="r data"&gt;4&lt;/TD&gt;
&lt;TD class="r data"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;3&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;10&lt;/TD&gt;
&lt;TD class="r data"&gt;2&lt;/TD&gt;
&lt;TD class="r data"&gt;4&lt;/TD&gt;
&lt;TD class="r data"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;4&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;15&lt;/TD&gt;
&lt;TD class="r data"&gt;7&lt;/TD&gt;
&lt;TD class="r data"&gt;4&lt;/TD&gt;
&lt;TD class="r data"&gt;4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;5&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;31&lt;/TD&gt;
&lt;TD class="r data"&gt;16&lt;/TD&gt;
&lt;TD class="r data"&gt;5&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;6&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;23&lt;/TD&gt;
&lt;TD class="r data"&gt;8&lt;/TD&gt;
&lt;TD class="r data"&gt;5&lt;/TD&gt;
&lt;TD class="r data"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;7&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;10&lt;/TD&gt;
&lt;TD class="r data"&gt;2&lt;/TD&gt;
&lt;TD class="r data"&gt;5&lt;/TD&gt;
&lt;TD class="r data"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;8&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;15&lt;/TD&gt;
&lt;TD class="r data"&gt;7&lt;/TD&gt;
&lt;TD class="r data"&gt;5&lt;/TD&gt;
&lt;TD class="r data"&gt;4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;9&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;31&lt;/TD&gt;
&lt;TD class="r data"&gt;16&lt;/TD&gt;
&lt;TD class="r data"&gt;6&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;10&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;17&lt;/TD&gt;
&lt;TD class="r data"&gt;9&lt;/TD&gt;
&lt;TD class="r data"&gt;6&lt;/TD&gt;
&lt;TD class="r data"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;11&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;10&lt;/TD&gt;
&lt;TD class="r data"&gt;2&lt;/TD&gt;
&lt;TD class="r data"&gt;6&lt;/TD&gt;
&lt;TD class="r data"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;12&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;15&lt;/TD&gt;
&lt;TD class="r data"&gt;7&lt;/TD&gt;
&lt;TD class="r data"&gt;6&lt;/TD&gt;
&lt;TD class="r data"&gt;4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;13&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;31&lt;/TD&gt;
&lt;TD class="r data"&gt;16&lt;/TD&gt;
&lt;TD class="r data"&gt;7&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;14&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;17&lt;/TD&gt;
&lt;TD class="r data"&gt;9&lt;/TD&gt;
&lt;TD class="r data"&gt;7&lt;/TD&gt;
&lt;TD class="r data"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;15&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;22&lt;/TD&gt;
&lt;TD class="r data"&gt;12&lt;/TD&gt;
&lt;TD class="r data"&gt;7&lt;/TD&gt;
&lt;TD class="r data"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;16&lt;/TH&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;15&lt;/TD&gt;
&lt;TD class="r data"&gt;7&lt;/TD&gt;
&lt;TD class="r data"&gt;7&lt;/TD&gt;
&lt;TD class="r data"&gt;4&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you look at obervations 5 to 8, you see that correspond to observations 2 to 5 of the orginal dataset&lt;/P&gt;
&lt;P&gt;(though not in the same order, the 5th observation appearing first).&lt;/P&gt;
&lt;P&gt;Obs 9 to 12 correspond to obs 3 to 6 of the original dataset and so on.&lt;/P&gt;
&lt;P&gt;The program thus seems to do what you want, that is preparing the data for a rolling regression&lt;/P&gt;
&lt;P&gt;with proc reg.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The fact that you received no answer yet may indicate that your question is unclear.&lt;/P&gt;
&lt;P&gt;Please reformulate your question as I am sure that many contributors on this forum&lt;/P&gt;
&lt;P&gt;would be able to answer.&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jul 2017 14:11:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/rolling-alpha/m-p/374511#M89692</guid>
      <dc:creator>gamotte</dc:creator>
      <dc:date>2017-07-10T14:11:36Z</dc:date>
    </item>
    <item>
      <title>Re: rolling alpha</title>
      <link>https://communities.sas.com/t5/SAS-Programming/rolling-alpha/m-p/375929#M90178</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your reply.&lt;/P&gt;&lt;P&gt;Maybe you are right I should use a simplified example .&lt;/P&gt;&lt;P&gt;I have posted the sas code. My goal is to &amp;nbsp;extract the beta of x . My question is that if I have missing values for my X and I want to run the regression only if I have 4 previous non missing values of X how &amp;nbsp;can I do that ??&lt;/P&gt;&lt;P&gt;Since with these codes I obtain &amp;nbsp;betas for date_code 04 ,05,06,07 , but I want only the beta of date_code 07 since it have full 4 previous observation.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you in advance for you help&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;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have1;
input id $date_code y x;
cards;
1 01 12 .
1 02 23 .
1 03 10 .
1 04 15 7
1 05 31 16
1 06 17 9
1 07 22 12
;
run;

data prepare1;
    array _X {4} _temporary_ ;
    array _Y {4} _temporary_ ;
    set have1;
    by  id;
    retain N 0;
    N = ifn(first.id,1,N+1);

    I=mod(N-1,4)+1;

    _X{I}=x;
    _Y{I}=y;
    if N&amp;gt;=4 then do I= 1 to 4;
        x=_X{I};
        y=_Y{I};
        output;
    end;
run;

proc reg data=prepare1  outest=result noprint;
    by id date_code ;
    model y = x;
run;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 14 Jul 2017 06:34:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/rolling-alpha/m-p/375929#M90178</guid>
      <dc:creator>odette</dc:creator>
      <dc:date>2017-07-14T06:34:38Z</dc:date>
    </item>
    <item>
      <title>Re: rolling alpha</title>
      <link>https://communities.sas.com/t5/SAS-Programming/rolling-alpha/m-p/376433#M90361</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have1;
input id $date_code y x;
cards;
1 01 12 .
1 02 23 .
1 03 10 .
1 04 15 7
1 05 31 16
1 06 17 9
1 07 22 12
1 08 12 21
1 09 23 .
1 10 15 7
1 11 31 16
1 12 17 9
1 13 22 12
1 14 12 21
1 15 12 5
1 16 23 .
1 17 8 2
1 18 12 14
1 19 10 5
1 20 16 .
;
run;

/* 1/ We count the number of consecutive complete observations */
data have2 (where=(x ne .));
	set have1;
	by id;
	retain sample size;

	if first.id then sample=0;

	x1=lag(x);

	/* new sample if current obs is OK while previous is not */
	if x ne . and x1=. then do;
		sample=sample+1;
		size=0;
	end;

	/* We increase the size for each complete observation */
	if x ne . then size=size+1;
run;

/* 2/ We keep only samples with size greater or equal 4 */
proc sql noprint;
	CREATE TABLE have3 AS
	SELECT * FROM have2
	GROUP BY ID, sample
	HAVING max(size) ge 4
	ORDER BY ID, sample, date_code
	;
quit;
 
/* 3/ We prepare the data for rolling regressions */
data prepare1;
    array _X {4} _temporary_ ;
    array _Y {4} _temporary_ ;
    set have3;
    by  id sample;
    retain N 0;
    N = ifn(first.sample,1,N+1);

    I=mod(N-1,4)+1;

    _X{I}=x;
    _Y{I}=y;
    if N&amp;gt;=4 then do I= 1 to 4;
        x=_X{I};
        y=_Y{I};
        output;
    end;
run;

/* 4/ We run the regressions */
proc reg data=prepare1  outest=result noprint;
    by id date_code ;
    model y = x;
run;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 17 Jul 2017 08:50:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/rolling-alpha/m-p/376433#M90361</guid>
      <dc:creator>gamotte</dc:creator>
      <dc:date>2017-07-17T08:50:53Z</dc:date>
    </item>
  </channel>
</rss>

