Я пытаюсь рассчитать квартальный IRR для набора данных панели Private Equity Funds с R. Поскольку я новичок в R и уже несколько дней пробовал себя безрезультатно, надеюсь, вы можете помочь мне.
По следующей ссылке вы можете увидеть пример моих данных.
У меня есть несколько сотен средств, и все они отсортированы по дате транзакции.
Таким образом, данные имеют форму панели данных. Сложность заключается в том, чтобы рассчитать квартальную доходность (IRR) для каждого фонда прямых инвестиций.
Это будет сделано в Excel с формулой XIRR. Обычно я делаю это, используя следующий код для преобразования формулы XIRR в Excel в R.
xirr <- function(cashflow, dates){
if (!length(cashflow)) return(NA)
dates<-dates[!is.na(cashflow)]
cashflow<-cashflow[!is.na(cashflow)]
npv <- function(irr){
timeDiff <- diff(dates)
units(timeDiff) <- "days"
day <- cumsum(c(0, as.numeric(timeDiff)))
if (!is.na(sum(cashflow/(1 + irr/1000)^(day/365)))){
return(sum(cashflow/(1 + irr/1000)^(day/365)))
}else{
# prevent from getting stuck?
return(runif(1,1,100))
}
}
## try up to 1000% (irr = 10), but still allow extension for extreme cases
## bounded below by -1000 (irr = -1)
irr <- try(uniroot(npv, c(-999.99999, 10000), extendInt = "downX",maxiter=1000),
silent = TRUE)
if (inherits(irr, "try-error")) {
return(NA)
} else return(irr$root/1000)
}
Я должен включить для каждого квартала все транзакции с соответствующей датой. Взносы представляют собой отрицательные денежные потоки и распределения, а также бухгалтерский учет - это положительные денежные потоки. Однако учетная чистая стоимость предыдущего квартала также должна быть отрицательным денежным потоком для расчета квартальной доходности средств.
По сути, я думаю, что R просто нужно перейти от одного NAV учета к следующему NAV учета и включить все транзакции, а также даты в формулу XIRR.
Кто-нибудь знает, как это сделать?
Как видно из ссылки, у вас есть два фонда и их денежные потоки. Я хочу рассчитать квартальные доходы, которые находятся на правой стороне. Это делается в Excel с помощью формулы IRR. Поэтому учетную чистую стоимость в начале периода необходимо преобразовать в отрицательный денежный поток. Формула IRR будет рассчитывать доходность с учетом времени. Это должно быть сделано для каждого фонда и для каждого квартала