Abschluss einer Berufsausbildung vor Studienbeginn

Liebes NEPS Team,

ich arbeite mit der SC5 und möchte gerne wissen, ob Personen vor Beginn des Studiums eine Ausbildung abgeschlossen haben, und später, ob das einen Einfluss auf weitere Variablen hat.

Dafür habe ich den Datensatz spVocTrain genommen und ihn so aufbereitet, dass ich nur noch einen Wert pro Person habe: Berufsausbildung vor Beginn des Studiums mit den Ausprägungen „Ja“ und „Nein“.

Dafür habe ich den Datensatz zunächst gefiltert, damit nur noch Daten über berufliche Ausbildungen (mMn ts15201 <= 4) enthalten sind, die vor Oktober 2010 (Beginn des Studiums Welle 1) abgeschlossen wurden (ts1512y <= 2010 & ts1512m <= 10). Dann habe ich die Episoden jeder Person zusammengefasst - falls in irgendeiner Episode „Ja“ geantwortet wurde, hat die Person eine Ausbildung abgeschlossen, wurde „Nein“ und „NA“ geantwortet, bleibt die Antwort unbekannt, enthalten alle Episoden die Antwort „Nein“, dann wurde keine Ausbildung abgeschlossen. So zumindest meine Überlegung.

Bei dem Vorgehen bekomme ich etwas mehr als 3500 Personen, die angeben eine Ausbildung abgeschlossen zu haben, gegeben der Datensatz umfasst 17909 Personen, sind das ca. 20% - das finde ich erstmal plausibel. Nein-Antworten sind es allerdings nur knapp 230. Das heißt, der Anteil an fehlenden Angaben nach dem Zusammenfügen dieses Datensatzes mit beispielsweise Informationen aus einem CAWI-Datensatz einer anderen Welle ist ziemlich hoch. Gibt es eine geschickte Möglichkeit meiner gefilterten Variable die Information hinzuzufügen, die mir eine genauere Definition der Kategorie „Nein“ ermöglicht?

Ich hoffe, ich habe mich verständlich ausgedrückt.
Hier zur Nachvollziehbarkeit noch mein R-Code für die beschriebene Filterung:

spvoc_pr <- haven::read_sav("Data_SC5_D_18-0-0/SC5_spVocTrain_D_18-0-0.sav") %>%
            dplyr::select(ID_t, wave, spell, subspell, tx20100,  # linkage
                                                       ts15201,  # type of voc
                                                       ts1512m,  # end year voc
                                                       ts1512y,  # end month voc
                                                       ts15218) %>%  # finished 
           dplyr::filter(subspell == 0 & tx20100 == 1 
                         & ts15201 <= 4 
                         & ts1512y <= 2010 & ts1512m <= 10) %>%  
           # keep full / harmonized episodes & completion before WT 2010
           dplyr::group_by(ID_t) %>%
           dplyr::summarise(ts15218 = case_when(any(ts15218 == 1) ~ 1,
                                                any(ts15218 == 2) 
                                                & any(is.na(ts15218)) ~ as.numeric(NA), 
                                                all(ts15218 == 2) ~ 2))
           # summarize the data per person across spells
           # 1 = yes, 2 = no

Vielen Dank für die Hilfe und die tolle Unterstützung hier im Forum allgemein.

Herzliche Grüße,

David

Hallo David!

Ich spreche leider nur sehr schlecht R.

Ich habe dein Problem aber mit Stata nachgebaut und komme zu ähnlichen Ergebnissen. Ich habe auch in den Rohdaten nachgesehen - es sind wirklich so wenige Ausbildungsabbrüche angegeben worden. Ich würde aber die fehlenden Angaben in ts15218 aber nicht auf keinen Abschluss rekodieren. Ich glaube zwar, dass die Abbrüche unterberichtet sind, aber ich habe leider kein Heilmittel für das Problem - also nur in homöopathischen Dosen. Du könntest die Quartalsangaben in ts1512m in Monate rekodieren, annullierte Episoden (disagint == 2) löschen und die Monate >= 10 nur löschen, wenn sie im Jahr 2010 waren. Ich komme so auf 255 Personen mit Ausbildungsabbruch und 216 lassen sich mit pTagetCAWI mergen. Aber ich habe leider keine Lösung für dein Problem - scheinbar geben die Daten das einfach nicht her und der Bias ist wohl sehr groß.

Wenn hier jemand mehr weiß. kann sie oder er gerne hier in die Diskussion einsteigen.

Und hier ist noch meine Syntax.

Viele Grüße
Dietmar

use ID_t subspell tx20100 ts15201 ts15218 ts1512m ts1512y disagint using  "C:\Users\bainb201\Desktop\Data\SC5_D_18-0-0\Stata14\SC5_spVocTrain_D_18-0-0.dta" , clear
drop if disagint ==2
keep if subspell == 0  & tx20100 == 1 & inlist(ts15201,1,2,3,4,17) // 17: eine andere Ausbildung
replace ts1512m = ts1512m - 20 if inrange(ts1512m,21,32) // Quartalsangaben in Monatsangaben rekodieren
keep if (ts1512y <= 2010 & ts1512y > 0)
drop if (ts1512y == 2010 & (ts1512m>=10)) | (ts1512m < 0)  // nur Monate >= 10 ausschließen, wenn im Jahr 2010
distinct ID_t
fre ts15218
distinct ID_t if ts15218==2
keep if inlist(ts15218,1,2)

bysort ID_t: egen abschluss = min(ts15218)
label define ja_nein 1"ja" 2"nein"
label values abschluss ja_nein 
keep ID_t ts15201 abschluss 
duplicates drop ID_t, force
fre abschluss
/*

abschluss
------------------------------------------------------------
               |      Freq.    Percent      Valid       Cum.
---------------+--------------------------------------------
Valid   1 ja   |       3808      93.72      93.72      93.72
        2 nein |        255       6.28       6.28     100.00
        Total  |       4063     100.00     100.00           
------------------------------------------------------------
*/

merge 1:m ID_t using "C:\Users\bainb201\Desktop\Data\SC5_D_18-0-0\Stata14\SC5_pTargetCAWI_D_18-0-0.dta"
distinct ID_t if abschluss==2 & _merge == 3
/*
       |        Observations
       |      total   distinct
-------+----------------------
  ID_t |        817        216

*/