<?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 regression in Advanced Programming</title>
    <link>https://communities.sas.com/t5/Advanced-Programming/rolling-regression/m-p/886392#M232</link>
    <description>&lt;P&gt;Yes, I have tried that, and I have a code that runs but it does the regression for every date, which is slow and unnecessary as I only want the calculations done at each month end. That is the part I am struggling with.&lt;/P&gt;</description>
    <pubDate>Wed, 26 Jul 2023 11:42:49 GMT</pubDate>
    <dc:creator>costasRO</dc:creator>
    <dc:date>2023-07-26T11:42:49Z</dc:date>
    <item>
      <title>rolling regression</title>
      <link>https://communities.sas.com/t5/Advanced-Programming/rolling-regression/m-p/886360#M230</link>
      <description>&lt;P&gt;Hello everyone;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a file with daily stock returns that looks like this&lt;/P&gt;
&lt;P&gt;Company&amp;nbsp; &amp;nbsp;Date&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var1&amp;nbsp; &amp;nbsp;var2 var3&lt;/P&gt;
&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/1/2000&lt;/P&gt;
&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/2/2000&lt;/P&gt;
&lt;P&gt;.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.&lt;/P&gt;
&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;31/12/2010&lt;/P&gt;
&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/1/2007&lt;/P&gt;
&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/2/2007&lt;/P&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 31/12/2020&lt;/P&gt;
&lt;P&gt;etc&lt;/P&gt;
&lt;P&gt;Not all companies have the same date range&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want to run a rolling regression for each company using var1, var2 and var3, using past data from a window of length n, where n is one month, 2 months up to 24, months. So n should be part of a macro that I can control.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The regression should first regress var1=a+ var2 + var3 + u, save the residuals, and then do some further calculation of the residuals to aggregate them and calculate a new variable var4.&amp;nbsp; So there are some calculations to be done for each company and each time period that is selected based on n.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would like the calculations to start at the end of each month for each company. For example, on the 31/1/2000 for company 1 the macro should run the regression for this company and do the following calculations using past data. if n=1 month then the calculations&amp;nbsp; should use data from 1/1/2000 until 31/1/2000, etc. If n=2 months, for the&amp;nbsp;&amp;nbsp;31/1/2000 for company 1, the macro should do the calculations&amp;nbsp; for this company using&amp;nbsp; data from 1/12/1999 until 31/1/2000, etc.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The resulting file should look like&lt;/P&gt;
&lt;P&gt;Company id&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; date&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; v ar4_n1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var4_n2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var4_n3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;etc (until var4_n24)&lt;/P&gt;
&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 31/1/2000&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.&lt;/P&gt;
&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 31/2/2000&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;x&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;y&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .&lt;/P&gt;
&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;31/12/2010&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; y&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; z&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 31/1/2007&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;x&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .&amp;nbsp;&lt;/P&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 31/12/2020&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;x&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;y&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;z&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;var4_n are the variables that will be constructed during the calculation for each rolling window. they get populated sequentially deepening on data availability., for example, during the first month with data for company 1, only var4_n1 has a number and all other var4_n do not, etc.&lt;/P&gt;
&lt;P&gt;So basically the macro should use the initial file to select the data that satisfy some date conditions based on n and using the last day of each month, run the calculations, save the resulting file, loop over n and at the end append all the resulting datasets.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you all very much.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Costas&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Jul 2023 09:12:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Advanced-Programming/rolling-regression/m-p/886360#M230</guid>
      <dc:creator>costasRO</dc:creator>
      <dc:date>2023-07-26T09:12:50Z</dc:date>
    </item>
    <item>
      <title>Re: rolling regression</title>
      <link>https://communities.sas.com/t5/Advanced-Programming/rolling-regression/m-p/886368#M231</link>
      <description>&lt;P&gt;A search using your favorite Internet search engine should turn up many answers, some using macros, some not using macros.&lt;/P&gt;</description>
      <pubDate>Wed, 26 Jul 2023 10:00:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Advanced-Programming/rolling-regression/m-p/886368#M231</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2023-07-26T10:00:17Z</dc:date>
    </item>
    <item>
      <title>Re: rolling regression</title>
      <link>https://communities.sas.com/t5/Advanced-Programming/rolling-regression/m-p/886392#M232</link>
      <description>&lt;P&gt;Yes, I have tried that, and I have a code that runs but it does the regression for every date, which is slow and unnecessary as I only want the calculations done at each month end. That is the part I am struggling with.&lt;/P&gt;</description>
      <pubDate>Wed, 26 Jul 2023 11:42:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Advanced-Programming/rolling-regression/m-p/886392#M232</guid>
      <dc:creator>costasRO</dc:creator>
      <dc:date>2023-07-26T11:42:49Z</dc:date>
    </item>
    <item>
      <title>Re: rolling regression</title>
      <link>https://communities.sas.com/t5/Advanced-Programming/rolling-regression/m-p/886399#M233</link>
      <description>&lt;P&gt;Change the code so the Regression is only calculated on the last day of the month. It should be a relatively simply %IF statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Jul 2023 12:11:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Advanced-Programming/rolling-regression/m-p/886399#M233</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2023-07-26T12:11:27Z</dc:date>
    </item>
  </channel>
</rss>

