5

株価の毎日の時系列があるとします (FTSE インデックスとしましょう)。日次、月次、年次のリターンを計算したいと考えています。

月次および年次のリターンを計算するには、時系列データを月と年に集計する必要があります。パッケージ「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

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 に答える
0

ここで時系列パッケージを確認し、ドキュメントのどこかで「季節性」オプションを探してください。四半期データの場合、季節性が 4 の時系列で見ていると思いますが、月次データを見ると、季節性が 12 の時系列で見ていると思います。

于 2012-12-21T14:17:21.823 に答える