R:累积回报,正确的方法是什么?

时间:2015-11-18 16:03:55

标签: r

MyVector<-c(0.5, 0.3, -0.2)
Result1<-Return.cumulative(MyVector)
Result2<-exp(cumsum(MyVector))

我想基本上绘制Result2,并在摘要中显示Result1的值。但据我所知,Result2 * MyVector[1]的最后一个条目应该与Result1的值相同,不是吗?因为它是累积回报......或者至少这是我想要的。我的错误在哪里?

我想基本绘制投资回报并在表格中显示总回报。我总是将投资工具索引为1,所以我认为情节的最后一个数据点应该与表中的总回报完全相同...

修改

Return.cumulative:

function (R, geometric = TRUE) 
{
  if (is.vector(R)) {
    R = na.omit(R)
    if (!geometric) 
      return(sum(R))
    else {
      return(prod(1 + R) - 1)
    }
  }
  else {
    R = checkData(R, method = "matrix")
    result = apply(R, 2, Return.cumulative, geometric = geometric)
    dim(result) = c(1, NCOL(R))
    colnames(result) = colnames(R)
    rownames(result) = "Cumulative Return"
    return(result)
  }
}

1 个答案:

答案 0 :(得分:3)

此:

if($result = $db->query("SELECT name, address FROM town")) {
    if($count = $result->num_rows) {

        while($row = $result->fetch_object()) {
            echo $row->name, ' ', $row->address, '<br />';
        }

        $result->free();
    }
}

给出了相同的答案:

prod(1+MyVector) - 1
## [1] 0.56

请将所有代码发布到SO可重现且独立。这包括所有必要的library(PerformanceAnalytics) Return.cumulative(MyVector) ## [1] 0.56 州议员。从您正在使用的软件包中复制和发布源代码并不是必需的。