Wednesday 25 October 2017

Bewegte Durchschnittliche Stata Ucla


Diese Datenstruktur ist unzweckmäßig. Angenommen, eine ID-ID müssen Sie umformen. z. B. Dann ist ein gleitender Durchschnitt einfach. Verwenden Sie tssmooth oder einfach nur generieren. z. B. Mehr darüber, warum Ihre Datenstruktur ist ziemlich unfit: Nicht nur würde die Berechnung eines gleitenden Durchschnitt benötigen eine Schleife (nicht unbedingt mit egen), aber Sie würden mehrere neue zusätzliche Variablen erstellen. Mit denen in einer späteren Analyse wäre irgendwo zwischen ungeschickt und unmöglich. EDIT Ill geben eine Probe-Schleife, während sich nicht aus meiner Haltung, dass es schlechte Technik. Ich sehe nicht einen Grund für Ihre Namenskonvention, wobei P1947 ist ein Mittel für 1943-1945 Ich nehme an, das ist nur ein Tippfehler. Nehmen wir an, dass wir Daten für 1913-2012 haben. Für Mittel von 3 Jahren verlieren wir ein Jahr an jedem Ende. Das könnte prägnanter geschrieben werden, auf Kosten einer Flut von Makros innerhalb von Makros. Mit ungleichen Gewichten ist einfach, wie oben. Der einzige Grund, egen verwenden ist, dass es nicht aufgeben, wenn es Versäumnisse, die die oben genannten tun wird. Der Vollständigkeit halber sei bemerkt, dass es leicht ist, Fehler zu behandeln, ohne auf egen zurückzugreifen. Und dem Nenner Wenn alle Werte fehlen, reduziert sich dies auf 00 oder fehlt. Andernfalls, wenn ein Wert fehlt, fügen wir 0 auf den Zähler und 0 auf den Nenner, die die gleiche wie Ignorieren ist. Natürlich ist der Code erträglich wie oben für Mittelwerte von 3 Jahren, aber entweder für diesen Fall oder für die Mittelung über mehr Jahre, würden wir die Zeilen oben durch eine Schleife, die egen tut. Stata: Datenanalyse und statistische Software Nicholas J () Und ihre Einschränkungen Statarsquos offensichtlichste Befehl zur Berechnung der gleitenden Mittelwerte ist die ma () - Funktion von egen. Bei einem Ausdruck wird ein gleitender Durchschnitt für diesen Ausdruck erstellt. Standardmäßig wird als 3. genommen, muss ungerade sein. Allerdings kann, wie der manuelle Eintrag angibt, egen, ma () nicht mit varlist kombiniert werden:. Und aus diesem Grund ist es nicht auf Paneldaten anwendbar. In jedem Fall steht er außerhalb des Satzes von Befehlen, die speziell für Zeitreihen geschrieben werden, siehe Zeitreihen für Details. Alternative Ansätze Zur Berechnung von Bewegungsdurchschnitten für Paneldaten gibt es mindestens zwei Möglichkeiten. Beide hängen davon ab, dass der Dataset vorher tsset wurde. Das ist sehr viel wert: nicht nur können Sie sich immer wieder spezifizieren Panel variabel und Zeit variabel, aber Stata verhält sich intelligent jede Lücken in den Daten. 1. Schreiben Sie Ihre eigene Definition unter Verwendung von Zeitreihenoperatoren wie L. und F. Geben Sie die Definition des gleitenden Durchschnitts als Argument für eine generierte Anweisung an. Wenn Sie dies tun, sind Sie natürlich nicht auf die gleich gewichteten (ungewichteten) zentrierten Bewegungsdurchschnitte beschränkt, die von egen, ma () berechnet wurden. Zum Beispiel würden gleich gewichtete Dreiphasenbewegungsdurchschnitte gegeben und einige Gewichte können leicht angegeben werden: Sie können natürlich einen Ausdruck wie log (myvar) anstelle eines Variablennamens wie myvar angeben. Ein großer Vorteil dieses Ansatzes ist, dass Stata automatisch das Richtige für Paneldaten macht: führende und nacheilende Werte werden in Panels ausgearbeitet, genauso wie Logik diktiert. Der bemerkenswerteste Nachteil ist, dass die Befehlszeile ziemlich lang werden kann, wenn der gleitende Durchschnitt mehrere Begriffe beinhaltet. Ein anderes Beispiel ist ein einseitiger gleitender Durchschnitt, der nur auf vorherigen Werten basiert. Dies könnte nützlich sein für die Erzeugung einer adaptiven Erwartung dessen, was eine Variable nur auf Informationen basieren wird: was könnte jemand prognostizieren für den aktuellen Zeitraum auf der Grundlage der letzten vier Werte, mit einem festen Gewichtungsschema (A 4-Periode Verzögerung sein könnte Besonders gebräuchlich mit vierteljährlichen Zeitreihen.) 2. Verwenden Sie egen, filter () von SSC Verwenden Sie den benutzerdefinierten egen function filter () aus dem egenmore package auf SSC. In Stata 7 (aktualisiert nach dem 14. November 2001) können Sie dieses Paket installieren, nachdem egenmore auf die Details zu filter () hingewiesen hat. Die beiden obigen Beispiele würden gerendert (In diesem Vergleich ist der generierte Ansatz vielleicht transparenter, aber wir sehen ein Beispiel des Gegenteils in einem Moment.) Die Lags sind eine Numliste. Führt zu negativen Verzögerungen: In diesem Fall verlängert sich -11 auf -1 0 1 oder Blei 1, verzögert 0, Verzögerung 1. Die Koeffizienten, eine weitere Numliste, multiplizieren die entsprechenden nacheilenden oder führenden Elemente: In diesem Fall sind diese Elemente F1.myvar . Myvar und L1.myvar. Der Effekt der Normalisierungsoption besteht darin, jeden Koeffizienten durch die Summe der Koeffizienten zu skalieren, so daß die Koeffizienten von 13 13 13 und coef (1 2 1) normalisiert sind, äquivalent zu Koeffizienten von 14 12 14 ist Sie müssen nicht nur die Verzögerungen, sondern auch die Koeffizienten angeben. Da egen, ma () den gleich gewichteten Fall liefert, ist der Hauptgrund für egen, filter (), den ungleich gewichteten Fall zu unterstützen, für den Sie Koeffizienten angeben müssen. Es könnte auch gesagt werden, dass die verpflichtenden Benutzer, um Koeffizienten angeben ist ein wenig mehr Druck auf sie zu denken, welche Koeffizienten sie wollen. Die wichtigste Rechtfertigung für gleiche Gewichte ist, wir schätzen, Einfachheit, aber gleiche Gewichte haben miese Frequenzbereich Eigenschaften, um nur eine Erwägung zu erwähnen. Das dritte Beispiel oben könnte entweder von denen ist nur so kompliziert wie die Generierung Ansatz. Es gibt Fälle, in denen egen, filter () eine einfachere Formulierung ergibt als erzeugen. Wenn Sie einen neun-term-Binomialfilter suchen, der von den Klimatologen als nützlich empfunden wird, dann sieht es vielleicht weniger schrecklich aus und ist leichter zurecht zu kommen. Genau wie beim generierten Ansatz funktioniert egen, filter () ordnungsgemäß mit Panel-Daten. Tatsächlich hängt es, wie oben erwähnt, davon ab, daß der Dataset vorher tsset wurde. Eine grafische Spitze Nach der Berechnung Ihrer gleitenden Durchschnitte werden Sie wahrscheinlich einen Graphen betrachten wollen. Der benutzerdefinierte Befehl tsgraph ist schlau um Tsset-Datasets. Installieren Sie es in einem up-to-date Stata 7 von ssc inst tsgraph. Was ist mit der Teilmenge mit if Keine der obigen Beispiele verwenden, wenn Einschränkungen. In der Tat egen, ma () wird nicht zulassen, wenn angegeben werden. Gelegentlich Menschen wollen verwenden, wenn bei der Berechnung der gleitenden Durchschnitte, aber seine Verwendung ist ein wenig komplizierter als es normalerweise ist. Was würden Sie von einem gleitenden Durchschnitt erwarten? Lassen Sie uns zwei Möglichkeiten identifizieren: Schwache Interpretation: Ich möchte keine Ergebnisse für die ausgeschlossenen Beobachtungen sehen. Starke Interpretation: Ich möchte nicht, dass Sie die Werte für die ausgeschlossenen Beobachtungen verwenden. Hier ist ein konkretes Beispiel. Angenommen, infolge einer Bedingung sind die Beobachtungen 1-42 eingeschlossen, aber nicht die Beobachtungen 43 an. Aber der gleitende Durchschnitt für 42 wird unter anderem von dem Wert für die Beobachtung 43 abhängen, wenn der Mittelwert sich nach hinten und vorne erstreckt und eine Länge von mindestens 3 hat, und er wird in einigen Fällen von einigen der Beobachtungen 44 abhängen. Unsere Vermutung ist, dass die meisten Menschen für die schwache Interpretation gehen würde, aber ob das korrekt ist, egen, filter () nicht unterstützt, wenn entweder. Sie können immer ignorieren, was Sie donrsquot wollen oder sogar unerwünschte Werte auf fehlende danach mit replace setzen. Eine Notiz über fehlende Ergebnisse an den Enden der Serie Da gleitende Mittelwerte Funktionen von Lags und Leads sind, erzeugt eMe () fehlende Stellen, wo die Lags und Leads nicht existieren, am Anfang und Ende der Reihe. Eine Option nomiss zwingt die Berechnung der kürzeren, nicht beanspruchten gleitenden Mittelwerte für die Schwänze. Im Gegensatz dazu weder erzeugen noch egen, filter () macht oder erlaubt, etwas Besonderes, um fehlende Ergebnisse zu vermeiden. Wenn einer der für die Berechnung benötigten Werte fehlt, fehlt dieses Ergebnis. Es ist bis zu den Benutzern zu entscheiden, ob und welche korrigierende Chirurgie für solche Beobachtungen erforderlich ist, vermutlich nach dem Betrachten des Datensatzes und unter Berücksichtigung aller zugrunde liegenden Wissenschaft, die gebracht werden können, zu tragen. Willkommen an das Institut für digitale Forschung und Bildung SAS FAQ: Wie kann Ich erstelle Lag - und Lead-Variablen in Longitudinaldaten Bei der Betrachtung von Daten über konsistente Zeiteinheiten (Jahre, Quartale, Monate) besteht häufig ein Interesse an der Erstellung von Variablen, die darauf basieren, wie Daten für einen bestimmten Zeitraum mit den Perioden vor und nach dem Vergleich verglichen werden. Wenn Sie longitudinale Daten haben, möchten Sie über Zeiteinheiten innerhalb eines einzelnen Themas zu schauen. Wenn Ihre Daten in langer Form vorliegen (eine Beobachtung pro Zeitpunkt pro Subjekt), kann dies einfach in Stata mit standardisierten Variablenerstellungsschritten gehandhabt werden, da Stata Datenbestände verarbeitet: sie speichert den gesamten Dataset und kann sich leicht auf irgendwelche beziehen Punkt bei der Generierung von Variablen im Dataset. SAS arbeitet anders. SAS-Variablen werden typischerweise durch einen Datenschritt erzeugt, in dem sich SAS durch den Datensatz bewegt, Beobachtung durch Beobachtung, Ausführen der Berechnungen für die gegebene Beobachtung und Zugriff nur jeweils einer Beobachtung zu einem Zeitpunkt. Dieses System der Datenspeicherung und des Zugriffs ermöglicht es SAS, große Datensätze zu analysieren, aber auch sehr schwierig, Zeitreihenvariablen in SAS unter Verwendung eines Datenschritts zu erzeugen. Jedoch bietet proc expand eine einfach zu bedienende Alternative zum Datenschritt. Beginnt mit einem Beispiel-Dataset, das nur ein Subjekt enthält. Der folgende Datensatz enthält die US-Arbeitslosenquoten von September 2006 bis August 2008. Für jeden Monat wollen wir den Unterschied zwischen seinem Kurs und dem Kurs des Vormonats (r (i) - r (i-1)), (R (i-1) - r (i)) - (r (i) - r (i-1) - r (i)) und die Rate des nächsten Monats ) Um dies zu erreichen, verwenden wir proc expand, um einen neuen Dataset mit diesen Variablen zu generieren In der proc expand Zeile nennen wir das neue dataset unemplaglead Wir weisen darauf hin, dass wir die Werte nicht umwandeln wollen (mit einem Spline, Zum Beispiel), sondern um einfach die nicht transformierten Daten aus dem angegebenen Datensatz zu erfassen. Wir zeigen an, dass unsere Zeitreihe durch das Datum in der id-Zeile und in den drei konvertierten Zeilen definiert ist, die drei Werte, die wir für jeden Zeitpunkt haben wollen Unsere Daten: die Rate, die vorherige Rate (ratelag1) und die nächste Rate (ratelead1) In jeder Zeile sagen wir SAS den Namen der Variablen in unserem neuen Datenbestand, die Art der Transformation (Verzögerung Blei) und die Zahl Von Zeitpunkten, um für die Transformation zurückzuschauen (1 in diesem Beispiel). Wir sehen den resultierenden Datensatz. Basierend auf diesem Datensatz können wir nun leicht die drei Zeitreihenvariablen berechnen, die wir früher beschrieben haben. Aber was, wenn wir Daten für mehrere Länder hatten Der Datensatz unten enthält Arbeitslosendaten von 2000-2005 für drei Länder. Wir wollen Lag-und Lead-Variablen innerhalb jedes Landes zu schaffen. Um dies zu tun, können wir proc expand mit einer by-Anweisung nach der Sortierung auf Land. Mit proc erweitern. Können Sie auch gleitende Mittelwerte, Splines und interpolierte Werte erzeugen. Weitere Informationen finden Sie auf den proc-Erweiterungsseiten der SAS Online-Dokumentation.

No comments:

Post a Comment