<div dir="ltr">Peter,<div><br></div><div>I think you bring up a really interesting point about the properties or behavior of equal risk contribution portfolios. In a different email thread on this list (I think the subject line was "Portfolio Vignette") Brian mentioned that a portfolio with a risk budget objective will likely place the portfolio on the interior of the space, depending on the objectives. I believe this is just an example where that is the case. I'm just piggybacking off of what Brian said and haven't spent much time thinking about this - it would be an interesting research project and this is a nice example.</div>
<div><br></div><div style>The chart.EfficientFrontier function traces the edge of the feasible portfolios in risk-return space. Where "feasible" means that the weights satisfy the constraints - so the points along the efficient frontier are not necessarily equal risk contribution portfolios. It might also be interesting looking at the neighbor portfolios because the neighbor portfolios will be near equal risk contribution. You should be able to see how close to equal contribution the neighbor portfolios are with the chart.RiskBudget function. Comparing the optimal portfolio to the space of neighbor portfolios might give more detail. </div>
<div style><br></div><div style>Another thing to note is that the neighbor portfolios may not be the portfolios closest to equal risk contribution. The neighbor portfolios, as extracted by specifying neighbors=N, are the N nearest portfolios based on the "out" column. There could be many equal risk contribution portfolios (which is why you specify a sub-objective) and you could extract the nearest equal risk contribution portfolios to plot as neighbors.</div>
<div style><br></div><div style>Thanks for the kind words! I'm grateful for the opportunity to contribute to the package and glad that you are happy with what I have done.</div><div style><br></div><div style>Thanks,</div>
<div style>Ross</div><div style><br></div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Oct 1, 2013 at 5:51 PM, Peter Carl <span dir="ltr"><<a href="mailto:peter@braverock.com" target="_blank">peter@braverock.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">Ross,<br>
<br>
Thanks very much for taking the time to look into that - I really<br>
appreciate it.<br>
<br>
I hope you don't mind another question, this related to the attached<br>
graph.  I note that the efficient frontier is identifying a higher-return<br>
lower-risk portfolio than the identified optimal, if I'm interpreting it<br>
correctly.<br>
<br>
Generated with:<br>
> chart.EfficientFrontier(EqmETL.RND)<br>
<br>
Is there something I'm missing?<br>
<br>
Btw, I think it's ok with the Google overlords to tell you that you had a<br>
great summer, and that I really appreciate what you've done.  I'm looking<br>
forward to your continued contribution!<br>
<div><div><br>
pcc<br>
--<br>
Peter Carl<br>
<a href="http://www.braverock.com/peter" target="_blank">http://www.braverock.com/peter</a><br>
<br>
> Peter,<br>
><br>
> I suspected this might be the case and did confirm it for the results in<br>
> the mean-StdDev space. The plot is using the objective measures from the<br>
> extractStats output of the EqmETL.RND object and these are calculated with<br>
> clean="boudt" whereas the buoys.portfmeas as well as MinSD.ROI are<br>
> calculated with clean="none".<br>
><br>
> From the graph, it looks like the minimum StdDev for the random portfolios<br>
> is 0.0095. This is close to the result I get with the following test:<br>
><br>
>> R.clean <- Return.clean(R=R, method="boudt")<br>
>><br>
>> tmpSD <- vector("numeric", length=nrow(rp))<br>
>> tmpSDcleanR <- vector("numeric", length=nrow(rp))<br>
>> for(i in 1:nrow(rp)){<br>
> +   tmpSD[i] <- StdDev(R=R, weights=rp[i,])<br>
> +   tmpSDcleanR[i] <- StdDev(R=R.clean, weights=rp[i,])<br>
> + }<br>
>><br>
>> min(tmpSD)<br>
> [1] 0.01020511<br>
>> min(tmpSDcleanR)<br>
> [1] 0.009514874<br>
>> as.numeric(MinSD.ROI$objective_measures)<br>
> [1] 0.01009001<br>
><br>
> Ross<br>
><br>
> On Sat, Sep 28, 2013 at 1:04 PM, Peter Carl <<a href="mailto:peter@braverock.com" target="_blank">peter@braverock.com</a>> wrote:<br>
><br>
>> I think I might have found the issue.  In the RP solvers, I was using<br>
>> clean="boudt", but wasn't passing in anything into the ROI solvers.<br>
>> That<br>
>> would be a big difference...<br>
>><br>
>> I'll confirm that is the issue later, and come back if it wasn't.<br>
>><br>
>> Thanks for listening.<br>
>><br>
>> pcc<br>
>> --<br>
>> Peter Carl<br>
>> <a href="http://www.braverock.com/peter" target="_blank">http://www.braverock.com/peter</a><br>
>><br>
>> > Whoops, I hit "send" too early.<br>
>> ><br>
>> > That's the gist of the message, though.  I'll check in all my recent<br>
>> > changes and the RP result so that you can reproduce these results.<br>
>> Let<br>
>> me<br>
>> > know if you have any other ideas or see issues in how I've laid out<br>
>> the<br>
>> > constraint objects.<br>
>> ><br>
>> > Thanks in advance,<br>
>> ><br>
>> > pcc<br>
>> > --<br>
>> > Peter Carl<br>
>> > <a href="http://www.braverock.com/peter" target="_blank">http://www.braverock.com/peter</a><br>
>> ><br>
>> > I hit a bump in the road a couple of days ago when I looked at the two<br>
>> > attached charts.  One shows the mean-ETL of a set of different<br>
>> objectives<br>
>> > against a cloud of random portfolios.  The objectives that can be are<br>
>> > calculated through ROI; I used RP for most of the others and DE for<br>
>> the<br>
>> > risk budget objective.<br>
>> ><br>
>> > Note that the cloud of RP portfolios shows portfolios with lower mETL<br>
>> than<br>
>> > the indicated MinmETL portfolio.  Well, maybe the mETL space isn't<br>
>> convex?<br>
>> >  Turns out, you can see the same issue in the attached mean-SD space<br>
>> with<br>
>> > the minSD portfolio.<br>
>> ><br>
>> > I went back and re-calculated the RP portfolios to eliminate the<br>
>> wiggle<br>
>> we<br>
>> > usually give the boundaries (a two percent leeway to speed up<br>
>> portfolio<br>
>> > generation) reasoning that those might be the issue.  I generated 10K<br>
>> > RP's, of which about 3K summed exactly to 1.0 (which is plenty).  So I<br>
>> > know that it isn't that those portfolios are out of bounds relative to<br>
>> the<br>
>> > constraints objects.<br>
>> ><br>
>> > I've tried to make sure that every objective is using the same<br>
>> > constraints, and I've double-checked my post processing to make sure I<br>
>> > wasn't damaging the output from the optimization runs to get things<br>
>> into<br>
>> > charts.<br>
>> ><br>
>> > This suggests to me that it's a deeper problem, although there still<br>
>> just<br>
>> > might be an issue in my code somewhere.<br>
>> > --<br>
>> > Peter Carl<br>
>> > <a href="http://www.braverock.com/peter" target="_blank">http://www.braverock.com/peter</a><br>
>> ><br>
>> > _______________________________________________<br>
>> > GSoC-PortA mailing list<br>
>> > <a href="mailto:GSoC-PortA@lists.r-forge.r-project.org" target="_blank">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>
>> ><br>
>><br>
>><br>
>> _______________________________________________<br>
>> GSoC-PortA mailing list<br>
>> <a href="mailto:GSoC-PortA@lists.r-forge.r-project.org" target="_blank">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>
>><br>
> _______________________________________________<br>
> GSoC-PortA mailing list<br>
> <a href="mailto:GSoC-PortA@lists.r-forge.r-project.org" target="_blank">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>
></div></div><br>_______________________________________________<br>
GSoC-PortA mailing list<br>
<a href="mailto:GSoC-PortA@lists.r-forge.r-project.org" target="_blank">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>
<br></blockquote></div><br></div></div>