【问题标题】:calculate Value at Risk in a data frame计算数据框中的风险价值
【发布时间】:2013-11-09 10:35:01
【问题描述】:

我的数据集有 140 个月的 1000 次对冲基金回报,我正在尝试使用 PerformanceAnalytics 包中的命令 VaR 计算风险价值 (VaR)。但是,我在使用此功能时提出了许多问题。我创建了一个示例数据框来显示我的问题。

df=data.frame(matrix(rnorm(24),nrow=8))
df$X1<-c('2007-01','2007-02','2007-03','2007-04','2007-05','2007-06','2007-07','2007-08')
df[2,2]<-NA
df[2,3]<-NA
df[1,3]<-NA
df

我得到了一个数据框:

           X1         X2          X3
    1 2007-01 -1.4420195          NA
    2 2007-02         NA          NA
    3 2007-03 -0.4503824 -0.78506597
    4 2007-04  1.4083746  0.02095307
    5 2007-05  0.9636549  0.19584430
    6 2007-06  1.1935281 -0.14175623
    7 2007-07 -0.3986336  1.58128683
    8 2007-08  0.8211377 -1.13347168

然后我跑

apply(df,2,FUN=VaR, na.rm=TRUE)

并收到一条警告消息:

数据无法转换为时间序列。如果您尝试从具有一列的数据对象中传递名称,则应使用“data[rows, columns, drop = FALSE]”形式。行名应具有标准日期格式,例如“1985-03-15”。

我尝试使用zoo() 将我的数据框转换为时间序列的组合,但没有帮助。有人可以帮忙弄清楚我现在应该怎么做吗?

【问题讨论】:

  • @LittleBobbyTables:你为什么一直回复我的标签建议?我确实相信它可以更容易地访问某些问题。对于出现 风险价值 的某些帖子,标签 [风险管理] 或 [财务] 有什么问题?
  • @B--rian - 它们是元标记,如下所述:stackoverflow.blog/2010/08/07/the-death-of-meta-tagsIf the tag can’t work as the only tag on a question, it’s probably a meta-tag 该标签仅增强其他标签,但作为独立标签将脱离主题。此外,虽然这里不是这种情况,但您有将标签编辑到离题问题中的坏习惯(尽管您确实可以更容易地找到离题问题)。 [风险管理] 标签只剩下四个问题,因为它正在清理中。您可以建议使用 [value-at-risk] 标签,因为这是一个实际的功能
  • @LittleBobbyTables 明白,但如果你早点告诉我,我不会介意的。但你也说,在某种程度上,我的工作实际上有助于识别题外话。 :-)

标签: r time-series


【解决方案1】:

@user2893255,您应该在使用 apply 函数之前将您的数据框转换为 xts 对象:

df.xts <- as.xts(df[,2:3],order.by=as.Date(df$X1,"%Y-%m"))

然后

apply(df.xts,2,FUN=VaR, na.rm=TRUE)

在没有警告或错误消息的情况下为您提供结果。

【讨论】:

    【解决方案2】:

    尝试删除Date 列:

     apply(df[,-1L], 2, FUN=VaR, na.rm=TRUE)
    

    【讨论】:

    • 感谢您提供答案,但似乎无法通过删除日期列来解决问题。警告信息仍然存在。
    猜你喜欢
    • 2016-10-03
    • 2020-11-28
    • 2017-11-13
    • 2023-02-17
    • 1970-01-01
    • 2014-10-22
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多