1
我想计算一段时间内的返回色散。我使用的公式是等加权标准差(see here)的公式。我试图使用sd()
和apply()
函数,但它不起作用。R中的返回色散计算
公式:
r(i,t) are i=4 stock returns (so n=4) at time (t)
R(SMI,t)
是在时间指数(t)
NOVARTIS R NESTLE R ROCHE UBS GROUP
2005-07-18 1.11200510 -0.14716706 -0.4210533 -0.28876340
2005-07-19 0.23668650 -0.22115748 -0.3623192 0.67176884
2005-07-20 0.07877117 -0.44378771 4.0313698 -0.47844392
2005-07-21 -0.55270571 -0.37133351 -0.8754068 0.28604262
2005-07-22 -0.23781224 -0.07443246 0.2926546 0.00000000
2005-07-25 0.23781224 0.74184316 0.4082829 -0.09525666
这是我的索引
SMI
2005-07-18 -0.01077012
2005-07-19 0.53767147
2005-07-20 -0.02208674
2005-07-21 -0.10192245
2005-07-22 0.01653908
2005-07-25 0.03050783
现在我要计算的RD的每一次(t),所以我得到了所有RD的时间序列秒。
我应该看什么函数,循环或其他技术?我不想亲自去做,因为公式可能适用于更大的数据集。
谢谢。这似乎是正确的做法。你忘了取平方根,但这并不重要。现在我得到的问题是,在你的例子中运行良好,你使用“data.table”“data.frame”类。我的课是“time.series”。所以我将它与“as.data.frame”函数一起转换为数据类。但是,第一列(日期所在)未被识别,或者我无法更改名称。所以我不能指定即时消息“融化”功能,并且我收到错误消息<错误:在数据中找不到id变量:dATE>。 –
Sogomon
@Sogomon查看如何转换为data.table的编辑。 –