为什么R PerformanceAnalytics中的TrackingError函数与使用其已发布公式的手动计算不一致



使用;管理者";数据集中,跟踪错误的计算似乎与手动计算不一致。

library(PerformanceAnalytics)
#using the managers data set in PerformanceAnalytics
sqrt(sum((managers[,1]-managers[,8])^2)/((length(managers[,1])-1)*sqrt(12)))
TrackingError(managers[,1],managers[,8])

我的结果如下:

> sqrt(sum((managers[,1]-managers[,8])^2)/((length(managers[,1])-1)*sqrt(12)))
[1] 0.01760221
> TrackingError(managers[,1],managers[,8])
[1] 0.1131667

有趣的是,包装公式与rdrr.io.中的公式不匹配

根据rdrr.io,公式为:

TrackingError=sqrt(总和(Ra-Rb(^2/(长度(R(-1(*sqrt(标度(

包公式看起来是:

sqrt((总和(Ra-Rb(^2(/长度(Ra(*sqrt(比例((

我已经尝试在R和Excel中手动执行此操作,但我无法回到TrackingError公式是如何达到11.3%的

这似乎主要通过执行来解决

sqrt(sum((managers[,1]-managers[,8](^2(/((length(managers[,1](-1((*sqrt(12(

然而,这仍然不完全匹配。

> sqrt(sum((managers[,1]-managers[,8])^2)/((length(managers[,1])-1)))*sqrt(12)
[1] 0.1134888
> 
> TrackingError(managers[,1], managers[,8])
[1] 0.1131667

经过进一步审查,当您将跟踪错误视为活动回报的标准差时,就会解决这个问题,正如维基百科定义中所解释的那样https://en.wikipedia.org/wiki/Tracking_error.

> sqrt(var(managers[,1]-managers[,8]))*sqrt(12)
HAM1
HAM1 0.1131667
> TrackingError(managers[,1], managers[,8])
[1] 0.1131667

最新更新