为什么R Performance分析中的TrackingError函数与使用其已发布公式的手动计算不一致
使用PerformanceAnalytics中的“管理者”数据集,跟踪误差的计算似乎与手动计算不一致为什么R Performance分析中的TrackingError函数与使用其已发布公式的手动计算不一致,r,performanceanalytics,R,Performanceanalytics,使用PerformanceAnalytics中的“管理者”数据集,跟踪误差的计算似乎与手动计算不一致 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[,
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,公式为:
跟踪误差=sqrt(总和(Ra-Rb)^2/(长度(R)-1))*sqrt(刻度)
包公式看起来是:
平方米((总和(平方米)^2)/长度(平方米)*平方米(比例))
我曾尝试在R和Excel中手动执行此操作,但我无法回到TrackingError公式如何达到11.3%这似乎主要是通过执行以下操作来解决的
sqrt(总和((经理[,1]-经理[,8])^2)/(长度(经理[,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
进一步审查后,如果您认为跟踪错误是维基百科定义中解释的活跃回报的标准偏差,则可以解决此问题
> sqrt(var(managers[,1]-managers[,8]))*sqrt(12)
HAM1
HAM1 0.1131667
> TrackingError(managers[,1], managers[,8])
[1] 0.1131667