SC5 - Verbleib im gleichen Studium/Fach

Hallo zusammen,

ich arbeite mit der Kohorte SC5 und habe etwas Schwierigkeiten mit der Arbeit mit dem Datensatz spVocTrain.

Hierzu erstmal eine Verständnisfrage: Eine einzelne Epsiode erkennt man an der gleichen Zahl in der Spalte „spell“, richtig? Das heißt, die Anzahl, wie oft bei der selben Id_t der Wert 0 bei „subspell“ steht, so viele Episoden sind auch bei der Person zu verzeichnen? Und wann genau wird eine neue Episode generiert: Sobald das Fach gewechselt wird, der Studiengang beendet wird, die Hochschule gewechselt wird oder würde bei diesen Beispielen immer eine neue Episode erstellt werden? Mir ist noch nicht ganz klar, woran ich genau erkennen kann, um welche Art von Episode es sich bei der jeweiligen Spell-Nummer handelt.

Nun zu meiner eigentlichen Frage:
Wie genau ist es möglich, die Personen auszuwählen, die in Welle 4 sowie in Welle 6 im gleichen Studium sind (alternativ gleiches Fach), also in diesem Zeitraum nicht das Fach/die Universität/die Abschlussart geändert haben? Welche Variablen(-kombinationen) geben mir hierüber Auskunft?
Im Datensatz gibt es die Variable tg24159 (" Studieren/studierten Sie dieselben Fächer wie in dem Studium, über das wir vorher gesprochen haben, oder ist/war es eine andere Fächerkombination?), jedoch ist mir nicht klar, woran ich erkenne ob überhaupt ein Wechsel erfolgt ist.

Im CAWI-Datensatz habe ich auch die Variable tg51300_v1 „Fachwechsel seit letzter Befragung“ entdeckt - bezieht sich die „letzte Befragung“ auf die letzte CAWI-Befragung, an der die Person teilgenommen hat oder generell auf die letzte Befragung (auch wenn dies eine CATI-Befragung war)?

Das waren einige Fragen - ich bin sehr sehr dankbar über jede Hilfe, die etwas Licht ins (noch)Dunkle bringt! :slight_smile:

Liebe Grüße

Sarah

Hallo Sarah,

entschuldige die Verzögerung bei der Beantwortung; deine Frage enthält tatsächlich mehrere Einzelteile, die ich im Folgenden etwas ausführlicher beleuchten muss/will.

Jede berichtete Episode aus einem Interview erhält eine fortlaufende Nummer, die sich in der Variable spell widerspiegelt. Alternativ kann stattdessen die Variable splink herangezogen werden, sie bildet eine Nummerierung der Episoden unabhängig vom Episodentyp (Erwerbstätigkeit/Ausbildung/etc).

Wird eine Episode über mehrere Interviewzeitpunkte hinweg fortgeschrieben, weil sie andauert, werden dementsprechend Teil-Episoden angelegt, die die neuen Informationen aus dem zusätzlichen Interview enthalten; sie sind durch eine fortlaufende Nummer in der Variable subspell zu unterschieden. Wir erzeugen daraus immer auch einen „harmonisierten“ Eintrag (subspell==0), der die vollständige Information enthält.

Eine „eindeutige“ Episodenzuordnung erhält man also im einfachsten Fall, indem man nach dem Öffnen des Datensatzes alle Teilepisoden mit einer Nummer größer als 0 entfernt; in Stata ginge das einfach so:

drop if subspell>0

Eine neue Episode ist durch das definiert, was die Befragte als neue Ausbildung angibt; der Stimulus lautet dabei:

Um welche Art der Ausbildung es sich bei der berichteten Episode handelt, erfasst die Interviewerin in der Frage nach dem Ausbildungstyp, das Ergebnis findet sich in der Variable ts15201.

Das hängt tatsächlich sehr stark an der Operationalisierung deines Analysewunsches zum „gleichen Studium“: Wenn das exakt gleiche Studium geprüft werden soll, müssen „nur“ Episoden gesucht werden, die vor dem Interview in Welle 4 begonnen und nach/mit dem Interview in Welle 6 geendet haben. Dafür benötigst du nur die Datumsangaben zu Beginn und Ende der Ausbildung. Hier ein schnelles Beispiel dafür (in Stata-Syntax; es ist „schnell“ in dem Sinne, dass Details durchaus eleganter gelöst werden könnten):

// zur Vereinfachung: -neps:- Kommando verwenden;
// falls nicht vorhanden, Installation via:
// . net install nepstools , from(http://nocrypt.neps-data.de/stata)
neps set study SC5
neps set version 13.0.0
neps set level D

// CohortProfile öffnen, nur Teilnahme-Zeilen auswählen
neps : use CohortProfile
drop if intm<1 | inty<1

// Interview-Datum berechnen und "wide" ablegen, temporär speichern
generate intdate_w=ym(inty,intm)
format intdate_w %tm
keep ID_t wave intdate_w
reshape wide intdate_w , i(ID_t) j(wave)
tempfile interviewdates
save `interviewdates'

// spVocTrain öffnen, Teilepisoden verwerfen, Episoden ohne gültige Datumsinformation verwerfen
neps : use spVocTrain
keep if subspell==0
drop if ts1511y_g1<1 | ts1511m_g1<1 | ts1512y_g1<1 | ts1512m_g1<1

// Start- und Enddatumsvariablen berechnen
generate begindate=ym(ts1511y_g1,ts1511m_g1)
generate enddate=ym(ts1512y_g1,ts1512m_g1)

// zwischengespeicherte Interviewdaten anspielen
merge m:1 ID_t using `interviewdates' , assert(match using) keep(match) nogenerate

// Markierung
generate marked_episodes=(begindate<=intdate_w4 & enddate>=intdate_w6)
tabulate marked_episodes


marked_epis |
       odes |      Freq.     Percent        Cum.
------------+-----------------------------------
          0 |     34,247       81.70       81.70
          1 |      7,673       18.30      100.00
------------+-----------------------------------
      Total |     41,920      100.00

Die von dir bereits gefundene Variable tg24159 kannst du im Weiteren verwenden, falls du darüber hinaus Episoden identifizieren möchtest, die zwar als neues Studium berichtet wurden, aber mit der gleichen Fächerkombination berichtet wurden. Der forscherischen Fantasie sind für die Identifikation von sich ähnelnden Ausbildungsepisoden natürlich keine Grenzen gesetzt.

Das bezieht sich auf die letzte gültige Befragung insgesamt, wenn ich mich nicht irre; die Frage ist dafür da, um „unterjährig“ zwischen zwei CATI-Befragungen bereits Informationen darüber zu haben, ob das Studium gewechselt wurde. Ab dem Moment, wo das aber in der nächsten CATI-Befragung detailliert in Episodenform erfragt wird, ist die CAWI-Information nicht darüber hinaus hilfreich.

Ich hoffe, das hat schon etwas weiter geholfen.

Beste Grüße
Bela

Liebe Sarah,

von mir noch eine kleine Ergänzung zu der Antwort von Bela. Du fragst, ob die Anzahl der Episoden mit dem Wert 0 in der Variablen „subspell“ die Anzahl aller Episoden (dieses Episodentyps) ist, die bei einer Person verzeichnet ist. Das stimmt zwar im Prinzip, jedoch gibt es dabei Episoden, die in der jeweils letzten Erhebungswelle neu erfasst wurden, denen jedoch im Prüfmodul widersprochen wurde. Auch diese Episoden sind noch in den Längsschnittmodulen vorhanden und haben den Wert 0 in der Variablen „subspell“. Diese Episoden würde man üblicherweise nicht zur Anzahl der „gültigen“ Episoden zählen, weil die befragten Personen nachträglich der Richtigkeit dieser Episoden widersprochen haben. Diese Episoden lassen sich im jeweiligen Längsschnittfile durch folgende Kriterien identifizieren:

subspell = 0 (harmonisierte Episode)
spext = 0 (keine Teilspells aus vorherigen Erhebungswellen)
spms < 1 (Ausschluss oder Widerspruch im Prüfmodul)

Die Episoden mit diesen Kriterien müsste man also für eine korrekte Zählung aller „gültigen“ Episoden vorher ausschließen:

drop if subspell == 0 & spext == 0 & spms < 1

Einfacher ist es jedoch, nur die Episoden des gewünschten Episodentypes (sptype) im Biography-File zu zählen. Dort liegen die Episoden ausschließlich in harmonisierter Form vor und die im Prüfmodul widersprochenen Episoden, die keine Teilepisoden in früheren Erhebungswellen haben, sind bereits ausgeschlossen.

Viele Grüße, Ralf.

Lieber Bela,

tausend Dank für deine ausführlichen Antworten! Das hat mir auf jeden Fall ein ganzes Stück weitergeholfen!

Liebe Grüße

Sarah

Lieber Ralf,

auch dir vielen herzlichen Dank für die hilfreichen Hinweise!

Liebe Grüße

Sarah

Hallo zusammen,

ich habe das Ganze heute mal nach den hilfreichen Tipps ausprobiert und es hat auch soweit geklappt.

Für meine Fragestellungen brauche ich Daten aus dem CAWI- und CATI-Datensatz. Durch das Vorgehen oben kann ich somit die Personen auswählen, die in Welle 4 und Welle 6 im gleichen Studium sind. Das ist quasi meine „Vorbedingung“ - für meine nachfolgenden Analysen sind nur die Personen relevant, auf die diese Bedingung zutrifft.

Jetzt stellt sich mir die Frage, wie ich am geschicktesten die CAWI- und CATI-Daten an meinen „vorausgewählten“ Datensatz heranspiele. Ich habe hier im Forum gelesen, dass es generell schwierig ist, die spell-Datensätze mit pTargetCAWI/CATI-Datensätzen zu mergen. Das ist mir auch leider nicht gelungen (ich habe ID_t und wave als Schlüsselvariable und einen m:1 merge ausgewählt). Oder sollte ich die Datensätze zuvor in ein wide-Format transformieren? Das Problem ist, dass manche Personen mehr als eine Episode haben, auf die diese Bedingung zutrifft und es somit teilweise mehr als eine Zeile pro Person gibt (also mit der gleichen ID_t). Mir ist hier noch nicht klar, wie ich die verschiedenen Datensätze am besten zusammenfüge.

Eigentlich würde es mir reichen, in den CAWI- und CATI-Datensätze die Personen (ID_t) auszuwählen, die in meinem Datensatz zuvor (der ja ein Spell-Datensatz ist) „übrig geblieben“ sind und so die CAWI- und CATI-Datensätze zu filtern. Nur bei diesen Personen möchte ich mir dann bestimmte Variablen anschauen, die in CAWI und CATI erhoben wurden. Aus dem VocTrain-Datensatz würden mich sonst nur noch Informationen zu dem Studienfach interessieren. Gibt es hierfür eine elegante Lösung?

Über eine weitere Hilfe würde ich mich sehr freuen!

Herzliche Grüße

Sarah

Hallo Sarah,

das Standard-Vorgehen, das wir empfehlen, ist zunächst mit CohortProfile zu starten, um sich einen Analysedatensatz zu bauen. Der erste Schritt dabei ist ziemlich sicher das, was du nun bereits erzeugt hast – eine Liste der Personen generieren, die für deine Analyse in Frage kommen. Im zweiten Schritt kann der Datensatz dann um Variablen aus anderen Datensätzen ergänzt werden.

Der „Trick“ beim Anfügen von Informationen aus einem Episodendatensatz ist schlicht, dessen Datenstruktur für die gewünschten Informationen auf die Zielstruktur zu reduzieren/kondensieren.

Also könnte das oben beschriebene Stück Syntax wie folgt weitergehen:

// nur markierte Episoden behalten
keep if marked_episodes==1

// nur ID_t behalten
keep ID_t

// Datensatz auf eine Zeile pro ID_t reduzieren
duplicates drop

// temporär speichern
tempfile case_selection
save `"`case_selection'"'

// CohortProfile öffnen
neps : use CohortProfile

// durch Verbinden mit ID-Datensatz: Markierung der relevanten Fälle
merge m:1 ID_t using `"`case_selection'"' , generate(analysis_sample) assert(match master)
label define _merge 1 `"irrelevant"' 3 `"analysis_sample"' , modify

// Ergebnis betrachten
tabulate wave analysis_sample

/* Ab hier:
. merge 1:1 ID_t wave using {pTargetCATI|pTargetCAWI} , keepusing({using_varlist})
* {using_varlist} ist die Liste der gewünschten Variablen aus einem der using-Datensätze
*/	

Ich hoffe, auch das hilft etwas weiter. Der Schnippsel führt die einfachst mögliche Form der Reduktion von Episodendaten durch, nämlich schlicht die Reduktion auf ausschließlich die ID der Befragungsperson. Wenn inhaltliche Variablen eingefügt werden wollen, können natürlich beliebig komplexe Operationen verwendet werden (man stelle sich nur vor: Der höchste bis zum Befragungszeitpunkt erreichte Wert im Berufsprestige, oder ähnliches).

Beste Grüße
Bela

PS: Ralfs Anmerkung zum Umgang mit im Prüfmodul annullierten Episoden ist natürlich völlig richtig, darauf hätte ich vermutlich direkt hinweisen sollen; das Thema ist in der oben geposteten Syntax nur implizit berücksichtigt, weil solche Episoden in den (korrigierten, also mit dem Suffix _g1 versehenen) Datumsvariablen Missingwerte enthalten, sodass die Datumsberechnung ohnehin nicht ausgeführt wird.

Lieber Bela,

herzlichen Dank für die Erläuterung! Der Weg scheint mir klar zu sein.

Mein Problem ist allerdings, dass ich nicht mit Stata sondern mit SPSS arbeite. Bei dem Zusammenfügen von CohortProfile mit dem ID-Datensatz gelingt es mir leider nicht, die relevanten Fälle zu markieren, da ich nicht weiß wie in SPSS ein entsprechender Befehl lautet oder über welche Option das funktioniert. Hier sehe ich auch nur die Option eins zu viele zusammenführen und nicht viele zu eins zusammenführen
Weißt du eventuell, wie ich in SPSS im Cohort Profile die ID_t identifizieren kann, die auch in meinem ID-Datensatz enthalten sind?

EDIT: Ich glaube, es gelöst zu haben, indem ich im ID_Datensatz eine zusätzliche Variable „Relevant“ erstellt habe, die immer die Ausprägung 1 hat. Beim Heranspielen der Daten an den Cohort-Datensatz (eins zu viele), haben dann die relevanten IDs (also die auch im ID_Datensatz sind) den Wert 1 bei der Variable „Relevant“, alle anderen haben keinen Wert. So kann ich dann die relevanten Personen (die mit einer 1) auswählen :slight_smile:. Klingt das plausibel?

Vielen lieben Dank

Sarah

Hi Sarah,
ich habe erst jetzt wahrgenommen, dass du noch ein weiteres Mal geantwortet/rückgefragt hast, sorry. Natürlich ist alles, was ich oben beschrieben habe, genauso mit SPSS oder R umsetzbar; ich illustriere meine Beispiele nur gerne mit Stata, weil ich es schlicht am flüssigsten beherrsche und es (meine Meinung) für Datenmanagement-Operationen die am einfachsten verständliche Syntaxsprache bietet.

Der Workaround, den du in SPSS gewählt hast, weil MATCH FILES keine m:1 Beziehungen auflösen kann, ist natürlich völlig legitim. Eine elegantere Lösung dafür kenne ich auch nicht, außer natürlich den ganzen Match-Prozess umgekehrt ablaufen zu lassen.

Ich hoffe, du bist mit deiner Lösung ein gutes Stück weiter gekommen. Viel Erfolg noch!
Bela