使用;管理者";数据集中,跟踪错误的计算似乎与手动计算不一致。
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