5

考虑我们有每天的股票价格时间序列(比如说富时指数)。我们要计算每日、每月和每年的回报。

为了计算每月和每年的回报,我们必须将时间序列数据聚合成月和年。在“zoo”包中,我们有聚合函数,它可以帮助我们将数据聚合到每月的频率。在使用 as.yearmon 类的代码行下方:

# Computing simple returns
FTSERet = diff(FTSE)/lag(FTSE,k=-1)

# Monthly simple returns
MonRet <- aggregate(FTSERet+1, as.yearmon, prod)-1

# Quarterly simple returns
QuartRet <- aggregate(FTSERet+1, as.yearqtr, prod)-1

我还没有找到与 as.yearmon 用于月度数据或 as.yearqtr 用于季度数据以汇总到年度数据的等效类。你对那些东西有什么暗示吗?

4

3 回答 3

4

"yearmon"并且"yearqtr"类将日期表示为年份 + 分数,因此:

as.year <- function(x) as.integer(as.yearmon(x))

还要注意这个结构:diff(x, arithmetic = FALSE) - 1

于 2012-12-21T14:43:42.027 回答
0

在此处查看时间序列包,并在文档中的某处查找“季节性”选项。我猜对于季度数据,您正在查看季节性为 4 的时间序列,如果您查看月度数据 - 您正在查看季节性为 12 的时间序列。

于 2012-12-21T14:17:21.823 回答
0

您可能想查看allReturnsquantmod 包中的函数。

library(quantmod)
getSymbols("^FTSE")
allRet <- allReturns(FTSE)

要使用 计算年度回报aggregate.zoo,只需从指数中提取年份。

YearRet <- aggregate(FTSERet+1, as.integer(format(index(FTSERet),"%Y")), prod)-1
于 2012-12-21T14:44:49.987 回答