Wie werden monatliche, tägliche und wöchentliche Daten zusammengeführt?

11

Google Trends gibt wöchentliche Daten zurück, daher muss ich einen Weg finden, diese mit meinen täglichen / monatlichen Daten zusammenzuführen.

Was ich bisher getan habe, ist, jede Serie in tägliche Daten aufzuteilen, zum Beispiel:

von:

2013-03-03 - 2013-03-09 37

zu:

2013-03-03 37 2013-03-04 37 2013-03-05 37 2013-03-06 37 2013-03-07 37 2013-03-08 37 2013-03-09 37

Dies erhöht jedoch die Komplexität meines Problems. Ich habe versucht, Google-Suchanfragen aus den Werten der letzten 6 Monate oder 6 Werten in monatlichen Daten vorherzusagen. Tägliche Daten würden eine Arbeit an 180 vergangenen Werten implizieren. (Ich habe 10 Jahre Daten, also 120 Punkte in monatlichen Daten / 500+ in wöchentlichen Daten / 3500+ in täglichen Daten)

Der andere Ansatz wäre, tägliche Daten in wöchentlichen / monatlichen Daten "zusammenzuführen". Aus diesem Prozess ergeben sich jedoch einige Fragen. Einige Daten können gemittelt werden, weil ihre Summe etwas darstellt. Niederschlag Zum Beispiel ist die Regenmenge in einer bestimmten Woche die Summe der Mengen für jeden Tag, aus dem die Wochen bestehen.

In meinem Fall beschäftige ich mich mit Preisen, Finanzraten und anderen Dingen. Bei den Preisen ist es in meinem Bereich üblich, das ausgetauschte Volumen zu berücksichtigen, sodass die wöchentlichen Daten ein gewichteter Durchschnitt sind. Für finanzielle Zinssätze ist es etwas komplexer, da einige Formeln verwendet werden, um wöchentliche Zinssätze aus täglichen Zinssätzen zu erstellen. Für die anderen Dinge kenne ich die zugrunde liegenden Eigenschaften nicht. Ich denke, diese Eigenschaften sind wichtig, um bedeutungslose Indikatoren zu vermeiden (ein Durchschnitt der Verlobungsraten wäre zum Beispiel unsinnig).

Also drei Fragen:

Wie soll ich bei bekannten und unbekannten Eigenschaften von täglichen zu wöchentlichen / monatlichen Daten übergehen?

Ich habe das Gefühl, dass es etwas falsch ist, wöchentliche / monatliche Daten in tägliche Daten aufzuteilen, wie ich es getan habe, weil ich Mengen einführe, die im wirklichen Leben keinen Sinn haben. Also fast die gleiche Frage:

Wie soll ich bei bekannten und unbekannten Eigenschaften von wöchentlichen / monatlichen zu täglichen Daten wechseln?

Last but not least: Was ist besser, wenn zwei Zeitreihen mit unterschiedlichen Zeitschritten angegeben werden: Den niedrigsten oder den größten Zeitschritt verwenden? Ich denke, dies ist ein Kompromiss zwischen der Anzahl der Daten und der Komplexität des Modells, aber ich sehe kein starkes Argument, um zwischen diesen Optionen zu wählen.

Bearbeiten: Wenn Sie ein Tool (in R Python sogar Excel) kennen, um es einfach zu machen, wäre es sehr dankbar.

lcrmorin
quelle
Für Python ist Pandas das Standardwerkzeug. Es wurde speziell für den Umgang mit Zeitreihen für Finanzdaten entwickelt. Pandas Timeseries
Seanv507
Möchten Sie etwas näher auf das eingehen, was Sie unter "unbekanntem Eigentum" verstehen?
TheGrimmScientist

Antworten:

8

Was ist besser, wenn zwei Zeitreihen mit unterschiedlichen Zeitschritten angegeben werden: Verwenden des niedrigsten oder des größten Zeitschritts?

Für Ihre Zeitreihenanalyse sollten Sie beides tun: mit dem täglichen Datensatz die höchstmögliche Granularität erreichen und die Analyse auch mit dem monatlichen Datensatz wiederholen. Mit dem monatlichen Datensatz haben Sie 120 Datenpunkte, was ausreicht, um ein Zeitreihenmodell zu erhalten, auch wenn Ihre Daten saisonabhängig sind.

Wie soll ich bei bekannten und unbekannten Eigenschaften von täglichen zu wöchentlichen / monatlichen Daten übergehen?

Um beispielsweise wöchentliche oder monatliche Daten aus täglichen Daten zu erhalten, können Sie Glättungsfunktionen verwenden. Für Finanzdaten können Sie die gleitende durchschnittliche oder exponentielle Glättung verwenden. Wenn diese jedoch für Ihre Daten nicht funktionieren, können Sie die Spline-Glättungsfunktion "glatt.spline" in R verwenden: https://stat.ethz.ch/R verwenden -manual / R-patched / library / stats / html / glatt.spline.html

Das zurückgegebene Modell weist weniger Rauschen auf als der ursprüngliche tägliche Datensatz, und Sie können Werte für die gewünschten Zeitpunkte abrufen. Schließlich können diese Datenpunkte in Ihrer Zeitreihenanalyse verwendet werden.

Wie soll ich bei bekannten und unbekannten Eigenschaften von wöchentlichen / monatlichen zu täglichen Daten wechseln?

Um tägliche Daten zu erhalten, wenn Sie monatliche oder wöchentliche Daten haben, können Sie die Interpolation verwenden. Zunächst sollten Sie eine Gleichung finden, um die Daten zu beschreiben. Dazu sollten Sie die Daten (z. B. Preis über Zeit) zeichnen. Wenn Ihnen Faktoren bekannt sind, sollte diese Gleichung von diesen Faktoren beeinflusst werden. Wenn Faktoren unbekannt sind, können Sie eine Best-Fit-Gleichung verwenden. Die einfachste wäre eine lineare Funktion oder eine stückweise lineare Funktion, aber für Finanzdaten funktioniert dies nicht gut. In diesem Fall sollten Sie die stückweise kubische Spline-Interpolation berücksichtigen. Dieser Link enthält weitere Informationen zu möglichen Interpolationsfunktionen: http://people.math.gatech.edu/~meyer/MA6635/chap2.pdf .

In R gibt es eine Methode zur Interpolation von Zeitreihendaten. Hier würden Sie einen Vektor mit beispielsweise wöchentlichen Werten und NAs in den Lücken für die täglichen Werte erstellen und dann die Funktion "interpNA" verwenden, um die interpolierten Werte für die NAs zu erhalten. Diese Funktion verwendet jedoch die Funktion "approx", um die interpolierten Werte zu erhalten, wobei entweder eine lineare oder eine konstante Interpolation angewendet wird. Um eine kubische Spline-Interpolation in R durchzuführen, sollten Sie stattdessen die Funktion "Splinefun" verwenden.

Beachten Sie, dass Zeitreihenmodelle in der Regel eine Art Mittelwertbildung durchführen, um zukünftige Werte vorherzusagen, unabhängig davon, ob Sie unter anderem exponentielle Glättung oder ARIMA-Methoden (Auto-Regressive Integrated Moving Average) verwenden. Ein Zeitreihenmodell zur Vorhersage von Tageswerten ist möglicherweise nicht die beste Wahl, aber das Wochen- oder Monatsmodell ist möglicherweise besser.

Gchaks
quelle
Scheint eine praktische Antwort zu sein. Ich bin mir nicht sicher, ob dies aufgrund von Arbitrage für finanzielle Zeitreihen gilt.
lcrmorin
Ich denke, die Antworten auf Ihre Fragen sind immer noch gültig. Für das Zeitreihenmodell möchten Sie möglicherweise ARCH-Modelle (AutoRegressive Conditional Heteroskedasticity) betrachten.
Gchaks
Wenn Sie in Finanzzeitreihen beispielsweise mit kubischem Spline interpolieren, würden Sie dann keine vorausschauende Tendenz einführen? Ich denke, dies könnte besonders wichtig sein, wenn es für ein Modell des maschinellen Lernens implementiert wird.
Tsando
5

Ich bin kein Experte auf diesem Gebiet, aber ich glaube, dass Ihre Frage die Aggregation und Disaggregation von Zeitreihen betrifft . Wenn dies der Fall ist, finden Sie hier einige hoffentlich relevante Ressourcen, die bei der Lösung Ihres Problems hilfreich sein können (die ersten fünf Punkte sind wichtig, aber repräsentativ und die letzten beiden sind ergänzend):

Aleksandr Blekh
quelle
2

Dies wird keine sehr befriedigende Antwort sein, aber hier ist meine Meinung ...

Wie soll ich bei bekannten und unbekannten Eigenschaften von täglichen zu wöchentlichen / monatlichen Daten übergehen?

Wie soll ich bei bekannten und unbekannten Eigenschaften von wöchentlichen / monatlichen zu täglichen Daten wechseln?

Gleiche Antwort für beide: Sie können dies nicht für unbekannte Eigenschaften tun, und für bekannte Eigenschaften hängt es davon ab, wie die Werte berechnet wurden.

Wie Sie angedeutet haben:

(Ein Durchschnitt der Verlobungsraten wäre zum Beispiel unsinnig.)

Es gibt keine einzelne Transformation, die in allen Fällen angemessen ist, unabhängig davon, ob die Eigenschaften / Werte bekannt oder unbekannt sind. Selbst bei bekannten Eigenschaften benötigen Sie wahrscheinlich eine eindeutige Transformation für jeden Typ: Mittelwert, Median, Modus, Min, Max, Boolescher Wert usw.

Was ist besser, wenn zwei Zeitreihen mit unterschiedlichen Zeitschritten angegeben werden: Verwenden des niedrigsten oder des größten Zeitschritts?

Versuchen Sie nach Möglichkeit, die volle Granularität des kleinstmöglichen Schritts beizubehalten. Angenommen, Sie wissen, wie die Werte transformiert werden, können Sie die Schritte jederzeit zusammenfassen (z. B. Tag zu Monat, Monat zu Jahr). Nach einer verlustbehafteten Konvertierung können Sie jedoch nicht unbedingt kleinere Schritte aus größeren rekonstruieren .

Charlie Greenbacker
quelle
2

Wie soll ich bei bekannten und unbekannten Eigenschaften von täglichen zu wöchentlichen / monatlichen Daten übergehen?

Anhäufung.

Sie haben beispielsweise die Anzahl der Personen, die täglich nach "Widgets" gesucht werden. Addieren Sie die täglichen Summen für einen Monat, um monatliche Summen zu erhalten. Ich würde mehr Details über die tatsächlichen Daten sehen müssen, die bei jeder Granularität gesammelt wurden, um Ihnen eine vollständigere Version zu geben.

Wie soll ich bei bekannten und unbekannten Eigenschaften von wöchentlichen / monatlichen zu täglichen Daten wechseln?

Das kannst du nicht.

In der Physik ist die Nyquist-Frequenz eine vergleichbare Idee . Die allgemeine Idee ist, dass Sie nicht mehr Informationen hinzufügen können, als Sie bereits in Ihren Daten haben, ohne mehr Daten einzubringen. Wie können Sie anhand des Tages, an dem jemand eine Abfrage ausgeführt hat, feststellen, zu welcher Tageszeit diese Abfrage ausgeführt wurde? Möglicherweise können Sie einige Schlussfolgerungen ziehen, aber die einzige Möglichkeit, die Frage zu beantworten, besteht darin, direkt oder indirekt weitere Informationen in das System einzubringen. Es gibt Dinge, die Sie tun können, um fundierte Vermutungen über den täglichen Status monatlicher Variablen anzustellen (wie Gchaks erwähnt, Interpolation), aber Ihre Daten sind im Grunde immer noch monatliche Daten, die so gestreckt sind, dass sie täglich angezeigt werden.

Was ist besser, wenn zwei Zeitreihen mit unterschiedlichen Zeitschritten angegeben werden: Verwenden des niedrigsten oder des größten Zeitschritts?

Das hängt ganz davon ab, was Sie zu beantworten versuchen.

Die geringere Granularität ist empfindlicher gegenüber Rauschen und anderen Anomalien. Die Lagergranularität kann Fragen sicherer beantworten, verliert jedoch einen Teil ihrer Nützlichkeit. Wenn Sie beispielsweise versuchen zu sehen, wann Leute nach Veranstaltungsorten für Wochenendpläne suchen, um zu wissen, wann Marketingkampagnen für einen neuen Nachtclub gestartet werden sollen, sollten Sie sich die täglichen Daten ansehen, wenn nicht sogar die kleineren. Wenn Sie sich die allgemeinen Trends der Nachtclubs ansehen, um herauszufinden, in wen Sie investieren möchten, ist ein Monat wahrscheinlich besser.

TheGrimmScientist
quelle
2

Mit der Tableau-Software ist es ein Kinderspiel, Daten basierend auf Datumssegmenten zu aggregieren. Sie fügen einfach Ihre Daten in das Tool ein und können dann sowohl die Metrik- als auch die Datumsdimension per Drag & Drop auf einen Berichtskörper ziehen. Tableau erstellt sofort aggregierte Visualisierungen und / oder Detaildatentabellen im laufenden Betrieb. Sie können nach Jahr, Quartal, Monat, Woche, Tag, Stunde usw. gruppieren / summieren (standardmäßige, integrierte, sofort einsatzbereite Funktionen des Tools).

Wenn Sie später zusätzliche Daten einbinden möchten (was ich unter "unbekannten Eigenschaften" verstehe), können Sie einen anderen Datensatz importieren und ihn einfach an den ersten anhängen, sofern er auch Datumsangaben enthält.

Ich würde empfehlen, die kostenlose Version zu testen, die meiner Meinung nach Tableau Public heißt.

Deepraj Kunnath
quelle