<?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 compute returns if the panel data has continuous observations in Statistical Procedures</title>
    <link>https://communities.sas.com/t5/Statistical-Procedures/how-to-compute-returns-if-the-panel-data-has-continuous/m-p/86518#M4239</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanks a ton 1zmm . &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 26 Mar 2013 07:26:54 GMT</pubDate>
    <dc:creator>factorhedge</dc:creator>
    <dc:date>2013-03-26T07:26:54Z</dc:date>
    <item>
      <title>how to compute returns if the panel data has continuous observations</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/how-to-compute-returns-if-the-panel-data-has-continuous/m-p/86515#M4236</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi I have a panel data of daily share prices , my distribution looks like below . I have 1000 companies daily share price data from 1/1 to 12/31 of every month for each company . I need to compute daily log returns of the share prices but since the companies are continuous the 1st day of company B will take the last day of company A into return calculation. Could someone help me on the SAS code to compute daily returns . &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid rgb(0, 0, 0); width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;Company &lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;Company Code&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;Date&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;Daily share price&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;1/1/2000&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;A&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;1/2/2000&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;A&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;12/31/2000&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;B&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;1/1/2000&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;B&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;12/31/2000&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 23 Mar 2013 07:15:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/how-to-compute-returns-if-the-panel-data-has-continuous/m-p/86515#M4236</guid>
      <dc:creator>factorhedge</dc:creator>
      <dc:date>2013-03-23T07:15:47Z</dc:date>
    </item>
    <item>
      <title>Re: how to compute returns if the panel data has continuous observations</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/how-to-compute-returns-if-the-panel-data-has-continuous/m-p/86516#M4237</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sort your data by company and date.&amp;nbsp; Then use the SAS-created variables, FIRST.COMPANY and LAST.COMPANY, to define the range of observations that you want to calculate your statistics on daily log returns:&lt;/P&gt;&lt;P&gt;==================================================================================================&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sort data=old;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by company date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data new;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set old; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by company date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (first.company eq 1) then do;&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;lt;&amp;lt;code to calculate statistics for first date within a company&amp;gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((first.company eq 0) and&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; (last.company eq 0)) then do;&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;lt;&amp;lt; code to calculate statistics for the second through next-to-last dates within a company&amp;gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (last.company eq 1) then do;&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;lt;&amp;lt;code to calculate statistics for the last date within a company&amp;gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output new;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;=====================================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Within the DATA step, you may need to include a RETAIN statement to hold variable values across observations.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 23 Mar 2013 20:32:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/how-to-compute-returns-if-the-panel-data-has-continuous/m-p/86516#M4237</guid>
      <dc:creator>1zmm</dc:creator>
      <dc:date>2013-03-23T20:32:35Z</dc:date>
    </item>
    <item>
      <title>Re: how to compute returns if the panel data has continuous observations</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/how-to-compute-returns-if-the-panel-data-has-continuous/m-p/86517#M4238</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There is an alternative way to do this that doesn't involve using all this first., last. syntax. Using &lt;A href="http://support.sas.com/documentation/cdl/en/etsug/65545/HTML/default/viewer.htm#etsug_timedata_syntax02.htm"&gt;PROC TIMEDATA&lt;/A&gt;, you can directly reference the time series within BY groups.&amp;nbsp; I feel the syntax is much more intuitive.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is full sample in action.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;data greene;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; input firm year production cost @@;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;date = mdy(1,1,year);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;datalines;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;1 1955&amp;nbsp;&amp;nbsp; 5.36598&amp;nbsp;&amp;nbsp; 1.14867&amp;nbsp; 1 1960&amp;nbsp;&amp;nbsp; 6.03787&amp;nbsp;&amp;nbsp; 1.45185&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;1 1965&amp;nbsp;&amp;nbsp; 6.37673&amp;nbsp;&amp;nbsp; 1.52257&amp;nbsp; 1 1970&amp;nbsp;&amp;nbsp; 6.93245&amp;nbsp;&amp;nbsp; 1.76627&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;2 1955&amp;nbsp;&amp;nbsp; 6.54535&amp;nbsp;&amp;nbsp; 1.35041&amp;nbsp; 2 1960&amp;nbsp;&amp;nbsp; 6.69827&amp;nbsp;&amp;nbsp; 1.71109&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;2 1965&amp;nbsp;&amp;nbsp; 7.40245&amp;nbsp;&amp;nbsp; 2.09519&amp;nbsp; 2 1970&amp;nbsp;&amp;nbsp; 7.82644&amp;nbsp;&amp;nbsp; 2.39480&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;3 1955&amp;nbsp;&amp;nbsp; 8.07153&amp;nbsp;&amp;nbsp; 2.94628&amp;nbsp; 3 1960&amp;nbsp;&amp;nbsp; 8.47679&amp;nbsp;&amp;nbsp; 3.25967&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;3 1965&amp;nbsp;&amp;nbsp; 8.66923&amp;nbsp;&amp;nbsp; 3.47952&amp;nbsp; 3 1970&amp;nbsp;&amp;nbsp; 9.13508&amp;nbsp;&amp;nbsp; 3.71795&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;4 1955&amp;nbsp;&amp;nbsp; 8.64259&amp;nbsp;&amp;nbsp; 3.56187&amp;nbsp; 4 1960&amp;nbsp;&amp;nbsp; 8.93748&amp;nbsp;&amp;nbsp; 3.93400&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;4 1965&amp;nbsp;&amp;nbsp; 9.23073&amp;nbsp;&amp;nbsp; 4.11161&amp;nbsp; 4 1970&amp;nbsp;&amp;nbsp; 9.52530&amp;nbsp;&amp;nbsp; 4.35523&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;5 1955&amp;nbsp;&amp;nbsp; 8.69951&amp;nbsp;&amp;nbsp; 3.50116&amp;nbsp; 5 1960&amp;nbsp;&amp;nbsp; 9.01457&amp;nbsp;&amp;nbsp; 3.68998&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;5 1965&amp;nbsp;&amp;nbsp; 9.04594&amp;nbsp;&amp;nbsp; 3.76410&amp;nbsp; 5 1970&amp;nbsp;&amp;nbsp; 9.21074&amp;nbsp;&amp;nbsp; 4.05573&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;6 1955&amp;nbsp;&amp;nbsp; 9.37552&amp;nbsp;&amp;nbsp; 4.29114&amp;nbsp; 6 1960&amp;nbsp;&amp;nbsp; 9.65188&amp;nbsp;&amp;nbsp; 4.59356&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;6 1965&amp;nbsp; 10.21163&amp;nbsp;&amp;nbsp; 4.93361&amp;nbsp; 6 1970&amp;nbsp; 10.34039&amp;nbsp;&amp;nbsp; 5.25520&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;proc sort data=greene out=greene; by firm year; run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;proc timedata data=greene out=differenced;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;by firm;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;id date interval=year ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;var cost /dif=(5);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;var production /diff=5;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 18pt; font-family: Courier New;"&gt;Yours might look like;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Courier New; font-size: 8pt;"&gt;PROC TIMEDATA data=returns out=returns2;&lt;BR /&gt;by company; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Courier New; font-size: 8pt;"&gt;id Date interval=day;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Courier New; font-size: 8pt;"&gt;var price /diff=(1);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Courier New; font-size: 8pt;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Courier New; font-size: 8pt;"&gt;There are also ways to do this in &lt;A href="http://support.sas.com/documentation/cdl/en/etsug/65545/HTML/default/viewer.htm#etsug_panel_syntax10.htm"&gt;PROC PANEL &lt;/A&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Mar 2013 18:45:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/how-to-compute-returns-if-the-panel-data-has-continuous/m-p/86517#M4238</guid>
      <dc:creator>ets_kps</dc:creator>
      <dc:date>2013-03-25T18:45:36Z</dc:date>
    </item>
    <item>
      <title>Re: how to compute returns if the panel data has continuous observations</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/how-to-compute-returns-if-the-panel-data-has-continuous/m-p/86518#M4239</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanks a ton 1zmm . &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Mar 2013 07:26:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/how-to-compute-returns-if-the-panel-data-has-continuous/m-p/86518#M4239</guid>
      <dc:creator>factorhedge</dc:creator>
      <dc:date>2013-03-26T07:26:54Z</dc:date>
    </item>
    <item>
      <title>Re: how to compute returns if the panel data has continuous observations</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/how-to-compute-returns-if-the-panel-data-has-continuous/m-p/86519#M4240</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thank you very much &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Mar 2013 07:27:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/how-to-compute-returns-if-the-panel-data-has-continuous/m-p/86519#M4240</guid>
      <dc:creator>factorhedge</dc:creator>
      <dc:date>2013-03-26T07:27:17Z</dc:date>
    </item>
  </channel>
</rss>

