1

我在一段时间内有一系列回报,比如说每日回报:

> Z <-cbind(rnorm(10)*.01)
> Z
               [,1]
 [1,] -0.0095401182
 [2,]  0.0119037893
 [3,]  0.0001539471
 [4,] -0.0087361367
 [5,] -0.0127281577
 [6,] -0.0031177198
 [7,] -0.0041689219
 [8,] -0.0066547279
 [9,]  0.0156863175
[10,] -0.0126733237

接下来,我使用 cumprod() 创建一个投资指数,它表示基于回报序列 Z 的初始 1 美元投资的回报:

> ZZ <-cbind((cumprod(1+Z)*1))
> ZZ
           [,1]
 [1,] 0.9904599
 [2,] 1.0022501
 [3,] 1.0024044
 [4,] 0.9936473
 [5,] 0.9810000
 [6,] 0.9779415
 [7,] 0.9738645
 [8,] 0.9673837
 [9,] 0.9825584
[10,] 0.9701061 

如何编辑用于创建索引 ZZ 的代码,以使结果输出显示初始值 1.00?

4

2 回答 2

4

使第一个返回零:

cumprod(1+c(0,rnorm(10)*.01))

或将所有元素除以第一个值:

ZZ <- ZZ/ZZ[1,1]
于 2013-04-02T15:03:07.063 回答
1

最直接的方法是1在开头添加一个ZZ

ZZ <- cbind(c(1, cumprod(1+Z)))
于 2013-04-02T15:07:50.953 回答