LAG-Funktion Die Grundlagen Wenn die LAG-Funktion einen Wert an eine noch nicht zugewiesene Zeichenvariable zurückgibt, wird der Variablen standardmäßig eine Länge von 200 zugewiesen. Die LAG-Funktionen LAG1, LAG2. LAG n Rückgabewerte aus einer Warteschlange. LAG1 kann auch als LAG geschrieben werden. Eine LAG-n-Funktion speichert einen Wert in einer Warteschlange und gibt einen zuvor in dieser Warteschlange gespeicherten Wert zurück. Jedes Auftreten einer LAG n-Funktion in einem Programm erzeugt eine eigene Warteschlange von Werten. Die Warteschlange für jedes Auftreten von LAG n wird mit n fehlenden Werten initialisiert, wobei n die Länge der Warteschlange ist (z. B. wird eine LAG2-Warteschlange mit zwei fehlenden Werten initialisiert). Wenn ein Auftreten von LAG n ausgeführt wird, wird der Wert an der Spitze seiner Warteschlange entfernt und zurückgegeben, die verbleibenden Werte werden nach oben verschoben, und der neue Wert des Arguments wird am unteren Ende der Warteschlange platziert. Daher werden fehlende Werte für die ersten n Ausführungen jedes Auftretens von LAG n zurückgegeben. Wonach die verzögerten Werte des Arguments beginnen zu erscheinen. Hinweis: Das Speichern von Werten am unteren Rand der Warteschlange und das Zurückgeben von Werten aus dem oberen Teil der Warteschlange erfolgt nur, wenn die Funktion ausgeführt wird. Ein Vorkommen der LAG n-Funktion, die bedingt ausgeführt wird, speichert und gibt Werte nur aus den Beobachtungen zurück, für die die Bedingung erfüllt ist. Wenn das Argument von LAG n ein Arrayname ist, wird eine separate Warteschlange für jede Variable im Array verwaltet. Speichergrenze für die LAG-Funktion Wenn die LAG-Funktion kompiliert wird, reserviert SAS Speicher in einer Warteschlange, um die Werte der Variablen zu halten, die in der LAG-Funktion aufgeführt ist. Wenn beispielsweise die Variable in der Funktion LAG100 (x) numerisch mit einer Länge von 8 Bytes ist, dann ist der benötigte Speicher 8 mal 100 oder 800 Byte. Daher basiert der Speichergrenzwert für die LAG-Funktion auf dem Speicher, den SAS zuteilt, der mit unterschiedlichen Betriebsumgebungen variiert. Beispiel 1: Erzeugung von zwei verzögerten Werten Das folgende Programm erzeugt für jede Beobachtung zwei verzögerte Werte. Ausgabe von zwei verzögerten Werten erzeugen LAG1 gibt einen fehlenden Wert und die Werte von X zurück (einmal verzögert). LAG2 liefert zwei fehlende Werte und die Werte von X (zweimal verzögert). Beispiel 2: Erzeugung mehrerer verzögerter Werte in BY-Gruppen Das folgende Beispiel zeigt, wie Sie bis zu drei verzögerte Werte innerhalb jeder BY-Gruppe generieren können. Ausgabe von drei gespeicherten Werten erzeugen Beispiel 3: Berechnung des verschiebenden Mittelwertes einer Variablen Nachfolgend ein Beispiel, das den gleitenden Durchschnitt einer Variablen in einem Datensatz berechnet. Ausgabe vom Berechnen des Moving Average einer Variablen Beispiel 4: Generieren einer Fibonacci-Sequenz von Zahlen Das folgende Beispiel erzeugt eine Fibonacci-Folge von Zahlen. Sie beginnen mit 0 und 1 und fügen dann die beiden vorherigen Fibonacci-Zahlen hinzu, um die nächste Fibonacci-Zahl zu generieren. SAS schreibt die folgende Ausgabe in das Protokoll: Beispiel 5: Verwendung von Ausdrücken für das LAG-Funktionsargument Das folgende Programm verwendet einen Ausdruck für den Wert des Arguments und erstellt einen Datensatz, der die Werte für X, Y und Z enthält Vorherige Werte des Ausdrucks und hebt den aktuellen Wert an. Ausgabe von der LAG-Funktion: Verwenden eines ExpressionComputational-Tools Analog hat DataFrame eine Methode cov, um paarweise Kovarianzen unter den Reihen im DataFrame zu berechnen, auch ohne NAnull-Werte. Angenommen, daß die fehlenden Daten zufällig fehlen, ergibt sich eine Abschätzung für die Kovarianzmatrix, die unbestimmt ist. Für viele Anwendungen ist diese Schätzung jedoch nicht akzeptabel, da die geschätzte Kovarianzmatrix nicht als positiv halbdefinit garantiert ist. Dies könnte zu geschätzten Korrelationen mit Absolutwerten führen, die größer als eins sind, undeine nicht-invertierbare Kovarianzmatrix. Siehe Schätzung von Kovarianzmatrizen für weitere Details. DataFrame. cov unterstützt auch ein optionales Schlüsselwort minperiods, das die erforderliche Mindestanzahl von Beobachtungen für jedes Spaltenpaar angibt, um ein gültiges Ergebnis zu haben. Die Gewichte, die in dem Fenster verwendet werden, werden durch das wintype Schlüsselwort spezifiziert. Die Liste der anerkannten Arten sind: boxcar triang blackman hamming bartlett parzen bohman blackmanharris nuttall barthann kaiser (muss beta) Gaußscher (benötigt std) generalgaussian (braucht Leistung, Breite) slepian (braucht Breite). Beachten Sie, dass das Boxcar-Fenster dem Mittelwert () entspricht. Für einige Fensterfunktionen müssen zusätzliche Parameter angegeben werden: Für. sum () mit einem Wintype. Erfolgt keine Normalisierung der Gewichte für das Fenster. Das Übergeben von benutzerdefinierten Gewichten von 1, 1, 1 ergibt ein anderes Ergebnis als Durchgehen von Gewichten von 2, 2, 2. zum Beispiel. Beim Übergeben eines Wintype anstelle der expliziten Spezifizierung der Gewichte sind die Gewichte bereits normalisiert, so dass das größte Gewicht 1 ist. Im Gegensatz dazu ist die Natur der & agr; () - Rechnung so, dass die Gewichte in Bezug aufeinander normalisiert werden. Gewichte von 1, 1, 1 und 2, 2, 2 ergeben das gleiche Ergebnis. Zeitbewusstes Rollen Neu in Version 0.19.0. Neu in Version 0.19.0 sind die Möglichkeit, einen Offset (oder Cabrio) in eine. rolling () - Methode zu überführen und haben es produzieren Fenster variabler Größe auf der Grundlage der übergebenen Zeitfenster. Zu jedem Zeitpunkt gehören dazu alle vorhergehenden Werte innerhalb der angegebenen Zeit delta. Dies kann insbesondere für einen nicht-regelmäßigen Zeitfrequenzindex nützlich sein. Dies ist ein regelmäßiger Frequenzindex. Mit einem Integer-Fenster-Parameter arbeitet, um über die Fenster-Frequenz rollen. Das Angeben eines Versatzes ermöglicht eine intuitivere Spezifikation der Rollfrequenz. Mit einem nicht-regulären, aber immer noch monotonen Index, rollt mit einem Integer-Fenster keine besondere Berechnung. Die Zeitspezifikation erzeugt variable Fenster für diese spärlichen Daten. Darüber hinaus erlauben wir nun einen optionalen Parameter, um eine Spalte (und nicht die Vorgabe des Index) in einem DataFrame anzugeben. Time-aware Rolling vs. Resampling Die Verwendung von. rolling () mit einem zeitbasierten Index ist vergleichbar mit dem Resampling. Sie betreiben und führen reduktive Operationen an zeitindizierten Pandabildungen durch. Bei Verwendung von. rolling () mit einem Offset. Der Versatz ist ein Zeit-Dreieck. Nehmen Sie ein nach hinten schauendes Fenster und aggregieren Sie alle Werte in diesem Fenster (einschließlich des Endpunkts, aber nicht des Startpunkts). Dies ist der neue Wert an diesem Punkt im Ergebnis. Dies sind Fenster mit variabler Größe im Zeitraum für jeden Punkt der Eingabe. Sie erhalten ein gleich großes Ergebnis wie die Eingabe. Bei Verwendung von. resample () mit einem Offset. Konstruieren Sie einen neuen Index, der die Frequenz des Offsets ist. Für jede Frequenz bin, Aggregat Punkte aus dem Eingang innerhalb eines Rückwärts-in-Zeit-Fenster, die in diesem bin fallen. Das Ergebnis dieser Aggregation ist die Ausgabe für diesen Frequenzpunkt. Die Fenster sind feste Größe im Frequenzraum. Ihr Ergebnis hat die Form einer regelmäßigen Frequenz zwischen dem minimalen und dem maximalen Wert des ursprünglichen Eingabeobjekts. Zusammenfassen. Rolling () ist eine zeitbasierte Fensteroperation, während. resample () eine frequenzbasierte Fensteroperation ist. Zentrieren von Windows Die Etiketten werden standardmäßig auf den rechten Rand des Fensters gesetzt, aber ein zentrales Schlüsselwort ist verfügbar, so dass die Beschriftungen in der Mitte festgelegt werden können. Binäre Fensterfunktionen cov () und corr () können die Bewegungsfensterstatistiken über zwei Serien oder eine beliebige Kombination von DataFrameSeries oder DataFrameDataFrame berechnen. Hier ist das Verhalten in jedem Fall: zwei Serien. Berechnen Sie die Statistik für die Paarung. DataFrameSeries. Berechnen Sie die Statistik für jede Spalte des DataFrame mit der übergebenen Reihe, sodass ein DataFrame zurückgegeben wird. DataFrameDataFrame. Berechnen Sie standardmäßig die Statistik für passende Spaltennamen und geben Sie ein DataFrame zurück. Wenn das Schlüsselwortargument pairwiseTrue übergeben wird, wird die Statistik für jedes Paar von Spalten berechnet, wobei ein Panel zurückgegeben wird, dessen Elemente die betreffenden Daten sind (siehe nächster Abschnitt). Computing rollen paarweise Kovarianzen und Korrelationen In der Finanzdatenanalyse und anderen Bereichen ist es üblich, Kovarianz und Korrelationsmatrizen für eine Sammlung von Zeitreihen zu berechnen. Oft interessiert man sich auch für Verschiebungsfensterkovarianz und Korrelationsmatrizen. Dies kann getan werden, indem das paarweise Schlüsselwortargument übergeben wird, was im Fall von DataFrame-Eingaben zu einem Panel führt, dessen Elemente die betreffenden Daten sind. Im Falle eines einzelnen DataFrame-Arguments kann das paarweise Argument sogar weggelassen werden: Fehlende Werte werden ignoriert und jeder Eintrag wird mit den paarweise vollständigen Beobachtungen berechnet. Bitte beachten Sie die Kovarianz-Abschnitt für die Vorbehalte in Verbindung mit dieser Methode der Berechnung von Kovarianz und Korrelation Matrizen. Abgesehen davon, dass sie keinen Fensterparameter haben, haben diese Funktionen dieselben Schnittstellen wie ihre. rolling-Pendants. Wie oben, sind die Parameter, die sie alle akzeptieren: minperiods. Schwelle von Nicht-Null-Datenpunkten erfordern. Standardwerte für die Berechnung der Statistik. Es werden keine NaNs ausgegeben, sobald minperiods Nicht-Null-Datenpunkte gesehen wurden. Center. Boolean, ob die Beschriftungen in der Mitte gesetzt werden sollen (default ist False) Die Ausgabe der Methoden. rolling und. expanding gibt kein NaN zurück, wenn mindestens minperiods Nicht-Nullwerte im aktuellen Fenster vorhanden sind. Dies unterscheidet sich von cumsum. Cumprod Cummax Und cummin. Die NaN in dem Ausgang zurückgeben, wo immer ein NaN in dem Eingang angetroffen wird. Eine expandierende Fensterstatistik ist stabiler (und weniger reagierend) als ihr Rollfenster-Gegenstück, da die zunehmende Fenstergröße die relative Auswirkung eines einzelnen Datenpunkts verringert. Als Beispiel ist hier die mittlere () Ausgabe für den vorherigen Zeitreihendatensatz: Exponentiell gewichtete Fenster Ein verwandter Satz von Funktionen sind exponentiell gewichtete Versionen von mehreren der obigen Statistiken. Eine ähnliche Schnittstelle zu. rolling und. expanding wird über die. ewm-Methode aufgerufen, um ein EWM-Objekt zu empfangen. Es werden eine Anzahl expandierender EW-Methoden (exponentiell gewichtet) bereitgestellt:
No comments:
Post a Comment