Ab Release 6.08 des SAS-Systems kann mit PROC EXPAND in SAS / ETS eine Vielzahl von Datentransformationen realisiert werden. Diese Transformationen umfassen: Leitungen, Verzögerungen, gewichtete und ungewichtete gleitende Mittelwerte, bewegte Summen und kumulative Summen, um nur einige zu nennen. Viele neue Transformationen wurden in Release 6.12 hinzugefügt, einschließlich getrennter Spezifikationen für zentrierte und rückwärts gerichtete Durchschnitte. Diese neuen Transformationen machten es erforderlich, die Syntax für einige der vor Release 6.12 unterstützten Transformationen zu ändern. Nachfolgend sind Beispiele für die Angabe der Syntax für zentrierte und rückwärts gerichtete Durchschnitte nach Release 6.11 und früher und Release 6.12 und später aufgeführt. PROC EXPAND kann entweder einen zentrierten gleitenden Durchschnitt oder einen rückwärts gleitenden Durchschnitt berechnen. Ein 5-Perioden-zentrierter gleitender Durchschnitt wird durch Mittelung von insgesamt 5 aufeinanderfolgenden Werten der Serie (der aktuelle Periodenwert zusätzlich zu den zwei unmittelbar vorhergehenden Werten und zwei Werten unmittelbar nach dem aktuellen Wert) berechnet. Ein 5-Perioden-Rückwärts-Mittelwert wird berechnet, indem der aktuelle Periodenwert mit den Werten aus den 4 unmittelbar vorhergehenden Perioden gemittelt wird. Die folgende Syntax veranschaulicht, wie die TRANSFORM (MOVAVE n) Spezifikation verwendet wird, um einen 5-Perioden-zentrierten gleitenden Durchschnitt mit Release 6.11 oder früher zu berechnen: Um einen n-Perioden-Rückwärts-Durchschnitt mit Release 6.11 oder früher zu berechnen, verwenden Sie die TRANSFORM (MOVAVE N LAG k) Spezifikation, wobei k (n-1) / 2 wenn n ungerade ist oder k (n-2) / 2, wenn n gerade ist. In der folgenden Syntax wird beispielsweise veranschaulicht, wie Sie einen 5-Perioden-Rückwärtsbewegungsdurchschnitt mit Release 6.11 oder früher berechnen: Die folgende Syntax veranschaulicht, wie die TRANSFORM (CMOVAVE n) Spezifikation verwendet wird, um einen 5-Perioden-zentrierten gleitenden Durchschnitt mit Release 6.12 zu berechnen Später: Die folgende ähnliche Syntax veranschaulicht, wie die TRANSFORM (MOVAVE n) Spezifikation verwendet wird, um einen 5-Perioden-Rückwärts-Durchschnitt mit Release 6.12 oder höher zu berechnen: Weitere Informationen finden Sie unter Transformationsoperationen im EXPAND-Kapitel des SAS / ETS-Benutzerhandbuchs . Wenn Sie keinen Zugriff auf SAS / ETS haben, können Sie einen gleitenden Durchschnitt im DATA-Schritt berechnen, wie in diesem Beispielprogramm veranschaulicht. Betriebssystem und Release InformationData Set Optionen nennt den Eingabedatensatz. Wenn die DATA-Option weggelassen wird, wird der zuletzt erstellte SAS-Datensatz verwendet. Die die resultierenden Zeitreihen enthält. Wenn OUT nicht angegeben ist, wird der Datensatz mit der DATA n-Konvention benannt. Details finden Sie im Abschnitt OUT Data Set. Bezeichnet einen Ausgangsdatensatz, der die Koeffizienten der Splinekurven enthält, die zu der Eingangsreihe passen. Wenn die Option OUTEST nicht angegeben ist, werden die Spline-Koeffizienten nicht ausgegeben. Details finden Sie im Abschnitt OUTEST Data Set. Optionen, die Eingangs - und Ausgangsfrequenzen definieren, steuern die Ausrichtung von SAS-Daten, die verwendet werden, um Ausgabebeobachtungen zu identifizieren. Die ALIGN-Option ermöglicht folgende Werte: BEGINNING BEG B, MIDDLE MID M und ENDING END E. BEGINNING ist die Voreinstellung. Gibt die Anzahl der aus den Eingabebeobachtungen zu erstellenden Ausgangsbeobachtungen an. FACTOR n gibt an, daß für jede Eingangsbeobachtung n Ausgangsbeobachtungen erzeugt werden sollen. FACTOR (n. M) gibt an, dass n Ausgangssignale für jede Gruppe von m Eingangsbeobachtungen erzeugt werden sollen. FACTOR n ist der gleiche wie FACTOR (Nummer 1). In der Option FACTOR () kann ein Komma statt eines Doppelpunkts verwendet werden, oder das Trennzeichen kann weggelassen werden. Somit ist FACTOR (n. M) oder FACTOR (n m) gleich FACTOR (n. M). Die Option FACTOR kann nicht verwendet werden, wenn die Option TO verwendet wird. Der Standardwert ist FACTOR (1: 1). Weitere Informationen finden Sie im Abschnitt Frequenzumwandlung. Spezifiziert das Zeitintervall zwischen den Beobachtungen im Eingangsdatensatz. Beispiele für FROM-Werte sind YEAR, QTR, MONTH, DAY und HOUR. Eine vollständige Beschreibung und Beispiele für Intervallspezifikationen finden Sie in Kapitel 4, Datumsintervalle, Formate und Funktionen. Gibt das Zeitintervall zwischen den Beobachtungen im Ausgangsdatensatz an. Standardmäßig wird das TO-Intervall aus der Kombination der FROM - und der FACTOR-Werte erzeugt oder so eingestellt, dass es mit dem FROM-Wert identisch ist, wenn FACTOR nicht angegeben ist. Eine Beschreibung der Intervallspezifikationen finden Sie in Kapitel 4, Datumsintervalle, Formate und Funktionen. Optionen zum Steuern der Interpolation legt fest, daß fehlende Werte am Anfang oder Ende der Eingangsserie durch Werte ersetzt werden, die durch eine lineare Extrapolation der Interpolationskurve erzeugt werden, die zu der Eingangsserie passen. Weitere Informationen finden Sie im Abschnitt Extrapolation weiter unten in diesem Kapitel. PROC EXPAND vermeidet das Extrapolieren von Werten über den ersten oder letzten Eingabewert hinaus für eine Serie und interpoliert nur Werte innerhalb des Bereichs der nicht veränderten Eingabewerte. Beachten Sie, dass die extrapolierten Werte sind oft nicht sehr genau und für die SPLINE-Methode die EXTRAPOLATE Option Ergebnisse können sehr unvernünftig sein. Die EXTRAPOLATE-Option wird nur selten verwendet. METHODS-Option METHODSPLINE (constraint lt. Constraint) gibt die Methode an, mit der die Datenreihe konvertiert wird. Die unterstützten Methoden sind SPLINE, JOIN, STEP, AGGREGATE und NONE. Die in der PROC EXPAND-Anweisung angegebene METHOD-Option kann für bestimmte Serien durch die Option METHOD in der Anweisung CONVERT überschrieben werden. Der Standardwert ist METHODSPLINE. Die Constraint-Spezifikationen für METHODSPLINE können die Werte NOTAKNOT (Standardwert), NATURAL, SLOPE haben. Und / oder den CURVATURE-Wert. Weitere Informationen zu diesen Methoden finden Sie im Abschnitt Konvertierungsmethoden. Gibt die Beobachtungseigenschaften der Eingangszeitreihen und der Ausgangsreihen an. Die Angabe der Option OBSERVED in der PROC EXPAND-Anweisung setzt den Standardwert OBSERVED für nachfolgende CONVERT-Anweisungen. Weitere Informationen finden Sie in den Abschnitten CONVERT-Anweisung und OBSERVED-Option weiter hinten in diesem Kapitel. Der Standardwert ist OBSERVEDBEGINNING. Optionen zum Steuern der grafischen Ausgabe gibt die gewünschte grafische Ausgabe an. Wenn die Option PLOTS verwendet wird, wird die angegebene grafische Ausgabe für jede durch eine CONVERT-Anweisung angegebene Ausgangsvariable erzeugt. Standardmäßig erzeugt die EXPAND-Prozedur keine grafische Ausgabe. Folgende PLOTS-Optionen stehen zur Verfügung. Erforderliche Optionen werden bei Bedarf in Klammern in den Plotbeschreibungen aufgelistet. (TRANSFORMIN-Option) zeichnet die Eingangsserien und die transformierte Eingangsserie auf einem Diagramm mit zwei Y-Achsen auf. Die Eingangs - und die transformierte Serie sind auf separaten Maßstäben dargestellt. (Option TRANSFORMIN) zeichnet sowohl die Eingangsserie als auch die transformierte Eingangsserie auf einer Handlung mit einer Y-Achse auf. Die Eingangs - und die transformierte Reihe sind im gleichen Maßstab dargestellt. (TRANSFORMIN-Option) zeichnet die konvertierte Serie nach Eingangstransformationen und Interpolation auf, bevor jedoch TRANSFORMOUT-Transformationen angewendet werden (METHOD-Option), zeichnet die transformierte Ausgangsserie (Option TRANSFORMOUT) sowohl die konvertierte Serie als auch die transformierte Ausgangsserie auf einem Diagramm mit zwei Y auf Achse. Die konvertierten und transformierten Ausgangsserien sind auf separaten Maßstäben dargestellt. (Option TRANSFORMOUT) zeichnet sowohl die konvertierte Serie als auch die transformierte Ausgangsserie auf einem Diagramm mit einer Y-Achse auf. Die konvertierten und transformierten Ausgangsserien sind im gleichen Maßstab dargestellt. (TRANSFORMOUT-Option) erstellt die im OUT-Datensatz gespeicherte Serie (Kombination von TRANSFORMIN-, METHOD - und TRANFORMOUT-Optionen) alle Plots mit Ausnahme der Joint - und Cross-Plots. (Das gleiche gilt für PLOTS (INPUT TRANFORMIN CONVERTED TRANSFORMOUT).) Die Option PLOTS erzeugt Ergebnisse, die jeder CONVERT-Anweisungsausgangsvariable und den in der PLOTS-Spezifikation aufgeführten Optionen zugeordnet sind. Siehe den Abschnitt PLOTS Option Details für weitere Informationen. Im ein SAS Anfänger und Im neugierig, wenn die folgende Aufgabe kann viel einfacher, wie es derzeit in meinem Kopf durchgeführt werden. Ich habe die folgenden (vereinfachten) Metadaten in einer Tabelle namens userdatemoney: Benutzer - Datum - Geld mit verschiedenen Benutzern und Daten für jeden Kalendertag (für die letzten 4 Jahre). Die Daten werden von User ASC und Date ASC geordnet, Beispieldaten sieht so aus: Ich möchte nun einen fünftägigen gleitenden Durchschnitt für das Geld berechnen. Ich begann mit der beliebten apprach mit der Funktion lag () wie folgt: Das Problem mit dieser Methode tritt auf, wenn der Datenschritt in einen neuen Benutzer läuft. Aron würde einige verzögerte Werte von Anna bekommen, was natürlich nicht passieren sollte. Nun meine Frage: Ich bin ziemlich sicher, dass Sie den Benutzer wechseln können, indem Sie einige zusätzliche Felder wie laggeduser und durch Rücksetzen der N, Summe und Mean-Variablen, wenn Sie einen solchen Schalter bemerken, aber: Kann dies in einer einfacheren Weise getan werden Vielleicht mit dem BY-Klausel in irgendeiner Weise Vielen Dank für Ihre Ideen und Hilfe Ich denke, der einfachste Weg ist, um PROC EXPAND verwenden: Und wie in Johns Kommentar erwähnt, ist es wichtig, über fehlende Werte (und auch über Anfang und Ende Beobachtungen) zu erinnern. Ive hinzugefügt SETMISS-Option auf den Code, da Sie klar, dass Sie zerofy fehlende Werte wollen, nicht ignorieren (Standard-MOVAVE-Verhalten). Und wenn Sie die ersten 4 Beobachtungen für jeden Benutzer ausschließen möchten (da sie nicht genug Vorgeschichte haben, um den gleitenden Durchschnitt 5 zu berechnen), können Sie die Option TRIMLEFT 4 innerhalb von TRANSFORMOUT () verwenden. Beantwortet Dec 3 13 bei 15:29
No comments:
Post a Comment