Tuesday 26 September 2017

Moving Average Filter Standard Abweichung


Unten sehen Sie meine C-Methode, um Bollinger Bands für jeden Punkt zu berechnen (gleitender Durchschnitt, Up-Band, Down-Band). Wie Sie sehen können, verwendet diese Methode 2 für Loops, um die bewegte Standardabweichung mit dem gleitenden Durchschnitt zu berechnen. Es enthielt eine zusätzliche Schleife, um den gleitenden Durchschnitt über die letzten n Perioden zu berechnen. Diese konnte ich entfernen, indem ich den neuen Punktwert zu Beginn des Loops zum totalaverage hinzufüge und den i - n Punktwert am Ende der Schleife beseitige. Meine Frage ist jetzt grundsätzlich: Kann ich die restliche innere Schleife in einer ähnlichen Weise entfernen, die ich mit dem gleitenden Durchschnitt gehandhabt habe, fragte Jan 31 13 um 21:45 Die Antwort ist ja, können Sie. Mitte der 80er Jahre entwickelte ich gerade einen solchen Algorithmus (vermutlich nicht original) in FORTRAN für eine Prozessüberwachungs - und Steuerungsanwendung. Leider war das vor über 25 Jahren und ich erinnere mich nicht an die genauen Formeln, aber die Technik war eine Erweiterung des einen für bewegte Durchschnitte, mit Berechnungen zweiter Ordnung statt nur linearen. Nach dem Betrachten deines Codes einige, denke ich, dass ich aussäumen kann, wie ich es damals getan habe. Beachten Sie, wie Ihre innere Schleife eine Summe von Quadraten macht: in der gleichen Weise, dass Ihr Durchschnitt ursprünglich eine Summe von Werten hatte. Die einzigen zwei Unterschiede sind die Reihenfolge (ihre Macht 2 anstelle von 1) und dass Sie den Durchschnitt subtrahieren Jeder Wert, bevor du ihn quadratst. Nun, das könnte unzertrennlich aussehen, aber in Wirklichkeit können sie getrennt werden: Jetzt ist der erste Begriff nur eine Summe von Quadraten, du gehst damit in der gleichen Weise, dass du die Summe der Werte für den Durchschnitt machst. Der letzte Term (k2n) ist nur die durchschnittliche quadratische Zeit der Periode. Da du das Ergebnis sowieso bis dahin teilt, kannst du einfach den neuen Mittelwert ohne die zusätzliche Schleife hinzufügen. Schließlich, im zweiten Term (SUM (-2vi) k), da SUM (vi) total kn können Sie es dann in diese ändern: oder nur -2k2n. Das ist -2 mal das durchschnittliche Quadrat, sobald die Periode (n) wieder aufgeteilt ist. Also die endgültige kombinierte Formel ist: (achten Sie darauf, die Gültigkeit von diesem zu überprüfen, da ich es aus der Oberseite meines Kopfes ableiten) Und die Einbindung in Ihren Code sollte so etwas aussehen: Vielen Dank dafür. Ich habe es als Grundlage für eine Implementierung in C für die CLR verwendet. Ich entdeckte, dass in der Praxis können Sie so aktualisieren, dass newVar ist eine sehr kleine negative Zahl, und die sqrt scheitert. Ich habe eine if eingeführt, um den Wert auf Null für diesen Fall zu begrenzen. Nicht Idee, aber stabil. Dies geschah, als jeder Wert in meinem Fenster den gleichen Wert hatte (ich benutzte eine Fenstergröße von 20 und der Wert in Frage war 0,5, falls jemand versucht, es zu versuchen und zu reproduzieren.) Ndash Drew Noakes Jul 26 13 um 15:25 Ive Gebraucht commons-mathe (und dazu beigetragen, dass Bibliothek) für etwas sehr ähnlich zu diesem. Seine Open-Source, Portierung zu C sollte einfach sein, wie Shop-gekauft Kuchen (haben Sie versucht, eine Torte von Grund auf neu). Check it out: commons. apache. orgmathapi-3.1.1index. html. Sie haben eine StandardDeviation Klasse. Gehe in die Stadt beantwortet Jan 31 13 um 21:48 You39re Willkommen Sorry Ich didn39t haben die Antwort you39re suchen. Ich habe definitiv nicht bedeuten, Portierung der gesamten Bibliothek nur die minimale notwendige Code, die ein paar hundert Zeilen oder so sein sollte. Beachten Sie, dass ich keine Ahnung habe, welche gesetzlichen Urheberrechtsbeschränkungen Apache auf diesen Code hat, also musst du das heraus überprüfen. Wenn du es verfolgst, hier ist der Link. So dass Variance FastMath ndash Jason Jan 31 13 um 22:36 Die wichtigsten Informationen wurden bereits oben gegeben - aber vielleicht ist das immer noch von allgemeinem Interesse. Eine kleine Java-Bibliothek zur Berechnung des gleitenden Durchschnitts und der Standardabweichung steht hier zur Verfügung: githubtools4jmeanvar Die Implementierung basiert auf einer Variante der oben genannten Welfords-Methode. Methoden zum Entfernen und Ersetzen von Werten wurden abgeleitet, die für das Verschieben von Wertfenstern verwendet werden können. Was wäre der ideale Weg, um die mittlere und Standardabweichung eines Signals für eine Echtzeitanwendung zu finden. Id wie in der Lage sein, einen Controller auszulösen, wenn ein Signal mehr als 3 Standardabweichung des Mittelwertes für eine bestimmte Zeitspanne war. Ich nehme an, dass ein dedizierter DSP das ziemlich leicht machen würde, aber es gibt irgendeine Abkürzung, die möglicherweise nicht etwas so kompliziertes verlangt wird. Dec 3 11 um 5:11 Theres ein Fehler in Jason Rs Antwort, die in Knuths Art of Computer Programming vol diskutiert wird. 2. Das Problem kommt, wenn man eine Standardabweichung hat, die ein kleiner Bruchteil des Mittels ist: Die Berechnung von E (x2) - (E (x) 2) leidet unter einer schweren Empfindlichkeit gegenüber Gleitkomma-Rundungsfehlern. Sie können sogar versuchen, dies selbst in einem Python-Skript: Ich bekomme -128.0 als Antwort, die eindeutig nicht rechnerisch gültig ist, da die Mathematik prognostiziert, dass das Ergebnis nichtnegativ sein sollte. Knuth zitiert einen Ansatz (ich erinnere mich nicht an den Namen des Erfinders) für die Berechnung der laufenden Mittelwert und Standardabweichung, die so etwas wie folgt geht: und dann nach jedem Schritt ist der Wert von m der Mittelwert und die Standardabweichung kann als sqrt berechnet werden (Sn) oder sqrt (Sn-1) je nachdem, was ist Ihre Lieblings-Definition der Standardabweichung. Die Gleichung, die ich oben schreibe, ist etwas anders als die in Knuth, aber ihre rechnerisch äquivalent. Wenn ich noch ein paar Minuten habe, korrigiere ich die obige Formel in Python und zeige dir, dass du eine nichtnegative Antwort bekommst (die hoffentlich nah an den richtigen Wert ist). Update: hier ist es. Youll beachten Sie, dass es noch einige Rundungsfehler, aber es ist nicht schlecht, während naivestats nur pukes. Bearbeiten: Just noticed Belisariuss Kommentar zitiert Wikipedia, die den Knuth-Algorithmus erwähnt. Was wäre der ideale Weg, um die Mittel - und Standardabweichung eines Signals für eine Echtzeitanwendung zu finden. Id wie in der Lage sein, einen Controller auszulösen, wenn ein Signal mehr als 3 Standardabweichung des Mittelwertes für eine bestimmte Zeitspanne war. Der richtige Ansatz in Situationen wie diesem ist in der Regel zu einem exponentiell gewichteten laufenden Durchschnitt und Standardabweichung zu berechnen. Im exponentiell gewichteten Durchschnitt werden die Schätzungen des Mittelwerts und der Varianz in Richtung der letzten Probe vorgespannt, die Ihnen Schätzungen des Mittelwertes und der Abweichung über die letzten Tau-Sekunden gibt. Was ist wohl das, was du willst, anstatt das übliche arithmetische Mittel über alle Samples, die je gesehen wurden. Im Frequenzbereich ist ein exponentiell gewichteter durchschnittlicher Durchschnitt einfach ein echter Pole. Es ist einfach, im Zeitbereich zu implementieren. Zeitbereichsimplementierung Lasst Mittelwert und Mittelwert q die aktuellen Schätzungen des Mittelwerts und Mittelwertes des Quadrats des Signals sein. In jedem Zyklus aktualisieren Sie diese Schätzungen mit dem neuen Sample x: Hier ist 0 lt a lt 1 eine Konstante, die die effektive Länge des laufenden Mittels bestimmt. Wie man ein wählt, wird unten in der Analyse beschrieben. Was oben als ein imperatives Programm ausgedrückt wird, kann auch als ein Signalflussdiagramm dargestellt werden: Der obige Algorithmus berechnet yi a xi (1-a) y, wobei xi die Eingabe am Abtastwert i ist und yi die Ausgabe ist (dh die Schätzung von Der Mittelwert). Dies ist ein einfacher, einpoliger IIR-Filter. Unter der Z-Transformation finden wir die Übertragungsfunktion H (z) frac. Wenn wir die IIR-Filter in ihre eigenen Blöcke verwandeln, sieht das Diagramm nun so aus: Um in die kontinuierliche Domäne zu gelangen, machen wir die Substitution z e, wobei T die Abtastzeit ist und fs 1T die Abtastrate ist. Wenn wir 1- (1-a) e 0 lösen, finden wir, dass das kontinuierliche System einen Pol bei s frac log (1-a) hat. Ein Verfahren, das zuvor in einer eingebetteten Verarbeitungsanwendung verwendet wurde, besteht darin, die Akkumulatoren der Summe und der Summe der Quadrate des interessierenden Signals aufrechtzuerhalten: Verfolgen Sie auch den aktuellen Zeitpunkt i in den obigen Gleichungen (das heißt, die Nummer Von Proben, die Sie in die Akkumulatoren eingefügt haben). Dann sind die Sample-Mittelwerte und die Standardabweichung zum Zeitpunkt i: sigma2-Operatorname (X2) - (Operatorname (X)) 2 Ive verwendet diese erfolgreich in der Vergangenheit (obwohl ich nur mit Varianzschätzung, nicht Standardabweichung beschäftigt war), obwohl du Muss vorsichtig sein, über die numerischen Typen, die Sie verwenden, um die Akkumulatoren zu halten, wenn Sie sich über einen langen Zeitraum summieren, den Sie nicht überlaufen möchten. Bearbeiten: Zusätzlich zu dem obigen Kommentar zum Überlauf ist zu beachten, dass dies kein numerisch robuster Algorithmus ist, wenn er in Gleitkomma-Arithmetik implementiert wird, was möglicherweise große Fehler in den geschätzten Statistiken verursacht. Schau auf Jason Ss Antwort für einen besseren Ansatz in diesem Fall. Beantwortet Dec 6 11 um 13:34 Es scheint ein paar Tippfehler hier zu sein. Warum ist der Mittelwert unter dem Quadratwurzelzeichen für Sigma subtrahiert, sollte es mu2 sein, um die angezeigte Gleichung Sigma2 E (X2) - (E (X)) 2, nein auch, obwohl ich gewann, diese Antwort zu stimmen, stimme ich zu Jason S, dass es in diesem Ansatz numerische Probleme geben kann. Ndash Dilip Sarwate Jan 20 12 at 1:33 Ähnlich wie die bevorzugte Antwort oben (Jason S.), und auch aus der Formel von Knut (Vol.2, S. 232) abgeleitet, kann man auch eine Formel ableiten, um einen Wert zu ersetzen , Dh entfernen und einen Wert in einem Schritt hinzufügen. Nach meinen Tests liefert ersetzen eine bessere Präzision als die zweistufige removeadd Version. Der Code unten ist in Java, Mittel und s erhalten aktualisiert (globale Member Variablen), wie m und s oben in Jasons Post. Die Wertzählung bezieht sich auf die Fenstergröße n. DAX enthält einige statistische Aggregationsfunktionen wie Mittelwert, Varianz und Standardabweichung. Andere typische statistische Berechnungen verlangen, dass Sie längere DAX-Ausdrücke schreiben. Excel hat aus dieser Sicht eine viel reichere Sprache. Die statistischen Muster sind eine Sammlung von gemeinsamen statistischen Berechnungen: Median, Modus, gleitender Durchschnitt, Perzentil und Quartil. Wir danken Colin Banfield, Gerard Brückl und Javier Guilln, dessen Blogs einige der folgenden Muster inspirierten. Grundmuster Beispiel Die Formeln in diesem Muster sind die Lösungen für spezifische statistische Berechnungen. Sie können Standard-DAX-Funktionen verwenden, um den Mittelwert (arithmetischen Mittelwert) eines Satzes von Werten zu berechnen. DURCHSCHNITT Gibt den Durchschnitt aller Zahlen in einer numerischen Spalte zurück. AVERAGEA Gibt den Durchschnitt aller Zahlen in einer Spalte zurück und behandelt sowohl Text als auch nicht-numerische Werte (nicht numerische und leere Textwerte zählen als 0). AVERAGEX Berechnen Sie den Durchschnitt auf einem Ausdruck, der über einer Tabelle ausgewertet wird. Moving Average Der gleitende Durchschnitt ist eine Berechnung, um Datenpunkte zu analysieren, indem eine Reihe von Mittelwerten verschiedener Teilmengen des vollständigen Datensatzes erstellt wird. Sie können viele DAX-Techniken verwenden, um diese Berechnung umzusetzen. Die einfachste Technik ist die Verwendung von AVERAGEX, die eine Tabelle der gewünschten Granularität iteriert und für jede Iteration den Ausdruck berechnet, der den einzelnen Datenpunkt erzeugt, der im Durchschnitt verwendet wird. Beispielsweise berechnet die folgende Formel den gleitenden Durchschnitt der letzten 7 Tage, vorausgesetzt, dass Sie eine Datumstabelle in Ihrem Datenmodell verwenden. Mit AVERAGEX berechnen Sie automatisch die Maßnahme auf jeder Granularitätsebene. Bei der Verwendung einer Maßnahme, die aggregiert werden kann (wie zB SUM), dann könnte ein anderer Ansatz, der auf CALCULATE basiert, schneller sein. Sie finden diesen alternativen Ansatz in der vollständigen Muster von Moving Average. Sie können Standard-DAX-Funktionen verwenden, um die Varianz eines Satzes von Werten zu berechnen. VAR. S. Gibt die Varianz der Werte in einer Spalte zurück, die eine Stichprobenpopulation repräsentiert. VAR. P. Gibt die Varianz der Werte in einer Spalte zurück, die die gesamte Population repräsentiert. VARX. S. Gibt die Varianz eines Ausdrucks zurück, der über eine Tabelle ausgewertet wird, die eine Stichprobenpopulation repräsentiert. VARX. P. Gibt die Varianz eines Ausdrucks zurück, der über eine Tabelle ausgewertet wird, die die gesamte Population repräsentiert. Standardabweichung Sie können Standard-DAX-Funktionen verwenden, um die Standardabweichung eines Satzes von Werten zu berechnen. STDEV. S. Gibt die Standardabweichung von Werten in einer Spalte zurück, die eine Stichprobenpopulation repräsentiert. STDEV. P. Gibt die Standardabweichung von Werten in einer Spalte zurück, die die gesamte Population repräsentiert. STDEVX. S. Gibt die Standardabweichung eines Ausdrucks zurück, der über eine Tabelle ausgewertet wird, die eine Stichprobenpopulation repräsentiert. STDEVX. P. Gibt die Standardabweichung eines Ausdrucks zurück, der über eine Tabelle ausgewertet wird, die die gesamte Population repräsentiert. Der Median ist der Zahlenwert, der die höhere Hälfte einer Population von der unteren Hälfte trennt. Wenn es eine ungerade Anzahl von Zeilen gibt, ist der Median der Mittelwert (Sortierung der Zeilen vom niedrigsten Wert zum höchsten Wert). Wenn es eine gerade Anzahl von Zeilen gibt, ist es der Durchschnitt der beiden Mittelwerte. Die Formel ignoriert leere Werte, die nicht als Teil der Bevölkerung betrachtet werden. Das Ergebnis ist identisch mit der MEDIAN-Funktion in Excel. Abbildung 1 zeigt einen Vergleich zwischen dem von Excel zurückgegebenen Ergebnis und der entsprechenden DAX-Formel für die Medianberechnung. Abbildung 1 Beispiel für die mediane Berechnung in Excel und DAX. Der Modus ist der Wert, der am häufigsten in einem Satz von Daten erscheint. Die Formel ignoriert leere Werte, die nicht als Teil der Bevölkerung betrachtet werden. Das Ergebnis ist identisch mit den Funktionen MODE und MODE. SNGL in Excel, die nur den Minimalwert zurückgeben, wenn es mehrere Modi in der Menge der betrachteten Werte gibt. Die Excel-Funktion MODE. MULT würde alle Modi zurückgeben, aber man kann sie nicht als Maß im DAX implementieren. Abbildung 2 vergleicht das von Excel zurückgegebene Ergebnis mit der entsprechenden DAX-Formel für die Modusberechnung. Abbildung 2 Beispiel der Modusberechnung in Excel und DAX. Percentile Das Perzentil ist der Wert, unter dem ein bestimmter Prozentsatz der Werte in einer Gruppe fällt. Die Formel ignoriert leere Werte, die nicht als Teil der Bevölkerung betrachtet werden. Die Berechnung im DAX erfordert mehrere Schritte, die im Abschnitt "Vollständige Muster" beschrieben sind, in dem gezeigt wird, wie die gleichen Ergebnisse der Excel-Funktionen PERCENTILE, PERCENTILE. INC und PERCENTILE. EXC erhalten werden. Die Quartile sind drei Punkte, die einen Satz von Werten in vier gleiche Gruppen aufteilen, wobei jede Gruppe ein Viertel der Daten umfasst. Sie können die Quartile mit dem Percentile-Muster nach diesen Korrespondenzen berechnen: Erster Quartil-Unterquartil 25. Perzentil Zweiter Quartil-Median 50. Perzentil Dritter Quartil-Oberquartil 75. Perzentil Komplettes Muster Ein paar statistische Berechnungen haben eine längere Beschreibung des vollständigen Musters, weil Vielleicht haben Sie je nach Datenmodell und anderen Anforderungen unterschiedliche Implementierungen. Moving Average Normalerweise beurteilen Sie den gleitenden Durchschnitt, indem Sie auf den Tag Granularitätsniveau verweisen. Die allgemeine Vorlage der folgenden Formel hat diese Markierungen: ltnumberofdaysgt ist die Anzahl der Tage für den gleitenden Durchschnitt. Ltdatecolumngt ist die Datumssäule der Datumstabelle, wenn Sie eine oder die Datumssäule der Tabelle enthalten, die Werte enthält, wenn es keine separate Datumstabelle gibt. Ltmeasuregt ist die Maßnahme, um den gleitenden Durchschnitt zu berechnen. Das einfachste Muster nutzt die AVERAGEX-Funktion im DAX, die automatisch nur die Tage berücksichtigt, für die es einen Wert gibt. Alternativ können Sie die folgende Vorlage in Datenmodellen ohne Datumstabelle und mit einer Maßnahme, die aggregiert werden kann (zB SUM), über den gesamten betrachteten Zeitraum verwenden. Die vorherige Formel betrachtet einen Tag ohne entsprechende Daten als Maß, der 0 Wert hat. Dies kann nur geschehen, wenn Sie eine separate Datumstabelle haben, die Tage enthalten kann, für die es keine entsprechenden Transaktionen gibt. Sie können den Nenner für den Durchschnitt nur mit der Anzahl der Tage festlegen, für die es Transaktionen gibt, die das folgende Muster verwenden, wobei: ltfacttablegt die Tabelle ist, die sich auf die Datumstabelle bezieht und die von der Maßnahme berechneten Werte enthält. Sie können die DATESBETWEEN - oder DATESINPERIOD-Funktionen anstelle von FILTER verwenden, aber diese funktionieren nur in einer regulären Datumstabelle, während Sie das oben beschriebene Muster auch auf nicht reguläre Datumstabellen und auf Modelle mit einer Datumstabelle anwenden können. Betrachten wir zum Beispiel die verschiedenen Ergebnisse, die durch die beiden folgenden Maßnahmen hervorgerufen wurden. In Abbildung 3 können Sie sehen, dass es keine Verkäufe am 11. September 2005 gibt. Dieses Datum ist jedoch in der Date-Tabelle enthalten. Es gibt also 7 Tage (vom 11. September bis 17. September), die nur 6 Tage mit Daten haben. Abbildung 3 Beispiel für eine gleitende durchschnittliche Berechnung unter Berücksichtigung und ignorierte Daten ohne Umsatz. Die Maßnahme Moving Average 7 Tage hat eine niedrigere Zahl zwischen 11. September und 17. September, weil es den 11. September als Tag mit 0 Verkäufen berücksichtigt. Wenn du Tage ohne Verkauf ignorieren möchtest, dann benutze die Maßnahme Moving Average 7 Days No Zero. Dies könnte der richtige Ansatz sein, wenn Sie eine komplette Datumstabelle haben, aber Sie möchten Tage ohne Transaktionen ignorieren. Mit der Moving Average 7 Days Formel ist das Ergebnis korrekt, da AVERAGEX automatisch nur nicht leere Werte berücksichtigt. Denken Sie daran, dass Sie die Leistung eines gleitenden Durchschnitts verbessern könnten, indem Sie den Wert in einer berechneten Spalte einer Tabelle mit der gewünschten Granularität wie Datum oder Datum und Produkt beibehalten. Der dynamische Berechnungsansatz mit einer Maßnahme bietet jedoch die Möglichkeit, einen Parameter für die Anzahl der Tage des gleitenden Durchschnitts zu verwenden (z. B. ersetzen ltnumberofdaysgt mit einer Maßnahme, die das Parameter-Tabellenmuster implementiert). Der Median entspricht dem 50. Perzentil, das man mit dem Percentile-Muster berechnen kann. Das mediane Muster erlaubt es Ihnen jedoch, die Medianberechnung mit einer einzigen Maßnahme zu optimieren und zu vereinfachen, anstatt der verschiedenen Maßnahmen, die das Percentile-Muster benötigt. Sie können diesen Ansatz verwenden, wenn Sie den Median für Werte berechnen, die in ltvaluecolumngt enthalten sind, wie unten gezeigt: Um die Leistung zu verbessern, möchten Sie vielleicht den Wert einer Maßnahme in einer berechneten Spalte beibehalten, wenn Sie den Median für die Ergebnisse erhalten möchten Eine Maßnahme im Datenmodell. Bevor Sie diese Optimierung durchführen, sollten Sie die MedianX-Berechnung auf der Grundlage der folgenden Vorlage implementieren, indem Sie diese Markierungen verwenden: ltgranularitytablegt ist die Tabelle, die die Granularität der Berechnung definiert. Zum Beispiel könnte es die Date-Tabelle sein, wenn man den Median einer auf dem Tagesniveau berechneten Maßnahme berechnen möchte, oder es könnte VALUES (8216DateYearMonth) sein, wenn man den Median einer auf dem Monatsniveau berechneten Maßnahme berechnen möchte. Ltmeasuregt ist die Maßnahme, um für jede Zeile von ltrancityitytablegt für die Medianberechnung zu berechnen. Ltmeasuretablegt ist die Tabelle mit Daten, die von ltmeasuregt verwendet werden. Zum Beispiel, wenn das ltgranularitytablegt eine Dimension wie 8216Date8217 ist, dann wird das ltmeasuretablegt 8216Internet Sales8217 mit der Internet-Verkaufsmenge-Spalte summiert durch die Internet Total Sales-Maßnahme. Zum Beispiel können Sie den Median des Internet Total Sales für alle Kunden in Adventure Works wie folgt schreiben: Tipp Das folgende Muster: wird verwendet, um Zeilen aus ltgranularitytablegt zu entfernen, die keine entsprechenden Daten in der aktuellen Auswahl haben. Es ist ein schnellerer Weg als die Verwendung des folgenden Ausdrucks: Allerdings können Sie den gesamten CALCULATETABLE Ausdruck mit nur ltgranularitytablegt ersetzen, wenn Sie leere Werte des ltmeasuregt als 0 betrachten möchten. Die Leistung der MedianX Formel hängt von der Anzahl der Zeilen in der Tisch iteriert und auf die Komplexität der Maßnahme. Wenn die Leistung schlecht ist, können Sie das ltmeasuregt-Ergebnis in einer berechneten Spalte des lttablegt bestehen, aber dies wird die Fähigkeit entfernen, Filter auf die Medianberechnung zur Abfragezeit anzuwenden. Percentile Excel hat zwei verschiedene Implementierungen der Perzentilberechnung mit drei Funktionen: PERCENTILE, PERCENTILE. INC und PERCENTILE. EXC. Sie alle kehren das K-te Perzentil der Werte zurück, wobei K im Bereich 0 bis 1 liegt. Der Unterschied ist, dass PERCENTILE und PERCENTILE. INC K als Inklusivbereich betrachten, während PERCENTILE. EXC den K-Bereich 0 bis 1 als exklusiv betrachtet . Alle diese Funktionen und ihre DAX-Implementierungen erhalten einen Perzentilwert als Parameter, den wir K. ltKgt-Perzentilwert im Bereich 0 bis 1 nennen. Die beiden DAX-Implementierungen von Perzentil erfordern ein paar Maßnahmen, die ähnlich, aber unterschiedlich genug sind Zwei verschiedene Formeln. Die in jedem Muster definierten Maßnahmen sind: KPerc. Der Perzentilwert entspricht ltKgt. PercPos Die Position des Perzentils im sortierten Satz von Werten. ValueLow Der Wert unterhalb der Perzentilposition. ValueHigh. Der Wert über der Perzentilposition. Percentile Die endgültige Berechnung des Perzentils. Sie benötigen die ValueLow - und ValueHigh-Maßnahmen, falls der PercPos einen Dezimalteil enthält, denn dann müssen Sie zwischen ValueLow und ValueHigh interpolieren, um den korrekten Perzentilwert zurückzugeben. Abbildung 4 zeigt ein Beispiel für die Berechnungen, die mit Excel - und DAX-Formeln erstellt wurden, wobei beide Algorithmen von Perzentil (einschließlich und exklusiv) verwendet werden. Abbildung 4 Perzentile Berechnungen mit Excel-Formeln und der entsprechenden DAX-Berechnung. In den folgenden Abschnitten führen die Percentile-Formeln die Berechnung auf Werte aus, die in einer Tabellenspalte DataValue gespeichert sind, während die PercentileX-Formeln die Berechnung auf Werte ausführen, die von einer bei einer gegebenen Granularität berechneten Größe zurückgegeben werden. Percentile Inclusive Die Percentile Inclusive Implementierung ist die folgende. Percentile Exclusive Die Percentile Exclusive Implementierung ist die folgende. PercentileX Inclusive Die PercentileX Inclusive Implementierung basiert auf der folgenden Vorlage, wobei diese Marker verwendet werden: ltgranularitytablegt ist die Tabelle, die die Granularität der Berechnung definiert. Zum Beispiel könnte es die Datumstabelle sein, wenn Sie das Perzentil einer Maßnahme am Tagestag berechnen möchten, oder es könnte VALUES (8216DateYearMonth) sein, wenn Sie das Perzentil einer Maßnahme auf der Monatsstufe berechnen möchten. Ltmeasuregt ist die Maßnahme, um für jede Zeile von ltrancityitytablegt für die Perzentilberechnung zu berechnen. Ltmeasuretablegt ist die Tabelle mit Daten, die von ltmeasuregt verwendet werden. Wenn zum Beispiel die ltgranularitytablegt eine Dimension wie 8216Date, 8217 ist, dann wird das ltmeasuretablegt 8216Sales8217 sein, das die Summenspalte enthält, die durch das Gesamtmengenmaß summiert wird. Beispielsweise können Sie den PercentileXInc des Gesamtbetrags der Verkäufe für alle Termine in der Datentabelle wie folgt schreiben: PercentileX Exclusive Die PercentileX Exclusive Implementierung basiert auf der folgenden Vorlage und verwendet dieselben Marker, die in PercentileX Inclusive verwendet werden Kann die PercentileXExc des Gesamtbetrags der Verkäufe für alle Termine in der Datumstabelle wie folgt schreiben: Halten Sie mich über die bevorstehenden Muster (Newsletter) informiert. Deaktivieren Sie, um die Datei frei herunterzuladen. Veröffentlicht am 17. März 2014 von

No comments:

Post a Comment