Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down on April 23, and its replacement, **statalist.org** is already up and running.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
Austin Nichols <austinnichols@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: Internal Rate of Return Calculation |

Date |
Tue, 14 Jun 2011 12:04:12 -0400 |

M. S. <shanghaiexpat09@googlemail.com>: With respect to IRR calculations, there are several plausible scenarios. One is that there is assumed to be a common internal rate of return, and many projects with initial price and values in subsequent periods provide data with which to estimate that common parameter. A second more plausible scenario is that the many projects with initial price and values in subsequent periods describe a distribution of project-specific IRRs where a hypothetical lower bound determines which were put into action and the estimation is aimed at that lower bound (e.g. only projects with ex ante IRR>10% are put into effect, but the observed IRRs range from -1 to 300 ex post, with a large bump in the density at 0.10 where the ex ante truncation kicks in). Instead, I assume from the context that in fact there are several projects each of which is supposed to have its own IRR and the initial price and values in subsequent periods provide data that uniquely determine an individual IRR, which is to be calculated; in that case the mm_root() functionality of moremata (on SSC) applies, as it does to finding the zeros of any nonlinear function. clear all input v0 v1 v2 v3 100 105 107 120 500 550 600 700 end g p=v0+v1/(1+_n/10)+v2/(1+_n/10)^2+v3/(1+_n/10)^3 g irr=. mata st_view(v=.,.,"irr v0 v1 v2 v3 p") function y(x,a,b,c,d,e) { return(e-a-b/(1+x)-c/(1+x)^2-d/(1+x)^3) } for (i=1;i<=rows(v);i++) { mm_root(x=.,&y(),0,1,1e-9,1000,v[i,2],v[i,3],v[i,4],v[i,5],v[i,6]) v[i,1]=x } end l, noo On Tue, Jun 14, 2011 at 11:35 AM, Austin Nichols <austinnichols@gmail.com> wrote: > Sounds like > http://www.stata.com/statalist/archive/2010-04/msg01113.html > > On Tue, Jun 14, 2011 at 2:07 AM, M. S. <shanghaiexpat09@googlemail.com> wrote: >> Dear Statalisters: >> >> I am searching for a more convenient way to calculate internal rates >> of return. I should mention, that I am not that experienced with Stata >> at this point. >> >> I have a function like this: >> >> Net Present Value = Value0+ value1/(1+irr)^1+ value2/ (1+irr)^2 . . . >> + value6/(1+irr)^5*(irr-growth) – price >> >> To find the discount rate irr that makes the function equal to zero I >> am currently using a forvalues loop which increases or decreases the >> discount factor given the current value of Net Present Value. This >> requires me to recalculate the result all the time and to use several >> if-conditions so that irr is changed by 1% at first and later by 0.1%, >> 0.01% and so on . . . >> >> Is there a more convenient way to find the discount factor? When I >> searched, I only found a function called “finirr” but I couldn´t find >> any documentation for it and my data do not describe as a time series. * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**Follow-Ups**:**RE: st: Internal Rate of Return Calculation***From:*"Jeff" <jbw-appraiser@earthlink.net>

**References**:**st: Internal Rate of Return Calculation***From:*"M. S." <shanghaiexpat09@googlemail.com>

**Re: st: Internal Rate of Return Calculation***From:*Austin Nichols <austinnichols@gmail.com>

- Prev by Date:
**R: st: error 506 (matrix not positive definite) when bootstrapping eigenvalue after one-way manova** - Next by Date:
**Re: st: relative importance of independent variables** - Previous by thread:
**Re: st: Internal Rate of Return Calculation** - Next by thread:
**RE: st: Internal Rate of Return Calculation** - Index(es):