Ich habe monatliche Frequenzdaten, die ich in tägliche Frequenzdaten aufteilen möchte. Also benutze ich den td
Befehl aus dem tempdisagg
Paket in R mit dem folgenden Code:
dat=ts(data[,2])
result=td(dat~1, conversion = "average", to = "day", method = "chow-lin-maxlog")
Dann erhalte ich folgende Fehlermeldung:
Error in td(dat ~ 1, conversion = "average", to = "day", method = "chow-lin-maxlog") : 'to' argument: unknown character string
Die Daten, für die ich verwende, dat
lauten wie folgt:
> dput(head(dat))
c(82.47703009, 84.63094431, 70.00659987, 78.81135651, 74.749746,82.95638213)
Obwohl diese Daten dat
monatlich vorliegen, spiegeln Start und Ende dies noch nicht wider. Tatsächlich ist das Startdatum 1/1997 und das Enddatum 9/2019.
Darf ich dat
bitte Hilfe bei der Aufteilung dieser monatlichen Daten in tägliche Frequenzdaten erhalten?
dput(head(x))
oderdata.frame(...)
) direkt an. Vielen Dank!dput(ts(head(1:50)))
, dann bekomme ichstructure(1:6, .Tsp = c(1, 6, 1), class = "ts")
. Ihr Bild deutet darauf hin, dassdat
es sich um eine Zeitreihe handelt, Ihrec(...)
jedoch nicht. Sind diese beidendat
gleich?tempdisagg.pdf
kann ich"daily"
nirgendwo etwas finden undto=
sage , dass es "hochfrequente Zielfrequenz als Zeichenfolge (" vierteljährlich "oder" monatlich ") oder als Skalar (z. B. 2, 4, 7, 12)" unterstützt . Wo wird vorgeschlagen, dassto="daily"
unterstützt wird? Kannst du es versuchento=1
? (Ich kann nicht wirklich viel darüber hinaus helfen. Ich kenne das Paket nicht gut, dachte, ich könnte generisch helfen.)Antworten:
Es sieht so aus, als ob das Tempdisagg-Paket keine monatliche bis tägliche Disaggregation zulässt. Aus dem
td()
Argument 'bis' der Hilfedatei:Ihre Fehlermeldung "'to' Argument: unbekannte Zeichenfolge" ist, weil die
to =
Argument nur 'vierteljährlich' oder 'monatlich' als Zeichenfolgen akzeptiert.Es gibt einige Diskussionen über die Disaggregation von monatlichen Daten zu täglichen Daten auf dem Statistik-Stapelaustausch hier: /stats/258810/disaggregate-monthly-forecasts-into-daily-data
Nach einigem Suchen sieht es so aus, als würde niemand konsequent disaggregierte monatliche bis tägliche Daten verwenden. Das
tempdisagg
Paket scheint in der Lage zu sein, das zu tun, was die meisten anderen für möglich gehalten haben - jährlich bis vierteljährlich oder monatlich und Zeiträume, die sogar um ein Vielfaches konsistent sind.Eric, ich habe unten ein Skript hinzugefügt, das veranschaulichen soll, was Sie versuchen, so wie ich es verstehe.
Hier verwenden wir reale Preisdaten, um von Tagespreisen -> monatlichen Preisen -> monatlichen Renditen -> durchschnittlichen täglichen Renditen zu wechseln.
Hier sind drei Diagramme, die 1. nur monatliche Renditen, 2. Tagesdurchschnitt aus monatlichen Renditen, 3. beide zusammen zeigen. Da sie identisch sind, zeigt die Überzeichnung im dritten Bild nur eine.
quelle
quantmod::monthlyReturn
oderPerformanceAnalytics::Return.calculate
abrufen. Von dort aus können Sie die obige (Kommentar-) Methode verwenden, wenn Sie von einer täglichen Rendite ausgehen müssen.