Stats: Datenanalyse und statistische Software Nicholas J. Cox, Durham University, Großbritannien Christopher Baum, Boston College egen, ma () und seine Einschränkungen Statarsquos offensichtlichste Befehl für die Berechnung der gleitenden Durchschnitte 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 zuvor 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 Lags: In diesem Fall dehnt sich -1 1 auf -1 0 1 oder lead 1, lag 0, lag 1 aus. Die coef ficients, eine weitere Numliste, multiplizieren die entsprechenden nacheilenden oder führenden Items: In diesem Fall sind diese Items 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, Koeffizienten von 1 3 1 3 1 3 gleich ist und coef (1 2 1) normalisiert, 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 verpflichtende Benutzer 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 enthalten, 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 Korrekturchirurgie für solche Beobachtungen erforderlich ist, vermutlich nach Betrachten des Datensatzes und unter Berücksichtigung aller zugrunde liegenden Wissenschaft, die gebracht werden können, um zu tragen. Announcement 04 Nov 2014, 19:36 Sehr geehrte Alle, ich arbeite Mit einem unsymmetrischen Panel-Dataset, wobei das Panel var die Fondsnummer ist und die Zeit var der Monat ist. So arbeite ich mit monatlichen Zeitreihen, aber mit Lücken. Was ich will, ist die Berechnung der 3-Jahres-Sharpe-Verhältnis und auch die 3-Jahres-Jensens Alpha für jeden Fonds. Wenn ich also im Jahre 1992 bin, möchte ich die Sharpe-Ratio für dieses Jahr mit den monatlichen Beobachtungen der Jahre 1992 1991 1990 berechnen. Dazu benötige ich den Mittelwert und die Sd der Überschussrenditen jedes Fonds während dieses Zeitraums. Darüber hinaus möchte ich das Jensens Alpha durch Ausführen des CAPM-Modells unter Verwendung der monatlichen Beobachtungen aus den Jahren 1992 1991 1990 schätzen. Dazu könnte ich den Befehl statsby verwenden und die Koeffizienten einer während dieser Periode laufenden Regression verwenden. Ich haved versucht viele Befehle wie rollreg, movavg, ma usw. und auch einige Einheimische mit foreach forvalues aber ich kann sie nicht verwenden, da ich nicht ein ausgewogenes Panel habe und ich nicht wollen, um Mittel zu beseitigen, weil ich ein oder zwei Lücken haben könnte. Dies ist ein Beispiel meines Datensatzes im Laufe des Monats mktrf smb hml umd ExcessR s ---------------------------------- - 1 - 2 1997 2 -. 0049 - 0,261 .0469 - 0204. 2 1997 3 -0503 -0032 .0386 .0094 -.0181431 2 1997 4 .0404 -.0519 -.0102 .0489 .0117428 2 1997 5 .0674 .0483 -0.0438 -0.0519 .0372053 ---- -------------------------------------------------- --------------------- 2 1997 6 .041 .015 .0072 .0259 .0310222 2 1997 7 .0733 -.0252 -.0013 .0384 .0402394 2 1997 8-0.0415 .0734 .0137 -.0252 -.0292168 2 1997 9 .0535 .0268 -.0025 .0145 .0381404 2 1998 1 .0015 -.0094 -.0207 .001 .0056473 ------ -------------------------------------------------- ------------------- 2 1998 2 .0703 .0032 -.0086 -.011 .0395531 2 1998 3 .0476 -.0099 .0123 .0214 .0277491 2 1998 4 0073 .0048 .0027 .0078 .0005439 2 1998 5 -.0307 -.0354 .0412 .0189 -.0093562 2 1998 6 .0318 -.0315 -.0222 .0726 .002362 -------- -------------------------------------------------- ----------------- 2 1998 7 -.0246 -.0492 -.0115 .0371 -.0232616 2 1998 8 -.1608 -0.0575 .0524 .0187 -0.91043 2 1998 9 .0615 -.0015 -.0388 -.0063 .0222817 2 1998 10 .0713 -.032 -.0277 -.0535 .0311223 2 1998 11 .061 .0114 -.0343 .0118 .0300834 ---- -------------------------------------------------- --------------------- 2 1998 12 .0616 -.003 -.047 .0904 .0168859 7 1994 1 .0287 .0014 .021 .0001 .0183894 7 1994 2 -.0256 .0272 -.0141 -.0026 -.0170168 7 1994 3 -.0478 -0096 .0134 -0132 -.0656004 7 1994 4,0000 -0091 .0169 .0041 -0032034 - -------------------------------------------------- ----------------------- 7 1994 5,0058 -.0201 .0018 -.0216 -.0093189 7 1994 6 -.0303 -.0048 .0168 -0083 -.0506594 7 1994 0, 0282 -0,178, 0098, 0019, 0199595 7 1994 8 .0401 0,0145 -.0347 .0154 .0419298 7 1994 9 -.0231 .0268 -.0181 .0131 -0135341 -------------------------------------------------- ------------------------- 7 1994 10 .0134 -.022 -.0236 .0145 .0129598 7 1994 11 -.0404 -.0017 - .0005 -.0019 -.0433825 7 1994 12 .0086 .0005 .0026 .035 .0152948 05 Nov 2014, 11:35 Vielen Dank für Ihre Beiträge. Was die sharpe Verhältnis dieses ist der Code, den ich schrieb und mein Problem lösen. Gen MeanVWExcRetGr. Sortierung crspfundno ryear Monat forval i1990 (1) 2013 lokal mi-2 von crspfundno. Egen Meanimean (VWExcRetGr) wenn ryearlti amp ryeargtm ersetzen MeanVWExcRetGrMeani wenn ryeari Sein nicht perfekt, aber ich habe mein Mittel in einer Spalte jetzt so jedes Jahr habe ich den gleichen Wert des rollenden Mittels innerhalb meiner monatlichen Beobachtungen (egen). Ich sage, seine nicht perfekt, weil innerhalb der Befehle ich nicht spezifizieren, dass ich die Werte nur in dem Fall, dass ich habe 3 Jahre der Beobachtungen Durchschnitt. So berechnet es auch den Mittelwert in dem Fall, in dem ich 2 Jahre Beobachtungen habe. Die gute Nachricht ist, dass ich diese Beobachtungen beseitigen kann. Ich post die oben, weil ich möchte, dass Sie verstehen, was ich genau brauche. Ich möchte die alpha und beta, jeder in einer Spalte, so dass ich sie verwenden, um sie auf andere Variablen zurückgreifen können. Daher möchte ich im Jahr 1995 für den Fonds Nr. 100, der beispielsweise 11 monatliche Beobachtungen hat, die Alpha-Ausgabe des 3-Monats-Rolling - (1995,1994,1993) Capm-4-Faktor-Capm-Regression im 11 Zeilen-Zellen der Alpha-Spalte. Das gleiche gilt für Beta. Ich habe den Mata-Code mit einigen Änderungen egen g group (crspfundno) gen alpha angewendet. (Msgstr. (1) für (i, 1, ..., x) (1) für (i, 1) ,.) B. (1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, , 1) yy (2. & mgr; (y)) ,. XX (2..rows (X)) ,. Wenn (Zeilen (y) gt6) b invsym (Kreuz (X, X)) Kreuz (X, y) alphao, 1 b5,1 Ende aber das Ergebnis ist dieses und es doesnt enthalten Beta als gut. Können Sie mir bitte helfen fundno ryear month g alpha 5487 2001 1 478 -.0045781 5487 2001 2 478 -.0049922 5487 2001 3 478 -.0044039 5487 2001 4 478 -.0058963 5487 2001 5 478 -.0057021 5487 2001 6 478 - .0037893 5487 2001 7 478 -.0046226 5487 2001 8 478 -.0027665 5487 2001 9 478 -0037288 5487 2002 1 478 .0009866 5487 2002 2 478 .0019246 5487 2002 3 478 .0019994 5487 2002 4 478 .002021 5487 2002 5 478 .0025631 5487 2002 6 478 .0019815 5487 2002 7 478 .0037848 5487 2002 8 478 .0035144 5487 2002 9 478 .003802 5487 2002 10 478 .0012915 5487 2002 11 478 .0016832 5487 2002 12 478 .0015888 Ich bin nicht sicher, ob Ich verstehe dich. Allerdings, wiederholen Sie den Ratschlag in den Thread, auf die ich erwähnt haben Sie früher über nicht mit Mata-Code, während Stata-Code verfügbar ist, hier ist ein angepasstes Code aus diesem Thread, die die rollende Regression zu tun. Es dauert Ihnen viel Zeit, wenn Sie einen großen Datensatz haben. Lassen Sie mich wissen, wenn es Ihnen eine Menge Zeit dauert. Ich rate Ihnen, die Ergebnisse zu überprüfen. 06 Nov 2014, 08:51 Abraham: Wirklich schneller Mata-Code. Ich brauchte nur 1 Minute statt 2 Stunden. Außerdem funktioniert es besser, da es fehlende Werte zurückgibt, wenn ich nur eine Jahre Beobachtung habe. Vielen Dank. Eine letzte Frage. Wenn ich die Capm Regression, das bedeutet, nur VWExcRetGr und mktrf, aber nicht die smb hml umd, ist dies, wie der Code wie Gen Alpha sein sollte. Gen bMktrf. (1) für (i1 iltrows) ilt..........................................................., (P) i) für (opi, 1 oltpi, 2o) y VWExcRetGro, 1 X (mktrfo, 1, 1) b. Für (tpi, 1 tltpi, 2 t), wenn (am Verstärker crspfundnoo, 1 crspfundnot, 1 amp (ryearo, 1 - ryeart, 1 lt 2) amp ryearo, 1 gt ryeart, 1) yy VWExcRetGrt, 1 XX (mktrft, 1) Wenn (Zeilen (y) gt6) b invsym (Kreuz (X, X)) Kreuz (X, y) Alphao, 1 b2,1 bMktrfo, 1 b1,1 In Ihrem Code berechnen Sie Standardabweichung nach Land und Industrie (mit zusammenfassen), aber dann ersetzen Sie diesen Wert in SDx von anderen coutries (in der inneren Schleife). Ist das, was Sie tun möchten Ich schrieb den Mata-Code vorausgesetzt, dass Sie die Standardabweichung pro Land und Industrie berechnen möchten. Wenn Sie pro Land und Industrie berechnen wollen, müssen Sie hinzufügen: Hier ist der Mata-Code (er berechnet die Standardabweichung auch, wenn das Fenster weniger als 4 Jahre beträgt):
No comments:
Post a Comment