Bookmark and Share

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]

Re: st: Internal Rate of Return Calculation


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/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index