Skip to main content

Moving Average Berechnung In Sas


Im ein SAS Anfänger und Im neugierig, wenn die folgende Aufgabe viel einfacher getan werden kann, wie es gegenwärtig in meinem Kopf ist. 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 Art und Weise erfolgen 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. Ich habe einen Screenshot, um zu klären, mein Problem: Im Versuch, eine Art von gleitenden Durchschnitt und Bewegung 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 mit sas nicht sehr vertraut Befehle sollte es (sehr sehr grob) aussehen: Oder so etwas wie dieses, ich habe wirklich keine Ahnung, Im gonna versuchen, es herauszufinden, aber es lohnt sich zu veröffentlichen, wenn ich es gewohnt finden myself. moving Durchschnitt Mit Datumsbereich gleitenden Durchschnitt mit Datumsbereich gleitenden Durchschnitt mit Datumsbereich Im neu zu SAS, und ich habe einige Probleme mit der Berechnung der gleitenden Durchschnitt basierend auf Daten und Gruppierungen innerhalb der Datenmenge. Grundsätzlich versuche ich, den gleitenden Durchschnitt für jede Beobachtung auf der Grundlage der letzten 90 Tage zu berechnen. Jede Beobachtung hat ein Datum. Ich muss sie auch gruppieren, damit der gleitende Durchschnitt nur auf der Gruppe basiert. Mit anderen Worten, wenn ich war es Gruppierung von Früchten, Äpfel würde seine einzige gleitende Durchschnitt und orages, etc. Ich weiß, ich muss die Datensatz zuerst sortieren, dann verwenden Sie eine Retain-Anweisung. Ich dachte eigentlich, ein Makro zu tun. Ich begann dieses, aber scheinen, irgendeinen Teil davon zu erhalten, um zu arbeiten. Kann jemand mir helfen Ich weiß, wie die Sortierung zu tun, aber ich weiß auch, wie man den Durchschnitt zu bekommen, aber seine nicht Gruppierung richtig. Sie gibt mir nur den Wert der Beobachtung. Ich habe versucht, es mit SQL zu tun, aber seine nicht funktioniert entweder. Das ist, was ich kam mit. Proc sql create table data. movingavg als select a., Mean (Basis) als Bewegen von xx wo Dating-Gruppe nach Produkt RE: gleitender Durchschnitt mit Datumsbereich dies funktioniert auch nicht. Data new set alt von id beibehalten basis if date90 then avg mean (Basis) run RE: gleitender Durchschnitt mit Datumsbereich Hier ist ein Beispiel für meine Datenmenge. Produkt Datum Basis Apfel may20 4 Orange march2 3 april 3 Banane jan31 33 Apfel feb13 88 Apfel dec2 12, was ich brauche, ist ein laufender gleitenden Durchschnitt der letzten 90 Tagen von Produkt, das auf der Basis Menge. Sorry für den mehrfachen Pfosten, aber, nachdem ich meinen früheren Post wieder las, schien es verwirrend, was ich versuche zu tun. Danke RE: gleitender Durchschnitt mit Datumsbereich klaz2002 (Programmierer) 25 Sep 07 16:00 Ich muss damit anfangen, danke für diese Frage. Denn es gab mir keine Ruhe, bis ich es lösen konnte. Lassen Sie mich sagen, was ich glaube, ist Ihre Anforderung nur so, dass Sie und ich sind auf der gleichen Seite. Req 1) Sie möchten einen gleitenden Durchschnitt der letzten 90 Tage von Daten nach Produktnamen haben. Bedeutet, dass für ein einziges Produkt (zB Apple) Sie nur daran interessiert, die Basis-Werte für dieses Produkt gehen zurück 90 Tage. 2) Ich nahm an, dass Sie eine (1) Aufzeichnung pro Produkt pro Tag haben. Das heißt, Sie haben nie mehr als einen Basiswert pro Produkt pro Tag. (Der Code behandelt nicht mehr jetzt) ​​Zur Lösung der Geschichte Problem (Werte gehen zurück 90 Tage) Ich verwendete die lagx () und legte Tage 1-90 in Variablen und fügte sie dann zu einem ARRAY. Da die Variable in das Array aufgenommen werden muss, habe ich ein kleines Makro erstellt, das die Codezeilen erzeugt hat, die ich benötigte. Makro, das SCHAFFT 270 VARIABLE FÜR 90 TAGE DER GESCHICHTE Makro SetVars do i1 bis 90 prodampi lagampi (Produkt) dateampi lagampi (Datum) basisampi lagampi (Basis) Ende Sortierung PRODUKT UND DATUM proc Art Daten flicken yourdata aus datasorted nach Produkt Datum Laufdaten letzte Satz datasorted nach Produkt Datum Länge prod1-prod90 7 date1-date90 Basis1-basis90 mySum 8 Array aktuellen mySum Array prod prod1-prod90 Array dt date1-date90 Array bs Basis1-basis90 SetVars SET THE DATE 90 TAGEN DateMinus90 Datum-90 ÜBERPRÜFEN BCTR 1 mySum 0 LOOP durch alle möglichen TAGE tun i1 bis 90 WRITE AUSNAHME FÜR ERSTE FALL-Gruppe wie KEIN LAG nOCH wenn first. product dann MovingAvg Basis PRÜFEN SAME Produktname und innerhalb von 90 Tagen sonst, wenn trim (upcase (prod )) trim (upcase (Produkt)) und dt dateminus90 dann WENN dANN tun GEFUNDEN ADD VAR mySum Summe (mySum, Basis, bs) HALTEN A an, wie viele Datenpunkte sUM Ende GEFUNDEN BCTR 1 Ende WENN KEINE dann die aktuelle Basis Wert GEFUNDEN Sollte verwendet werden, wenn mysum 0 dann myavg Basis sonst myavg mysumbctr laufen proc print dataFINAL var Produkt Datum dateminus90 Basis myavg Format Datum dateminus90 mmddyy10. Ich hoffe, dass dies Ihnen hilft. Sie sollten wirklich so aussehen, wie ich dies wirklich ohne umfassende Überprüfung getan habe. Es kann viele Einschränkungen für diesen Code so hüten.

Comments

Popular posts from this blog

Binary Optionen Strategien Erwürgen

Die Straddle-Strategie Diese Strategie ist sehr beliebt bei Anfänger und professionelle Händler. Die ursprüngliche Form der Straddle-Strategie kann nur ordnungsgemäß implementiert werden, indem entweder traditionelle Optionen oder fortgeschrittene binäre Optionen Trading-Plattformen, die ausstehende Aufträge zu unterstützen. Diese Art von Anweisung ermöglicht es Ihnen, Trades auszuführen, sobald der Kurs die vorgewählten Werte überschreitet. Die meisten erstklassigen Binäroptionen-Broker unterstützen diese Art von Anlage nicht, da sie normalerweise nur Positionen offen zum aktuellen Marktpreis zulassen. Da die Straddle-Strategie es erfordert, sowohl PUT - als auch CALL-Binäroptionen unter Verwendung derselben Asset - und Verfallszeit zu implementieren, scheint sie unter solchen Umständen praktisch überflüssig zu sein. Darüber hinaus finden Sie, dass die Bewältigung der Verwendung von ausstehenden Bestellungen ist nicht so eine leichte Aufgabe, da diese Aufgabe erfordert erhebliche Zeit...

A To Z Forex

Forex A bis Z Konto. Aufzeichnung aller Transaktionen. Kontostand . Betrag des Geldes in einem Konto. Aggressiver Handel. Die riskantere Alternative unter den Handelsszenarien. Warnungen. Eine Benachrichtigung, die häufig per E-Mail oder SMS empfangen wird, eines Marktereignisses wie einer Aktie oder einer Währung, die einen Zielpreis erreicht. Anerkennung. Eine Währung ist zu schätzen, wenn der Preis steigt als Reaktion auf die Nachfrage des Marktes eine Erhöhung des Wertes eines Vermögenswertes. Arbitrage Die Ausnutzung der Ausgleichspreise in den verschiedenen Märkten durch den Kauf oder Verkauf eines Instruments und die gleichzeitige Einnahme einer gleichen und entgegengesetzten Position in einem verwandten Markt, um von kleinen Preisunterschieden zu profitieren. Fragen Sie Preis. Der Preis oder der Preis, den ein williger Verkäufer zu verkaufen bereit ist. Australier Der australische Dollar verfügbarer Rand. Der Betrag der Mittel, die auf einem Konto verfügbar sind, um eine neue T...

Was Unternehmen Angebot Aktien Optionen Zu Mitarbeiter

Fast Answers Mitarbeiter Aktienoptionen Pläne Viele Unternehmen nutzen Mitarbeiter Aktienoptionen Pläne zu kompensieren, zu behalten und zu gewinnen Mitarbeiter. Diese Pläne sind Verträge zwischen einem Unternehmen und seinen Mitarbeitern, die den Mitarbeitern das Recht geben, innerhalb einer bestimmten Zeitspanne eine bestimmte Anzahl der Aktien der Gesellschaft zu einem festen Preis zu erwerben. Der Festpreis wird oft als Zuschuss oder Ausübungspreis bezeichnet. Mitarbeiter, denen Aktienoptionen gewährt werden, profitieren von der Ausübung ihrer Optionen zum Kauf von Aktien zum Ausübungspreis, wenn die Aktien zu einem Kurs gehandelt werden, der höher ist als der Ausübungspreis. Manche Unternehmen bewerten den Preis, zu dem die Optionen ausgeübt werden können. Dies kann beispielsweise geschehen, wenn ein Aktienkurs der Gesellschaft unter den ursprünglichen Ausübungspreis gefallen ist. Die Unternehmen werten den Ausübungspreis auf, um ihre Mitarbeiter zu halten. Wenn ein Streit darüber...