Neil-lunn Ich wollte einen gleitenden Durchschnitt berechnen. So für 3-Monats-Intervalle I39d wollen einen Tag zu nehmen und durchschnittlich an diesem Tag mit den letzten 3 Monate Daten, und dann tun, dass durchschnittlich für jeden Tag für 50 Jahre die nächsten 50 Jahre. So denke ich, dass bestimmte Werte für Durchschnitte überschneiden würden. Wie würden Sie dies mit mapReduce anstatt es Sie tun können tun es mit dem Aggregationsrahmen. Ich glaube, Sie haben Recht, ich habe verschiedene Dokumente zu vergleichen. Danke ndash mc. Ich glaube nicht, dass die Aggregation Framework kann dies für mehrere Termine in der aktuellen Version (2.6), oder zumindest, kann dies ohne einige schwere Gymnastik tun. Der Grund dafür ist, dass die Aggregation Pipeline ein Dokument zu einem Zeitpunkt und nur ein Dokument verarbeitet, so dass es notwendig wäre, irgendwie ein Dokument für jeden Tag zu erstellen, der die relevanten Informationen der letzten 3 Monate enthält. Dies wäre als eine Gruppenstufe, die den Durchschnitt berechnen würde, was bedeutet, daß die vorhergehende Stufe etwa 90 Kopien von jedem Tage-Datensatz mit irgendeinem unterscheidenden Schlüssel erzeugt haben würde, der für die Gruppe verwendet werden kann. Also ich sehe nicht eine Möglichkeit, dies für mehr als ein Datum in einer einzigen Aggregation zu tun. Id glücklich sein, falsch zu sein und zu bearbeiten haben diese Antwort zu entfernen, wenn jemand findet einen Weg, es zu tun, auch wenn seine so kompliziert seine nicht praktisch. Ein PostgreSQL-PARTITION-Typ-Funktion würde die Arbeit hier vielleicht die Funktion wird eines Tages hinzugefügt werden. Beantwortet Aug 7 14 um 17:49 so dann you39d entweder Abfrage für Stücke von diesem und berechnen Sie den gleitenden Durchschnitt in einer Sprache (Ruby, Python, Knoten) oder führen Sie eine aggregierte Abfrage für jedes Intervall. Ist, dass wirklich die beste Lösung Doesn39t es nur das Gefühl, falsch ist es eine bessere Möglichkeit, dies mit Karte-reduzieren, dass ich kann nicht denken, ndash mc. Aug 7 14 at 18:41 Ich haven39t dachte über Karte-reduzieren. Im Allgemeinen versuche ich zu vermeiden, mit map-reduzieren, da es eine signifikante Performance-Strafe hat und ist nicht so sicher, da Sie kundenspezifische Code-Server-Seite ausgeführt werden. Ich versuche, etwas darüber nachzudenken, oder vielleicht jemand anderes kocht eine mr Lösung. Ndash wdberkeley Ich denke, dass ich eine Antwort für meine eigene Frage haben kann. Karte reduzieren würde es tun. Erste Verwendung emittieren, um jedes Dokument seinen Nachbarn zuzuordnen, dass es mit gemittelt werden soll, dann verwenden Sie reduzieren auf avg jedes Array. Und dass neue Array von Durchschnitten sollten die gleitenden Mittelwerte Plot Überstunden, da seine id wäre das neue Datum Intervall, dass Sie kümmern Ich glaube, ich brauchte zu verstehen, Karte-reduzieren besser. Zum Beispiel. Wenn wir wollten es im Gedächtnis (später können wir Kollektionen erstellen) Ist das Richtige Hinzufügen eines Trends oder gleitende durchschnittliche Linie zu einem Diagramm Betrifft: Excel 2016 Word 2016 PowerPoint 2016 Word 2013 Outlook 2013 PowerPoint 2013 Mehr. Weniger Zeigt Datentrends oder gleitende Durchschnitte in einem von Ihnen erstellten Diagramm an. Können Sie eine Trendlinie hinzufügen. Sie können auch eine Trendlinie über Ihre tatsächlichen Daten hinaus erweitern, um zukünftige Werte vorherzusagen. So prognostiziert die folgende lineare Trendlinie zwei Quartale voraus und zeigt deutlich einen Aufwärtstrend, der für den zukünftigen Umsatz vielversprechend aussieht. Sie können eine Trendlinie zu einem 2-D Diagramm hinzufügen, das nicht gestapelt wird, einschließlich Bereich, Stab, Spalte, Linie, Vorrat, Streuung und Blase. Sie können keine Trendlinie zu einem gestapelten, 3-D-, Radar-, Kuchen-, Oberflächen - oder Donut-Diagramm hinzufügen. Hinzufügen einer Trendlinie Klicken Sie in Ihrem Diagramm auf die Datenreihe, zu der Sie eine Trendlinie oder einen gleitenden Durchschnitt hinzufügen möchten. Die Trendlinie beginnt am ersten Datenpunkt der gewählten Datenreihe. Aktivieren Sie das Kontrollkästchen Trendline. Um einen anderen Trendlinienbereich zu wählen, klicken Sie auf den Pfeil neben Trendline. Und klicken Sie dann auf Exponential. Lineare Vorhersage. Oder Zwei Periodenbewegungsdurchschnitt. Klicken Sie für weitere Trendlinien auf Weitere Optionen. Wenn Sie Mehr Optionen wählen. Klicken Sie unter Trendlinienoptionen im Fenster "Trendlinie formatieren" auf die gewünschte Option. Wenn Sie Polynom wählen. Geben Sie die höchste Leistung für die unabhängige Variable im Feld Auftrag ein. Wenn Sie Moving Average wählen. Geben Sie die Anzahl der Perioden ein, die verwendet werden, um den gleitenden Durchschnitt im Feld Zeitraum zu berechnen. Tipp: Eine Trendlinie ist am genauesten, wenn ihr R-Quadratwert (eine Zahl von 0 bis 1, die angibt, wie genau die Schätzwerte für die Trendlinie mit Ihren tatsächlichen Daten übereinstimmen) bei oder nahe bei 1. Wenn Sie eine Trendlinie zu Ihren Daten hinzufügen , Berechnet Excel automatisch seinen R-Quadrat-Wert. Sie können diesen Wert in Ihrem Diagramm anzeigen, indem Sie den Wert "R-Quadrat anzeigen" im Diagrammfenster (Bereich "Trendlinie", "Trendlinienoptionen") anzeigen. In den folgenden Abschnitten erfahren Sie mehr über alle Trendlinienoptionen. Lineare Trendlinie Verwenden Sie diese Art von Trendlinie, um eine optimale Gerade für einfache lineare Datensätze zu erstellen. Ihre Daten sind linear, wenn das Muster in seinen Datenpunkten wie eine Linie aussieht. Eine lineare Trendlinie zeigt in der Regel, dass etwas mit steiler Geschwindigkeit steigt oder sinkt. Eine lineare Trendlinie verwendet diese Gleichung zur Berechnung der kleinsten Quadrate, die für eine Linie passen: wobei m die Steigung und b der Intercept ist. Die folgende lineare Trendlinie zeigt, dass die Verkäufe der Kühlschränke über einen Zeitraum von 8 Jahren kontinuierlich zugenommen haben. Beachten Sie, dass der R-squared-Wert (eine Zahl von 0 bis 1, die angibt, wie genau die Schätzwerte für die Trendlinie Ihren tatsächlichen Daten entsprechen) 0,9792 ist, was eine gute Übereinstimmung der Zeile zu den Daten ist. Diese Trendlinie ist nützlich, wenn die Rate der Änderung in den Daten schnell ansteigt oder abnimmt und dann abnimmt. Eine logarithmische Trendlinie kann negative und positive Werte verwenden. Eine logarithmische Trendlinie verwendet diese Gleichung zur Berechnung der kleinsten quadratischen Anpassung durch Punkte: wobei c und b Konstanten sind und ln die natürliche Logarithmusfunktion ist. Die folgende logarithmische Trendlinie zeigt das vorhergesagte Bevölkerungswachstum von Tieren in einem festen Raum, in dem die Population ausgeglichen wurde, als der Platz für die Tiere abnahm. Beachten Sie, dass der R-Quadrat-Wert 0,933 ist, was eine relativ gute Passung der Zeile zu den Daten ist. Diese Trendlinie ist nützlich, wenn Ihre Daten schwanken. Zum Beispiel, wenn Sie Gewinne und Verluste über einen großen Datensatz analysieren. Die Reihenfolge des Polynoms kann durch die Anzahl der Schwankungen in den Daten oder durch die Anzahl der Biegungen (Hügel und Täler) in der Kurve bestimmt werden. Typischerweise hat eine Order-2-Polynom-Trendlinie nur einen Hügel oder ein Tal, eine Order 3 hat ein oder zwei Hügel oder Täler und eine Order 4 hat bis zu drei Hügeln oder Tälern. Eine polynomische oder krummlinige Trendlinie nutzt diese Gleichung, um die kleinsten Quadrate durch Punkte zu berechnen: wobei b und Konstanten sind. Die folgende Polynom-Trendlinie (ein Hügel) der Ordnung 2 zeigt die Beziehung zwischen Fahrgeschwindigkeit und Kraftstoffverbrauch. Beachten Sie, dass der R-Quadrat-Wert 0,979 ist, was nahe bei 1 liegt, so dass die Linien eine gute Anpassung an die Daten aufweisen. Diese Trendlinie, die eine gekrümmte Linie zeigt, ist für Datensätze nützlich, die Messungen vergleichen, die mit einer bestimmten Rate zunehmen. Zum Beispiel die Beschleunigung eines Rennwagens im 1-Sekunden-Intervall. Sie können keine Power-Trendline erstellen, wenn Ihre Daten Null - oder negative Werte enthalten. Eine Leistungs-Trendlinie verwendet diese Gleichung, um die kleinsten Quadrate durch Punkte zu berechnen: wobei c und b Konstanten sind. Hinweis: Diese Option ist nicht verfügbar, wenn Ihre Daten negative oder Nullwerte enthalten. Die folgende Distanzmesskarte zeigt den Abstand in Metern pro Sekunde an. Die Leistung Trendlinie zeigt deutlich die zunehmende Beschleunigung. Beachten Sie, dass der R-Quadrat-Wert 0,986 ist, was eine nahezu perfekte Passung der Zeile zu den Daten ist. Diese Kurve zeigt eine gekrümmte Linie, wenn Datenwerte mit stetig steigenden Werten steigen oder fallen. Sie können keine exponentielle Trendlinie erstellen, wenn Ihre Daten Null - oder negative Werte enthalten. Eine exponentielle Trendlinie nutzt diese Gleichung, um die kleinsten Quadrate durch Punkte zu berechnen: wobei c und b Konstanten sind und e die Basis des natürlichen Logarithmus ist. Die folgende exponentielle Trendlinie zeigt die abnehmende Menge an Kohlenstoff 14 in einem Objekt, während es altert. Beachten Sie, dass der R-Quadrat-Wert 0.990 ist, was bedeutet, dass die Linie die Daten nahezu perfekt passt. Moving Average trendline Diese Trendlinie gleicht Schwankungen in den Daten aus, um ein Muster oder einen Trend deutlicher darzustellen. Ein gleitender Durchschnitt verwendet eine bestimmte Anzahl von Datenpunkten (die durch die Option "Periode" festgelegt wurden), sie mittelt sie und verwendet den Durchschnittswert als Punkt in der Zeile. Wenn beispielsweise Period auf 2 gesetzt ist, wird der Durchschnitt der ersten beiden Datenpunkte als erster Punkt in der gleitenden durchschnittlichen Trendlinie verwendet. Der Mittelwert der zweiten und dritten Datenpunkte wird als zweiter Punkt in der Trendlinie usw. verwendet. Eine gleitende durchschnittliche Trendlinie verwendet diese Gleichung: Die Anzahl der Punkte in einer gleitenden durchschnittlichen Trendlinie entspricht der Gesamtzahl der Punkte in der Reihe minus Die Sie für den Zeitraum angeben. In einem Streudiagramm basiert die Trendlinie auf der Reihenfolge der x-Werte im Diagramm. Für ein besseres Ergebnis sortieren Sie die x-Werte, bevor Sie einen gleitenden Durchschnitt hinzufügen. Die folgende gleitende durchschnittliche Trendlinie zeigt ein Muster in der Zahl der Häuser, die über einen Zeitraum von 26 Wochen verkauft wurden. Vorhin schrieb ich über die Berechnung des gleitenden Durchschnitts von Live-Daten mithilfe der Buffer () - Methode in Reactive Extensions. Die Methode erstellt einen Puffer von Updates, deren Grenze Sie, wie der Entwickler spezifiziert, und stellt Ihnen diesen laufenden Puffer mit jeder nachfolgenden Aktualisierung zur Verfügung. Das Update 8216current8217 wäre letzter im Puffer, der es erlaubt, den inklusiven gleitenden Durchschnitt zu berechnen, wobei der letzte Faktor in den Ergebnissen enthalten ist. Vor kurzem hatte ich etwas Ähnliches mit statischen Daten in einer Anwendung, die nicht mit RX, Bud hatte einen gut definierten LINQ-basierten Datenanbieter zu tun. Zu meiner Überraschung, fand ich, dass LINQ nicht eine Pufferung Methode aus der Box. Zu meiner größeren Überraschung fand ich, dass es einfach war, eine zu implementieren. Der Code ist unten. Ich wollte nicht annehmen, dass wir nur durchschnittliche Aggregationen durchführen würden, daher halte ich meine Lösung ziemlich generisch. Es wäre Aufgabe des Benutzers meiner Funktion, die Aggregationslogik zu codieren. In diesem Beitrag würde ich zeigen, durchschnittliche Aggregationen, aber der Benutzer dieser Funktion wäre in der Lage, alles mit einem bestimmten Satz von Elementen zu tun. Zuerst definieren let8217s eine Datenstruktur, die Aggregation genannt wird, die verwendet werden würde, um das Original zu wickeln und eine neue AggregatedValue-Eigenschaft (Zeile 16) hinzuzufügen, die wir während des Aggregationsprozesses auffüllen würden. Dann definiere ich ein Beispiel TimedDataPoint, die verwendet werden würde, um Aktienkurse in meinem Beispiel halten. Schließlich definieren let8217s eine LINQ-Funktion, die einen Satz von Elementen in dem ursprünglichen Satz puffern würde und einen modifizierten Satz mit weniger Elementen zurückgeben würde, wobei jedes Element einen Aggregationswert für den gepufferten Satz enthalten würde. Um Erfolg geltend zu machen, muss ich die Funktion testen. Um mit echten Zahlen spielen, let8217s erhalten die Geschichte der wöchentlichen MSFT Aktienrenditen von Yahoo. Let8217s exportieren diese Daten zu excel und erstellen Sie die Menge der gleitenden Durchschnitte von Close-Preis, um unsere Daten zu testen. Hier ist das, was die Tabelle aussehen sollte: Wir können dann ein Beispiel-Dataset erstellen, um die ursprünglichen Schlusskurse darzustellen. Wir können dann unsere Funktion testen, indem ich eine gleitende Durchschnittsberechnung auf dem Dataset erstellt. Der Code ist unten. Zuerst erstelle ich den Datensatz, dann iteriere ich durch den Dataset, führe die Daten in meine Aggregator-Funktion, die wiederum ruft mich zurück und fragt mich, 2 wichtige Entscheidungen zu treffen: 1. Sollte es weiter Pufferung (Zeilen 60 und 71) 2 (Zeile 61 in dem ersten Beispiel und Zeile 74-82 in der zweiten) Die Ausgabe des Beispiels sollte mit der 6-Tage-Avg-Spalte in der beigefügten Kalkulationstabelle übereinstimmen. Ich fand diese Aggregator-Funktion sehr nützlich. Hoffe, Sie werden auch.
No comments:
Post a Comment