Saturday, October 8, 2016

Gleitende Mittlere Variable Stata

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 der Nenner Wenn alle Werte fehlen, reduziert sich dies auf 0/0 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 wie oben für Mittelwerte von 3 Jahren erträglich, aber entweder für diesen Fall oder für die Mittelung über mehr Jahre, würden wir ersetzen die Linien oben durch eine Schleife, was egen tut. Diese Datenstruktur ist ziemlich unpassend für den Zweck. 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 der Nenner Wenn alle Werte fehlen, reduziert sich dies auf 0/0 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 am offensichtlichsten 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 erweitert sich -1/1 auf -1 0 1 oder Blei 1, lag 0, lag 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ß coef (1 1 1) normalisiert ist, zu Koeffizienten von 1/3 1/3 1/3 äquivalent ist und coef (1 2 1) normalisiert Auf Koeffizienten von 1/4 1/2 1/4. 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 Verzögerungen und Bleiwerten sind, erzeugt eMe () fehlende, wo die Verzögerungen und Bits 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. In Stata, wie ich eine neue Variable basierend auf bestehenden Daten erstellen Im Folgenden finden Sie Beispiele für die Erstellung neuer Variablen in Stata mit den Befehlen gen (short for generate) und egen: Um eine neue Variable (zB newvar) zu erstellen und ihren Wert auf 0 zu setzen, verwenden Sie: Um eine neue Variable (zB total) Aus der Transformation von existierenden Variablen (zB die Summe von v1, v2, v3 und v4) verwenden: Alternativ verwenden Sie egen mit der eingebauten rowtotal-Option: Der egen-Befehl behandelt fehlende Werte als 0. Um eine Variable zu erstellen (z Avg), die den Durchschnitt von vier Variablen speichert (zB v1. V2. V3 und v4), verwenden Sie: Verwenden Sie den / (Schrägstrich), um die Division und ein (Sternchen) für die Multiplikation zu bezeichnen. Alternativ können Sie egen mit der eingebauten rowmean-Option verwenden: Mit Stata können Sie auch integrierte Funktionen für variable Transformationen nutzen. Um beispielsweise das natürliche Protokoll von v1 zu übernehmen und eine neue Variable (zB v1log) zu erstellen, verwenden Sie: Weitere Hilfe finden Sie in den Hilfedateien innerhalb von Stata (für jeden der folgenden Themen geben Sie den entsprechenden Hilfskommando ein): Ankündigung Es ist Meine erste Post und ich werde versuchen, so klar wie möglich zu sein. Der Link für die Hauptdatenbank befindet sich am Ende des Beitrags. Context Ich bin mit Stata / SE 12.0 unter Windows 10. Ich habe angefangen mit Stata nur vor ein paar Wochen und ich versuche, auf meine eigene für eine Zuordnung zu lernen, wegen in ein paar Tagen jetzt (weil jede Tabelle oder eine Figur hat mich Tag und Tage): Replikation der Papier quotDoes Schulpflicht Affect Schoolig und Earningsquot: web. stanford. edu/ Pista / angrist. pdf, die zeigen besteht darin, dass in den letzten Quartalen der Jahre im Durchschnitt mehr Bildung haben als die in der ersten geboren geboren Menschen Aufgrund der Pflichtschulgesetze. Die ersten Zahlen zeichnen ein Diagramm der durchschnittlichen Anzahl der Jahre der Ausbildung (variable EDUC) für alle ein bestimmtes Jahr (variable Jg für Geburtsjahr) während eines bestimmten Viertel (QOB) geborene Menschen. Es gibt eine allgemeine Tendenz steigend und die Daten an detrend, sie verwenden, um einen gleitenden Durchschnitt (Abbildung IV), das ist, wo ich in den letzten 5 Tagen blockiert. Problem In der Datenbank gibt es 27 Variablen, darunter v4 umbenannt EDUC, v27 umbenannt YOB (Geburtsjahr), und v18 umbenannt QOB (Viertel der Geburt). Was für den gleitenden Durchschnitt benötigt wird, ist für jede Gruppe von Menschen im Jahr c und Quartal j geboren, die durchschnittliche Anzahl der Jahre der Ausbildung nicht für dieses Jahr und Quartal berechnet wird, aber für das Quartal, kurz bevor, 2 Quartale vor, ein Viertel Später und 2 Quartale später (s. 985 der Zeitung). Zum Beispiel, wenn ich bei den Männern zwischen 1930 und 1939 wie in dieser Figur (Abbildung IV des Artikels.: Onedrive. live/redirresi ntphoto2cpng) geboren aussehen, muss ich mit der Kohorte 1930 3. Quartal geboren zu starten und zu berechnen, die durchschnittliche Anzahl der Jahre der Ausbildung von denen im Jahr 1930, 2. Quartal geboren (ein Viertel vor der angegebenen Kohorte geboren), gleiche für 1930, 1. Quartal (* 2. Quartale vor der gegebenen Kohorte), gleichen denen geboren jene für 1930 geboren, 4. Quartal (ein Viertel nach der angegebenen Kohorte) und dieselben für die Jahrgänge 1931, 1. Quartal (2 Quartale nach der angegebenen Kohorte). Dann wird der gleitende Durchschnitt wird durch das Hinzufügen dieser vier Werte erhalten und von 4. Dieser ganze Prozess Teilung sollte für jede Kohorte zwischen 1930 3. Quartal und 1939, 2. Quartal wiederholt werden. Do-Datei für den Do-Datei (onedrive. live/redirresid6919D329B3BF1EF23227ampauthkeyAO2cxEN AGpZMgsMampithintfile2cdo), begann ich mit dem Modell der anderen Figuren und versuchte foreach-Schleife und viele andere Dinge zu verwenden (Sie die Fehlermeldungen nicht erinnern, / wusste nicht, ich wollte Um hier zu posten), aber immer noch nicht herauszufinden, wie zu erzählen Stata: quotfor jeder YOBQn. (EDUC) von YOBQ n-1, YOBQ n-2, YOBQ n1, YOBQ n2quot. Um die Summe und Division durch 4 nach, dass es einfacher sein sollte. Ich habe einen außergewöhnlichen Hinweis auf die Lehr-Assistent: quot versuchen Sie die tssmooth Befehl. Sie müssen zunächst eine Zeitvariable erstellen, für die der Befehl egen group sehr nützlich sein wird. Aber nach meinen Recherchen zu quotegenquot und quottssetquot in den Datenhandbüchern und im Buch Cameron amp Trivedi, quotEconometrics using Stataquot (letzter Link): Www. stata / manuals14 / degen. Tfolder2cdta www. stata / manuals14 / gsw11.pdf www. stata / manuals14 / u11.p. SprachenSyntax www. stata / manuals14 / u13.p. Itsubscripting onedrive. live/redirresi. Intfile2cpdf Ich sollte tsset die Daten vor tssmooth, aber ich habe nicht hinter dieser Phase, da scheinbar, die Notation n ist nicht erlaubt mit quotegenquot (Fehler r (101) quotweights nicht allowquot) und ich bin immer noch sehr mit der Kombination von egen, tsset verwechselt Und tssmooth. Es wäre großartig, wenn jemand könnte mir helfen mit, wie man das quotweights not allowedquot Fehler zu lösen und wie man die Befehle quotegenquot, quottssetquot und quottssmoothquot kombinieren. Danke so viel Postscript: hier ist die Datenbank übrigens onedrive. live/redirresi. Tfolder2cdta Hinweis: Ich habe die do-Datei für die wichtigsten anderen Figuren und Tabellen des Artikels, außer Tabelle I, aber diese Datei ist wahrscheinlich nicht notwendig / nur für info: onedrive. live/redirresi. Hintfile2cdo Zuletzt bearbeitet von Amarylis Durand 25 Mär 2016, 01:55. 25 March 2016, 22:50 Hier ist eine kürzere Version meiner Frage: wie man den Fehler unten (r451 in Fettdruck) zu vermeiden und wie zu erzählen, dass der gleitende Durchschnitt von quotmedstay1quot für jeden Wert von tps / von YOB QOB berechnet werden sollte Für alle, die im selben Jahr und im gleichen Quartal geboren wurden, nach Jahren und Vierteln sortieren und die durchschnittliche Anzahl der Jahre der Ausbildung / von YOB QOB berechnen. Sort: egen medstay1 mean (EDUC) / erzeugt eine neue Variable YOBNew, da der Befehl yq das erste Argument zwischen 1000 und 9999 erfordert und unsere Daten für YOB bei der Volkszählung 1980 zwischen 30 und 49 statt 1930 und 1949 / gen YOBNewYOB liegen Ersetzen Sie YOBNew YOB1900, wenn CENSUS80 / erzeugt eine Zeitvariable, die das erforderliche Format im Hilfe-tsset / gen tpsyq (YOBNew, QOB) - Format tq tps / hat, gibt die folgende Anweisung r451 zurück. Wiederholt Zeitwerte im Panel, wahrscheinlich, weil es Tausende von Menschen geboren im selben Jahr und im gleichen Quartal, offensichtlich mit dem gleichen durchschnittlichen Anzahl von Jahren der Bildung. Wie zu vermeiden, diese Fehler / tsset medstay1 tps / Anweisung haben die gleitende durchschnittliche MA, aber ich möchte die Verschiebung des Mittels von medstay1 für jeden Wert des timevariable quottpsquot berechnet werden. Was Befehl würde mir erlauben, dies zu tun oder ist es automatisch getan / tssmooth ma MA medstay1. Fenster (2 0 2) Ich hoffe, dass jemand helfen kann.


No comments:

Post a Comment