Hallo,
ich habe eine Frage zur Variable tf0021b_g4 in der Startkohorte 3. Für diese Variable sind die Wellen 6-10 und 13 verfügbar. Ich brauche für meine Analysen jedoch auch Welle 11 und 12. Kann ich dafür einfach die entsprechenden Wellen mit sort ID_t wave
by ID_t: replace tf0021b_g4 = tf0021b_g4 [_n+1] if tf0021b_g4 == . auffüllen?
Viele Grüße und vielen Dank für die Rückmeldung,
Johannes Ennenbach
Hallo Johannes,
rein technisch wird dein Befehl in Stata zumindest mal keinen Fehler liefern, aber ich bezweifle, dass du damit das erreichst, was du haben möchtest.
Wenn du dir die Daten direkt ansiehst, wirst du feststellen, dass es in den allermeisten Fällen für eine Person nur eine einzige gültige Antwort auf dieser Frage gibt, ungeachtet dessen, wann diese Frage Teil des Befragungsprogramms war. Dies liegt schlicht und einfach an der Tatsache, dass diese Frage nur denjenigen Schülern gestellt wurde, die sich zum Befragungszeitpunkt in der 12. Klasse befanden.
Für alle anderen Wellen wirst du feststellen, dass die Variable dann nicht missing (in Stata: .) ist, sondern definierte Missingwerte zB „-54 designbedingt fehlend“ aufweist. Diese Konstellationen würden folglich von deiner Syntaxzeile gar nicht erfasst.
Ich gehe jetzt einfach mal davon aus, dass dich in irgendeiner Art und Weise interessiert, welchen Ausbildungsberuf ein Schüler begonnen hat. Für den äußerst seltenen aber in 0.5% der Fälle vorkommenden Fall, dass eine Person hier mehr als eine Angabe gemacht hat, weil sie die 12. Klassenstufe wiederholt hat, ist es unter Umständen möglich, dass sich die 2 Nennung von der 1. Nennung unterscheidet.
Insofern würde ich davon ausgehen, dass du jeweils für jede Person, die hier jemals eine Angabe gemacht hat, am letztgegebenen Wert interessiert bist.
Diesen kannst du dir mit einer leichten Erweiterung deiner Syntax in einer gesonderten Variable speichern:
clonevar ausbildung = tf0021b_g4 // Variable tf0021b in ausbildung kopieren
nepsmiss ausbildung // Fehlwerte automatisch in Stata-Missings umwandeln
[alternativ:] mvdecode ausbildung , mv(-55, -54, -90)
br ID_t wave tf0021b_g4 ausbildung // mal einen Blick in die Daten werfen
bysort ID_t (wave): replace ausbildung = ausbildung[_n-1] if missing(ausbildung) & !missing(ausbildung[_n-1])
br ID_t wave tf0021b_g4 ausbildung // mal nochmal einen Blick in die Daten werfen
In einfachen Worten:
Sortiere den Datensatz nach ID_t und aufsteigend nach Welle; ersetze pro ID_t jeden fehlenden Wert in ausbildung durch den Wert der Vorwelle, wenn dieser nicht fehlt.
Hilft dir das erstmal weiter?
Beste Grüße,
Benno Schönberger
Hallo Benno,
vielen Dank, das hat gut funktioniert. Das hilft mir weiter. Ich möchte nämlich untersuchen, wie sich der Berufswunsch des Kindes darauf auswirkt, dass es im Verlauf der Klassenstufen 9 bis 12 oder nach dem Schulabgang den Einstieg in eine handwerkliche Ausbildung vollzieht. Da ich jetzt sozusagen auch die Informationen für Welle 11 und 12 der AV habe, kann ich längsschnittliche Untersuchen mit t31160a_g4 (Berufswunsch Handwerk) und anderen Variablen vornehmen.
Viele Grüße,
Johannes
Hallo Johannes,
das freut mich. Dann noch ein Hinweis. Es wird in absehbarer Zukunft - ich schätze, innerhalb der nächsten 2 Monate - ein Update des SC3 SUFS geben. Durch deine Nachfrage sind wir darauf aufmerksam geworden, dass für die Wellen 10 bis 13 in der angegebenen Variable in Summe ca 90 Werte fehlen. Diese werden im Zuge des Updates dann mit veröffentlicht.
Falls du mit deinen Analysen oder deinem Paper ohnehin so lange brauchst, lohnt es sich vielleicht, deine Syntaxen dann bei Erscheinen der neuen Datenversion nochmals durchlaufen zu lassen.
Beste Grüße und alles Gute,
Benno