ich habe folgendes Panel-Datenset und würde gerne alle Observations droppen, die bei denen über einen bestimmten Zeitraum konsekutive werte fehlen. Hier ein kurzes Beispiel (ID= company ID):
- Code: Alles auswählen
ID month Rendite
ID001 1990 5%
ID001 1991 .
ID001 1992 6%
ID001 1993 7%
ID002 1990 .
ID002 1991 .
ID002 1992 8%
ID002 1993 9%
ID003 1990 1%
ID003 1991 2%
ID003 1992 3%
ID003 1993 4%
Die Variable nach der die Observationen untersucht werden sollen ist "rendite". Folgendes würde ich gerne erreichen: Company ID001 soll gedropped werden, da es eine lücke in der zahlenreihe gibt. Company ID002 und ID003 sollen aber beibehalten werden, da diese konsekutive werte für Rendite aufweisen!
Folgendes habe ich nach einiger Nachforschung implementiert:
- Code: Alles auswählen
xtset ID month, format(%tm)
by ID: gen diff=D.Rendite
by ID: egen mycount=count(diff)
by ID: drop if mycount != _N-1
drop mycount diff
Allerdings werden nun alle meine companies gelöscht, für die nicht die volle Anzahl an Observationen vorhanden sind (in meinem Fall 250). Dem Beispiel folgend wird also ID002 gelöscht, obwohl ich es gerne beibehalten würde! Wie kann ich es also erreichen, dass solche "companies", für die nur ein paar anfangs observationen fehlen (z.B. für die ersten 2 Jahre) aber alle weiteren Observationen lückenlos vorhanden sind, nicht gelöscht werden?
Ich wäre sehr dankbar wenn mir jemand sagen könnte wo mein fehler liegt!