Ich schloss einen Screenshot ein, um zu helfen, mein Problem zu klären: Im, der versucht, irgendeine Art gleitender Durchschnitt und bewegliche Standardabweichung zu berechnen. Die Sache ist, ich möchte die Variationskoeffizienten (stdevavg) für den aktuellen Wert berechnen. Normalerweise geschieht dies durch die Berechnung der stdev und avg für die letzten 5 Jahre. Aber manchmal gibt es Beobachtungen in meiner Datenbank, für die ich nicht über die Informationen der letzten 5 Jahre (vielleicht nur 3, 2 etc). Thats, warum ich einen Code wünschen, der den avg und stdev berechnet, selbst wenn es keine Informationen für die ganzen 5 Jahre gibt. Auch, wie Sie in den Beobachtungen zu sehen, manchmal habe ich Informationen über mehr als 5 Jahren, wenn dies der Fall ist, brauche ich irgendeine Art von gleitenden Durchschnitt, der mir erlaubt, die avg und stdev für die letzten 5 Jahre zu berechnen. Also, wenn ein Unternehmen hat Informationen für 7 Jahre Ich brauche eine Art von Code, der die avg und stdev für berechnen wird, sagen wir, 1997 (1991-1996), 1998 (von 1992-1997) und 1999 (1993-1998). Wie im nicht sehr vertraut mit Sas-Befehle sollte es (sehr sehr grob) wie: Oder so ähnlich, ich habe wirklich keine Ahnung, Im gonna versuchen und herauszufinden, aber es lohnt sich, es zu posten, wenn ich es nicht finden. Beginning in Release 6.08 des SAS-Systems kann PROC EXPAND in der SASETS-Software verwendet werden, um eine Vielzahl von Datenumsetzungen durchzuführen. 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 ein 5-Perioden-Rückwärtsbewegungsdurchschnitt mit Release 6.11 oder früher berechnet wird. Die folgende Syntax veranschaulicht, wie die TRANSFORM (CMOVAVE n) - Spezifikation verwendet wird, um einen 5-Perioden-zentrierten gleitenden Durchschnitt mit Release 6.12 oder Später: Die folgende ähnliche Syntax veranschaulicht, wie die TRANSFORM-Spezifikation (MOVAVE n) verwendet wird, um einen 5-Perioden-Rückwärtsbewegungsdurchschnitt mit Release 6.12 oder höher zu berechnen: Weitere Informationen finden Sie unter Transformationsoperationen im EXPAND-Kapitel des SASETS-Benutzerhandbuchs. Wenn Sie keinen Zugriff auf SASETS haben, können Sie einen gleitenden Durchschnitt im DATA-Schritt berechnen, wie in diesem Beispielprogramm veranschaulicht. Betriebssystem und Freigabeinformationen Berechnen Sie einen gleitenden Durchschnitt in SAS Dieser Beitrag wurde freundlich von der DO-Schleife beigetragen - gehen Sie dort zu kommentieren und den vollständigen Beitrag zu lesen. Eine gemeinsame Frage zu SAS Diskussionsforen ist, wie man einen gleitenden Durchschnitt in SAS berechnet. Dieser Artikel beschreibt die Verwendung von PROC EXPAND und enthält Verknüpfungen zu Artikeln, die den DATA-Schritt oder Makros verwenden, um Bewegungsdurchschnitte in SAS zu berechnen. In einem früheren Beitrag, erklärte ich, wie man einen gleitenden Durchschnitt zu definieren und ein Beispiel, das hier gezeigt wird. Die Grafik ist ein Streudiagramm des monatlichen Schlusskurses für IBM-Aktien über einen Zeitraum von 20 Jahren. Die drei Kurven sind gleitende Mittelwerte. Die 8220MA8221-Kurve ist ein Fünfpunkt - (nachlaufender) gleitender Durchschnitt. Die 8220WMA8221-Kurve ist ein gewichteter gleitender Durchschnitt mit den Gewichten 1 bis 5. (Bei der Berechnung des gewichteten gleitenden Durchschnitts zum Zeitpunkt t hat der Wert yt das Gewicht 5, der Wert yt-1 das Gewicht 4, der Wert yt-2 hat Gewicht 3, usw.) Die 8220EWMA8221-Kurve ist ein exponentiell gewichteter gleitender Durchschnitt mit Glättungsfaktor alpha 0,3. Dieser Artikel zeigt, wie die EXPAND-Prozedur in SASETS-Software verwendet wird, um einen einfachen gleitenden Durchschnitt, einen gewichteten gleitenden Durchschnitt und einen exponentiell gewichteten gleitenden Durchschnitt in SAS zu berechnen. Für einen Überblick über PROC EXPAND und seine vielen Fähigkeiten empfehle ich, das kurze Papier 8220Stupid Human Tricks mit PROC EXPAND8221 von David Cassell (2010) zu lesen. Da nicht jeder SAS-Kunde eine Lizenz für SASETS-Software hat, gibt es Links am Ende dieses Artikels, die zeigen, wie man einen einfachen gleitenden Durchschnitt in SAS mit dem DATA-Schritt berechnen kann. Erstellen einer beispielhaften Zeitreihe Bevor Sie einen gleitenden Durchschnitt in SAS berechnen können, benötigen Sie Daten. Der folgende Aufruf von PROC SORT erstellt eine Beispielzeitreihe mit 233 Beobachtungen. Es fehlen keine Werte. Die Daten werden nach der Zeitvariablen T sortiert. Die Variable Y enthält den monatlichen Schlusskurs der IBM-Aktie während eines Zeitraums von 20 Jahren. Berechnen Sie einen gleitenden Durchschnitt in SAS mithilfe von PROC EXPAND PROC EXPAND berechnet viele Arten von gleitenden Durchschnittswerten und anderen rollenden Statistiken, wie z. B. Standardabweichungen, Korrelationen und Summensummen von Quadraten. In der Prozedur identifiziert die ID-Anweisung die Zeitvariable T. Die Daten sollten nach der ID-Variablen sortiert werden. Die CONVERT-Anweisung gibt die Namen der Ein - und Ausgabevariablen an. Die Option TRANSFORMOUT gibt die Methode und die Parameter an, mit denen die rollierende Statistik berechnet wird. Das Beispiel verwendet drei CONVERT-Anweisungen: Der erste gibt an, dass MA eine Ausgangsgröße ist, die als (rückwärts) gleitender Durchschnitt berechnet wird, der fünf Datenwerte (k 5) verwendet. Die zweite CONVERT-Anweisung gibt an, dass WMA eine Ausgabevariable ist, die ein gewichteter gleitender Durchschnitt ist. Die Gewichte werden automatisch durch die Prozedur genormt, so dass die Formel WMA (t) ist. Die dritte CONVERT-Anweisung gibt an, dass EWMA die WMA (t) (5 yt 4y t-1 3y t-2 2 y t-3 1 y t-4) ist Ist eine Ausgangsgröße, die ein exponentiell gewichteter gleitender Durchschnitt mit dem Parameter 0,3 ist. Beachten Sie die METHODNONE-Option in der PROC EXPAND-Anweisung. Die EXPAND-Prozedur passt standardmäßig kubische Spline-Kurven zu den nicht-ignorierenden Werten von Variablen. Die METHODNONE-Optionen stellen sicher, dass die Rohdatenpunkte verwendet werden, um die gleitenden Mittelwerte und nicht die interpolierten Werte zu berechnen. Visualisieren von Bewegungsdurchschnitten Eine wichtige Verwendung eines gleitenden Mittelwertes besteht darin, eine Kurve auf einem Streudiagramm der Rohdaten zu überlagern. So können Sie kurzfristige Trends in den Daten visualisieren. Der folgende Aufruf von PROC SGPOT erstellt die Grafik am Anfang dieses Artikels: Um diesen Artikel so einfach wie möglich zu halten, habe ich nicht diskutiert, wie fehlende Daten bei der Berechnung der gleitenden Durchschnitte zu behandeln. Weitere Informationen zu den fehlenden Daten finden Sie in der Dokumentation zu PROC EXPAND. Mit der Option METHOD können Sie insbesondere festlegen, wie fehlende Werte interpoliert werden sollen. Sie können auch Transformationsoptionen verwenden, um zu steuern, wie gleitende Durchschnittswerte für die ersten Datenpunkte definiert werden. Erstellen Sie einen gleitenden Durchschnitt in SAS, indem Sie den DATA-Schritt verwenden Wenn Sie keine SASETS-Software haben, zeigen die folgenden Referenzen, wie Sie den SAS-DATA-Schritt verwenden, um einfache gleitende Mittelwerte mit Hilfe der LAG-Funktion zu berechnen. Die SAS Knowledge Base bietet den Artikel 8220Bechnen Sie den gleitenden Durchschnitt einer Variablen.8221 Premal Vora (2008) vergleicht den DATA-Schritt mit dem PROC EXPAND-Code im Papier 8220Easy Rolling Statistics mit PROC EXPAND.8221 Ron Cody enthält ein SAS-Makro in mehreren seiner Bücher. Zum Beispiel, Cody8217s Sammlung von beliebten SAS-Programmierung Aufgaben und wie man sie anpackt, bietet ein Makro namens movingAve. Sie können das Makro als Teil des 8220Example-Codes und Data8221 für das Buch herunterladen. Der DATA-Schritt, der für eine Beobachtung zu einem Zeitpunkt ausgelegt ist, ist nicht das beste Werkzeug für Zeitreihenberechnungen, die natürlich mehrere Beobachtungen (Verzögerungen und Ableitungen) erfordern. In einem zukünftigen Blogpost werde ich zeigen, wie SASIML-Funktionen geschrieben werden, die einfache, gewichtete und exponentiell gewichtete gleitende Mittelwerte berechnen. Die Matrix-Sprache in PROC IML ist einfacher zu bearbeiten für Berechnungen, die Zugriff auf mehrere Zeitpunkte erfordern. ffTheDoLoopdyIl2AUoC8zA ffTheDoLoopdqj6IDK7rITs ffTheDoLoopicbsotKEf1zY: e5B0sfO55lA: gIN9vFwOqvQ ffTheDoLoopicbsotKEf1zY: e5B0sfO55lA: VsGLiPBpWU ffTheDoLoopicbsotKEf1zY: e5B0sfO55lA: F7zBnMyn0Lo ffTheDoLoopdl6gmwiTKsz0
No comments:
Post a Comment