2012-12-21 14 views
5

Betrachten wir tägliche Zeitreihen der Aktienkurse (sagen wir mal den FTSE Index). Wir wollen tägliche, monatliche und jährliche Renditen berechnen.Zeitreihe zu Jahresdaten aggregieren

Um monatliche und jährliche Renditen zu berechnen, müssen Zeitreihendaten in Monaten und Jahren aggregiert werden. Im Paket "Zoo" haben wir die aggregierte Funktion, die uns helfen kann, Daten zu einer monatlichen Häufigkeit zu aggregieren. Unter den Codezeilen der as.yearmon-Klasse:

# 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 

Ich habe nicht eine gleichwertige Klasse als as.yearmon für monatliche Daten oder as.yearqtr für vierteljährliche Daten für die Aggregation zu Jahr Daten gefunden. Hast du einen Hinweis auf dieses Zeug?

Antwort

4

"yearmon" und "yearqtr" Klassen repräsentieren Datumsangaben als Jahr + Bruch so:

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

beachten Sie auch dieses Konstrukt: diff(x, arithmetic = FALSE) - 1

0

Schauen Sie sich das Zeitreihenpaket here an und suchen Sie irgendwo in der Dokumentation nach 'Saisonalität'. Ich denke für vierteljährliche Daten suchen Sie in Zeitreihen mit Saisonalität von 4, wenn Sie in monatlichen Daten suchen - Sie suchen in Zeitreihen mit Saisonalität von 12.

0

vielleicht möchten Sie an der allReturns Funktion im quantmod Paket suchen.

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

Um jährliche Rendite zu berechnen aggregate.zoo verwenden, extrahiert nur das Jahr, aus dem Index.

YearRet <- aggregate(FTSERet+1, as.integer(format(index(FTSERet),"%Y")), prod)-1 
+0

Die Funktion periodReturn benötigt "Objekt der Staatspreise oder ein OHLC-Objekt", wie ein Zoo-Objekt in die gewünschte Objektklasse konvertiert werden soll? –

+0

@LorenzoRigamonti: Sie können 'allReturns (as.xts (zoo_object))' verwenden. –