首页 > 解决方案 > 在 R 中计算夏普比率时的时间序列相关误差

问题描述

我正在尝试从 PredictiveAnalytics 包中计算数据集管理器的夏普比率。

尽管数据格式似乎是正确的,但它会导致错误。可能是什么问题?

'data.frame':   132 obs. of  11 variables:
 $ date       : Date, format: "1996-01-31" "1996-02-29" "1996-03-31" "1996-04-30" ...
 $ HAM1       : num  0.0074 0.0193 0.0155 -0.0091 0.0076 -0.0039 -0.0231 0.0395 0.0147 0.0288 ...
 $ HAM2       : num  NA NA NA NA NA ...
 $ HAM3       : num  0.0349 0.0351 0.0258 0.0449 0.0353 -0.0303 -0.0337 0.0461 0.0653 0.0395 ...
 $ HAM4       : num  0.0222 0.0195 -0.0098 0.0236 0.0028 -0.0019 -0.0446 0.0351 0.0757 -0.018 ...
 $ HAM5       : num  NA NA NA NA NA NA NA NA NA NA ...
 $ HAM6       : num  NA NA NA NA NA NA NA NA NA NA ...
 $ EDHEC LS EQ: num  NA NA NA NA NA NA NA NA NA NA ...
 $ SP500 TR   : num  0.034 0.0093 0.0096 0.0147 0.0258 0.0038 -0.0442 0.0211 0.0563 0.0276 ...
 $ US 10Y TR  : num  0.0038 -0.03532 -0.01057 -0.01739 -0.00543 ...
 $ US 3m TR   : num  0.00456 0.00398 0.00371 0.00428 0.00443 0.00412 0.00454 0.00451 0.0047 0.00428 ...

> SharpeRatio(managers1$HAM3,managers1$`US 3m TR`)
Error in checkData(R) : 
  The data cannot be converted into a time series.  If you are trying to pass in names from a data object with one column, you should use the form 'data[rows, columns, drop = FALSE]'.  Rownames should have standard date formats, such as '1985-03-15'. 
> SharpeRatio(managers1$`SP500 TR`,managers1$`US 3m TR`)
Error in checkData(R) : 
  The data cannot be converted into a time series.  If you are trying to pass in names from a data object with one column, you should use the form 'data[rows, columns, drop = FALSE]'.  Rownames should have standard date formats, such as '1985-03-15'. 

标签: rtime-seriesfinance

解决方案


你需要一个xts系列而不是一个data.frame. 尝试这样的事情:

managers2 = as.xts(managers1[,!colnames(managers1)%in%"date"],managers1$date)

SharpeRatio(managers2$HAM3,managers2$US.3m.TR)

SharpeRatio(managers2$SP500.TR,managers2$US.3m.TR)

# > SharpeRatio(managers2$HAM3,managers2$US.3m.TR)
# HAM3
# StdDev Sharpe (Rf=0.3%, p=95%): 0.2525301
# VaR Sharpe (Rf=0.3%, p=95%):    0.2504936
# ES Sharpe (Rf=0.3%, p=95%):     0.2093343
# > SharpeRatio(managers2$SP500.TR,managers2$US.3m.TR)
# SP500.TR
# StdDev Sharpe (Rf=0.3%, p=95%): 0.12558293
# VaR Sharpe (Rf=0.3%, p=95%):    0.07957460
# ES Sharpe (Rf=0.3%, p=95%):     0.05760917

推荐阅读