2016-07-18 6 views
1

Say I die folgenden Daten aufweisen:Estimating lineare Anpassung als gleitender Durchschnitt

Year Day Amount 
2015 1 2 
2015 2 3 
2015 3 4 
2015 4 5 

Verwenden von Fensterfunktionen oder Aggregationen, möchte ich für jede Zeile eine Zahl erhalten, die die „Linearität auf den vorherigen n Zeilen basierend darstellt ". In diesem einfachen Beispiel wäre die Linearität für die Zeile mit day = 4 aus naheliegenden Gründen ziemlich hoch, basierend auf den vorherigen n Tagen, wobei n gleich 3 ist.

Probleme treten auf, wenn einige der vorherigen Tage nicht existieren, und in diesem Fall würde ich einfach einen Standardwert von -1 verwenden wollen, um zum Beispiel etwas anderes anzuzeigen.

Ich habe keinen genauen Wert Ich möchte die Linearität darstellen, aber als ein Beispiel, ähnlich den Korrelationskoeffizienten, könnte 1 hohe Linearität darstellen, während 0 keine.

Edit:

Was ich als Notbehelf Use-Case getan haben eine Spalte jeder Zeile hinzufügen, war den Tag darstellt (und Jahr unter Berücksichtigung), und verwendet, um eine Fensterfunktion mit Verzögerung die vorherige zu finden 4 Werte (wenn sie existierten). Nachdem ich diese Werte erhalten habe (oder sie nicht erhalten habe), habe ich eine einfache Berechnung durchgeführt, um die Differenz jeder Kombination von Punkten zu berechnen, und die Teilung verwendet, um zu sehen, wie nahe sie zueinander sind (1 wäre die beste). Ich entschuldige mich, ich kann keinen Code teilen, da Code-Sharing vereinbart wurde.

+1

So wissen wir, was Sie wollen. Nun, was hast du versucht, das zu erreichen? – zero323

+0

@ zero323 Ich habe meine Frage mit dem was ich versucht habe aktualisiert. –

Antwort

0
  • erzeugen Serie mit allen Daten, die Sie
  • linken Außen schätzen möchten verbinden es mit Eingang
  • null Werte für Amount mit einem Wertt ersetzen
  • konvertieren zu schätzen
  • erzeugen Tasten mit niedriger RDD gebunden -> für 2015 4 Schlüssel erzeugen [2015 4, 2015 3, 2015 2] amd flatten
  • groupByKey
  • Schätzung für Gruppen
+0

Können Sie näher auf "Schlüssel mit Untergrenze generieren" eingehen? Nicht sicher, was genau du damit meinst. –

Verwandte Themen