<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, May 19, 2014 at 8:56 AM, Joshua Ulrich <span dir="ltr"><<a href="mailto:josh.m.ulrich@gmail.com" target="_blank">josh.m.ulrich@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="">On Mon, May 19, 2014 at 10:20 AM, Ross Bennett <<a href="mailto:rossbennett34@gmail.com">rossbennett34@gmail.com</a>> wrote:<br>

> Mentors (and others on the list),<br>
><br>
</div><snip><br>
<div class=""><br>
> Factor Models to Estimate Moments<br>
><br>
> I reached out to Kris Boudt a few weeks ago and he shared some of the code<br>
> he used for his paper. I put together a small package as a prototype. One<br>
> thing to note is that Kris sent me C++ code (using Rcpp) for computing the<br>
> cokurtosis error matrix. I would prefer not to rewrite the code in R, but<br>
> this does mean introducing a dependency on Rcpp.  Along these same lines, we<br>
> could also write functions to compute the 3rd and 4th moments in C++. The<br>
> Armadillo library has a kron() function to compute the kronecker product<br>
> making the higher moments an easy computation using RcppArmadillo. We could<br>
> do this as a prototype in PortfolioAnalytics and eventually move to<br>
> PerformanceAnalytics so <a href="http://M3.MM" target="_blank">M3.MM</a> and <a href="http://M4.MM" target="_blank">M4.MM</a> are compiled code. Thoughts?<br>
><br>
</div>I did the initial coskew/cokurt port from R to Rcpp.  The code I wrote<br>
looks similar to what's in the residualcokurtosis*F.cpp files. They're<br>
not complicated functions.  If adding a dependency on Rcpp is a big<br>
deal, the code would be easy to re-write using R's regular C API.  You<br>
don't want to write these in R.  I don't remember what the speed gains<br>
were, but they were very large.<br></blockquote><div><br></div><div>I used the residualcokurtosis*F.cpp files that Kris sent me without making any changes so these are the exact functions you wrote.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<br>
I have profiled and improved R versions of <a href="http://M3.MM" target="_blank">M3.MM</a> and <a href="http://M4.MM" target="_blank">M4.MM</a>. I'm not<br>
sure how they compare to the new Rcpp versions though.<br></blockquote><div><br></div><div>You can install the moment estimation package with </div><div>devtools::install_bitbucket("MomentEstimation", "rossbennett34")</div>
<div><br></div><div>Here is a link to the script I have in the prototype package to test the Rcpp versions of <a href="http://M3.MM">M3.MM</a> and <a href="http://M4.MM">M4.MM</a> with PerformanceAnalytics. </div><div><a href="https://bitbucket.org/rossbennett34/momentestimation/src/e4ecc303a15e2b4175aab38b6e416e03f168893a/sandbox/momentBench.R?at=master">https://bitbucket.org/rossbennett34/momentestimation/src/e4ecc303a15e2b4175aab38b6e416e03f168893a/sandbox/momentBench.R?at=master</a><br>
</div><div>It would be interesting to see the performance comparison of your improved R versions.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div class=""><br>
> Here is the source code of the prototype package for moment estimates.<br>
><br>
> <a href="https://bitbucket.org/rossbennett34/momentestimation/src" target="_blank">https://bitbucket.org/rossbennett34/momentestimation/src</a><br>
><br>
><br>
> Best,<br>
><br>
> Ross<br>
><br>
<br>
</div>Best,<br>
--<br>
Joshua Ulrich  |  <a href="http://about.me/joshuaulrich" target="_blank">about.me/joshuaulrich</a><br>
FOSS Trading  |  <a href="http://www.fosstrading.com" target="_blank">www.fosstrading.com</a><br>
_______________________________________________<br>
GSoC-PortA mailing list<br>
<a href="mailto:GSoC-PortA@lists.r-forge.r-project.org">GSoC-PortA@lists.r-forge.r-project.org</a><br>
<a href="http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta" target="_blank">http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta</a><br>
</blockquote></div><br></div></div>