Monday 9 January 2017

Moving Average Loop 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 dem Nenner Wenn alle Werte fehlen, wird dies auf 0 0 reduziert 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 ersetzen die Zeilen oben durch eine Schleife, was ist, was egen does. I haben eine Liste von Menschen, Registrierungszeiten , Und Punkte. In Stata möchte ich einen gleitenden Durchschnitt der Punktzahl auf der Grundlage eines Zeitfensters um jede Beobachtung berechnen (kein Fenster auf der Basis der zurückbleibenden Anzahl von Beobachtungen). Zum Beispiel, annehmen - 2 Tage auf jeder Seite und nicht einschließlich der aktuellen Beobachtung, Im Versuch, so etwas wie dieses zu berechnen: Ive versucht, die Datenmenge mit tsset definieren und verwenden Sie dann tssmooth. Aber konnte es nicht erhalten, um zu arbeiten. Da kann es mehrere Beobachtungen für einen bestimmten Zeitraum Im nicht sicher, das ist auch der richtige Ansatz. Auch in der Realität der Tag Variable ist ein tc Zeitstempel. Tesset cant Hilfe hier, auch wenn Sie Ihre Zeit regelmäßig beabsichtigt, da Sie einige Werte für die Zeit haben, aber Ihre Daten nicht als Panel-Daten in Statas Sinne qualifizieren. Aber das Problem sollte zu einer Schleife über Möglichkeiten ergeben. Zunächst nehmen wir Ihr Beispiel buchstäblich mit Integer-Tage. Hier nehmen wir keine fehlenden Werte an. Das Prinzip des Vortrags ist der Durchschnitt der anderen (Summe aus diesem Wert) (Anzahl der Werte - 1) In der Praxis wollen Sie nicht über alle möglichen Datumszeiten in Millisekunden schleifen. Also, versuchen Sie eine Schleife über Beobachtungen dieses Formulars. Hinweis ltpseudocodegt Elemente. Dieses Papier ist auch relevant: Wenn Versäumnisse möglich sind, muss eine Zeile komplizierter sein: Wenn der aktuelle Wert fehlt, subtrahieren wir 0 aus der Summe und 0 aus der Anzahl der Beobachtungen. EDIT: Für 2 Tage in Millisekunden, nutzen Sie die eingebaute Funktion und verwenden cofd (2).


No comments:

Post a Comment