Übergang in die Sek II konstruieren

Liebes fdz_lifbi Team,

ich schreibe gerade an meiner Masterthesis und freue mich sehr über das NEPScomp Angebot! Vielen Dank dafür! Ich bereite gerade meine Daten (NEPScomp SC4, Demography & Competency) für meine Analysen zur Fragestellung “Einfluss digitaler Kompetenzen auf die Bildungswege von Schüler:innen mit und ohne Migrationshintergrund” vor.

Zunächst habe ich den Datensatz vorbereitet und schon mal die ICT-Kompetenz gemerged. Hier interessiert mich nur die ICT-Kompetenz aus Welle 1, da der “Bildungsweg”, den ich mir anschauen möchte, der Übergang in die Sek II ist. Außerdem habe ich über die Variable “Generationenstatus” den Migrationshintergrund konstruiert und über die Variable “aktuelle Schulform” nur Regelschüler:innen eingeschlossen.

Als “Bildungsweg” möchte ich ja den Übergang in die Sek II betrachten. Die einzige Variable, die ich im NEPScomp bisher gefunden habe, ist auch hierfür “aktuelle Schulform”. Ich habe überlegt, dass ich alle, die ab Welle 5 am Gymnasium oder der Gesamtschule (Gymnasialzweig) waren als “Übergang Sek II” kategorisiere und alle auf die das nicht zutrifft als “kein Übergang". Das ist jetzt vielleicht nicht das sauberste Vorgehen, aber eine bessere Idee und Alternative habe ich leider nicht… Vielleicht fällt euch ja noch etwas ein, wie ich nicht alle missings automatisch als 0 kategorisiere, sondern verlässlichere Informationen bekomme?

Hier mein (gekürztes) bisheriges Do-File:

Zentrale Variablen im Demography-Datensatz:

  • ID_t = Kennung der Zielperson
  • wave = Kennung der Erhebungswelle
  • t400500_g1 = Generationenstatus
  • t723080_g1 = aktuelle Schulform (konstruiert)

im Competency-Datensatz:

  • ic_sc1 = QUERSCHNITT: ICT Kompetenz: WLE (korrigiert)

*merge

preserve
use „SC4_NEPScomp_Competency_1-0-0.dta“, clear
keep ID_t wave ic_sc1
sort ID_t wave
save „SC4_NEPScomp_ICT.dta“, replace
restore

merge 1:1 ID_t wave using „SC4_NEPScomp_ICT.dta“
tab _merge
drop _merge
sort ID_t wave

*2.3 ICT-Kompetenzwert aus Welle 1 als Personenmerkmal (Variable, trägt für jede Person den ICT-Wert aus Welle 1)
gen ic_w1 = ic_sc1 if wave == 1
bysort ID_t: egen ic_w1_pers = max(ic_w1)
drop ic_w1
label var ic_w1_pers „ICT-Kompetenz (Welle 1)“

*Migrationshintergrund
label define mig3 1 „1. Gen“ 2 „2. Gen“ 3 „kein MH / max. 1 (Groß)Elternteil Ausland“

replace migra_g3_p = 1 if wave == 1 & (t400500_g1 == 1 | t400500_g1 == 2)
replace migra_g3_p = 2 if wave == 1 & t400500_g1 == 3
replace migra_g3_p = 3 if wave == 1 & (t400500_g1 == 0 | (t400500_g1 >= 4 & t400500_g1 <= 10))

label values migra_g3_p mig3

bysort ID_t (wave): egen migra_g3 = max(migra_g3_p)
drop migra_g3_p

SEK I-Regelschulen definieren (t723080_g1, Regelschulen = Values 2–9 und 11–15)

replace sekI_regelschule = 0 if (t723080_g1 == 1 | t723080_g1 == 10 | t723080_g1 == 16 | t723080_g1 == 17)
replace sekI_regelschule = 1 if t723080_g1 >= 2 & t723080_g1 <= 9
replace sekI_regelschule = 1 if t723080_g1 >= 11 & t723080_g1 <= 15

label define regelschule 0 „keine Regelschule“ 1 „Regelschule Sek I“
label var sekI_regelschule „Regelschule“
label values sekI_regelschule regelschule
keep if sekI_regelschule == 1

* Übergang in die Sekundarstufe II

* Übergang = mind. einmal ab Welle >= 5 in Gymnasium (Value 9) oder Gesamtschule, gymnasialer Zweig (Value 14)

*5.1 Sek II ab Welle 5 (Hilfsvariable)
gen sekII_w5 = 0
replace sekII_w5 = 1 if wave >= 5 & (t723080_g1 == 9 | t723080_g1 == 14) // prüft für jede Welle einer Person, ob Sek II Übergang vorliegt; sekII_w5 = 1, wenn Person in Welle >= 5 in Value 9 oder 14 vorzufinden ist

label var sekII_w5 „Sek II (Gym / GS gymn.) in dieser Welle (ab W5)“

*5.2 Personenindikator: jemals Sek II erreicht → tatsächliche Übergangsvariable
bysort ID_t: egen uebergang_sekII = max(sekII_w5) // soll pro Person prüfen, ob sekII_w5 mindestens einmal den Wert 1 annimmt, dann gilt diese Person als Übergang Sek II

___________________________________________________________________________________________________

Ist es plausibel anzunehmen, dass diejenigen (ID_t), die ab Welle 5 nicht mehr auftauchen, nicht den Übergang in die Sek II vollzogen haben?

Vielen Dank für eure Hilfe!
Serena

Liebes FDZ-LIfBi Team,

ich habe nun doch in die SUFs geschaut und denke mit diesen Variablen ist es robuster. Würde mich über eure Einschätzung freuen!

*==============================================================

SC4 SUF Cohort Profile *==============================================================

  • Zentrale Variablen im CohortProfile-Datensatz:

  • ID_t = Kennung der Zielperson

  • wave = Kennung der Erhebungswelle

  • tx80230 = Panel Frame

  • tx80234 = Hauptfeld: Klassenstufe

  • tx80106 = Sample Schulform

*==============================================================

Konstruktion „Übergang Sek II“ (perosnenbasiert)
*==============================================================

  • Konstruktion erfolgt mittels der Variablen „Panel Frame“, „Hauptfeld: Klassenstufe“ und „Sample Schulform“

  • Bedingungen für Sek II-Übergang:

    • ab Welle >= 5
    • Beobachtung innerhalb eines interpretierbaren Kontextes (Panel Frame: Values 1, 2)
    • Klassenstufe >= 11 (Hauptfeld: Klassenstufe: Values 11, 12, 13)
    • Schulform muss Schule mit mehreren Bildungsgängen, integrierte Gesamtschule oder Gymnasium sein (Sample Schulform: Values 3, 5, 6)
  • Kein Sek II-Übergang:

    • ab Welle >= 5 mindestens einmal beurteilbar (Panel Frame: Values 1, 2, 3)
    • aber nie in Klassenstufe >= 11 (Hauptfeld: Klassenstufe: Values 11, 12, 13) und Schulform mit mehreren Bildungsgängen, integrierte Gesamtschule oder * Gymnasium sein (Sample Schulform: Values 3, 5, 6)
  • Missing:

    • Panel Frame Values: -54, -55
    • keine Information über Sek II-Klassenstufe oder Sek II-Schulform (Values 11, 12, 13 bzw. 3, 5, 6)

*--------------------------------------------------------------

1.1 Sek II-Übergang erfolgt ab Welle 5 (Hilfsvariable)
*--------------------------------------------------------------

gen sekII_wave = 0
replace sekII_wave = 1 if wave >= 5 & tx80234 >= 11 & (tx80106 == 3 | tx80106 == 5 | tx80106 == 6) & (tx80230 == 1 | tx80230 == 2)

label var sekII_wave „Sek II ab W5“

*--------------------------------------------------------------

1.2 Beurteilbarer Kontext ab Welle 5 (Hilfsvariable)
*--------------------------------------------------------------

gen beurteilbar_wave = 0
replace beurteilbar_wave = 1 if wave >= 5 & (tx80230 == 1 | tx80230 == 2 | tx80230 == 3)

label var beurteilbar_wave „Beurteilbar ab W5“

*--------------------------------------------------------------

1.3 Personenebene (Zuordnung zu ID_t)
*--------------------------------------------------------------

bysort ID_t: egen jemals_sekII = max(sekII_wave)
bysort ID_t: egen mind_beurteilbar_w5 = max(beurteilbar_wave)

label var jemals_sekII „Jemals Sek II erreicht (ab W5)“
label var mind_beurteilbar_w5 „Mind. eine beurteilbare Beobachtung ab W5“

*--------------------------------------------------------------

1.4 Finale Übergangsvariable
*--------------------------------------------------------------

gen uebergang_sekII = .
replace uebergang_sekII = 1 if jemals_sekII == 1
replace uebergang_sekII = 0 if jemals_sekII == 0 & mind_beurteilbar_w5 == 1

*Bleibt missing, wenn ab W5 nie beurteilbar

label define sekII_lbl 0 „kein Übergang Sek II“ 1 „Übergang Sek II“, replace
label values uebergang_sekII sekII_lbl
label var uebergang_sekII „Übergang in die Sek II“

*--------------------------------------------------------------

1.5 Auf Personenebene reduzieren (für merge)
*--------------------------------------------------------------

bysort ID_t (wave): keep if _n == 1
sort ID_t

Hallo Serena!

Ich habe es versucht, etwas mehr rauszuholen aus den vorhanden Informationen und wollte zusätzliche Variablen für Klassenstufen und Schulformen verwerden. Aber so richtig funktioniert das nicht. Wenn du Übergänge abbilden willst, musst die regulären SUF-Daten und am besten auch noch die Episodendaten aufbereiten. Aber im Rahmen einer Masterarbeit ist das vielleicht etwas zu viel. Vielleicht reichen die Angaben im CohortProfile aus.

VG
Dietmar

use "SC4_NEPScomp_Demography_1-0-0.dta", clear
keep ID_t wave p723400 ///
t723080_g1 t400500_g1  ///
tf11406 p723400 tf11401

 // gemeinsame Klassenstufenvariable Eltern/Kind
clonevar klassenstufe_demo = tf11406
replace klassenstufe_demo = p723400 if missing(klassenstufe_demo)
 label variable klassenstufe_demo "`: variable label klassenstufe_demo' (tf11406;p723400)"
 
 drop p723400 tf11406
 
 rename (t*) (t*_demo)
tempfile demo
save "`demo'", replace


use "SC4_NEPScomp_LearningEnv_1-0-0.dta", clear
keep ID_t wave te00002 tf11205 tf11405 te00014    

// Schulformvariablen zusammenfassen
clonevar schulform_env = tf11405
 replace schulform_env = tf11205 if missing(schulform_env)
 label variable schulform_env "`: variable label schulform_env' (tf11405;tf11205)"
drop tf11405 tf11205


foreach var of varlist  te00002 te00014  {
	rename `var' `var'_env
}
 

merge 1:1 ID_t wave using "`demo'", nogenerate

// Klassenstufenvariablen zusammenfassen
replace te00014_env = te00014_env +9 if inrange(te00014_env,1,4)
replace te00014_env = -20 if te00014_env == 5
clonevar klassenstufe_ha = klassenstufe_demo
replace klassenstufe_ha = te00014_env if missing(klassenstufe_ha)
 label variable klassenstufe_ha "Besuchte Klassenstufe, harmonisiert (tf11406;p723400;te0001)"
drop klassenstufe_demo te00014_env

generate t723080_ha = t723080_g1_demo
 replace t723080_ha =  3 if schulform_env == 5 // Mittelschule
 
 replace t723080_ha =  4 if te00002_env == 5 // Realschule
 
 replace t723080_ha =  5 if te00002_env == 10 // Gesamtschule, auch integrierte Schulen, integrierte Gesamtschule (Berlin)

 
 replace t723080_ha =  8 if te00002_env == 6 // verbundene Haupt- und Realschule, auch...
 replace t723080_ha =  8 if schulform_env == 1 // verbundene Haupt- und Realschule
 
 replace t723080_ha =  14 if schulform_env == 11 // Gymnasialzweig Gesamtschule
 replace t723080_ha =  9 if schulform_env == 12 // Aufbaugymnasium
 replace t723080_ha =  9 if schulform_env == 13 // Abendgymnasium
 replace t723080_ha =  9 if schulform_env == 14 // Technisches Gymnasium
 replace t723080_ha =  9 if schulform_env == 15 // Wirtschaftsgymnasium 
 replace t723080_ha =  9 if schulform_env == 16 // Berufsoberschule
 replace t723080_ha =  9 if schulform_env == 17 // Fachoberschule
 replace t723080_ha =  9 if schulform_env == 19 // andere berufl. Gymnasien
 replace t723080_ha =  9 if schulform_env == 20 // Fachgymnasium
 replace t723080_ha =  9 if te00002_env == 8 // Gymnasium, auch Kolleg
 
 replace t723080_ha =  17 if te00002_env == 14 // "berufliche Schule, zur Erreichung eines allgemein bildenden Schulabschlusses, z.B. Fachoberschule

  
 replace t723080_ha = 10 if te00002_env == 12 // Förderschule
 //duplicates drop te00002_env schulform_env t723080_g1_demo t723080_ha, force
sort t723080_g1_demo
label values t723080_ha `:value label t723080_g1_demo'


 replace t723080_ha =  18 if te00002_env == 13 // "berufliche Schule, zur Erreichung eines allgemein bildenden Schulabschlusses, z.B. Fachoberschule
 replace t723080_ha =  19 if schulform_env == 10 // "Berufsschule im dualen System
 replace t723080_ha =  20 if schulform_env == 2
 replace t723080_ha =  21 if schulform_env == 8
 replace t723080_ha =  22 if schulform_env == 18
 replace t723080_ha =  23 if schulform_env == 21
 replace t723080_ha =  24 if schulform_env == 22
 replace t723080_ha =  25 if schulform_env == 23
 replace t723080_ha =  26 if schulform_env == 24
 replace t723080_ha =  27 if schulform_env == 25
 replace t723080_ha =  28 if schulform_env == 26
 replace t723080_ha =  29 if schulform_env == 27
 
label define `: val lab t723080_ha' 18"berufliche Schule, zur Erreichung eines allgemein bildenden Schulabschlusses, z.B. Fachoberschule" ///
									19"Berufsschule im dualen System" ///
									20"Berufsaufbauschule" ///
									21"Wirtschaftsschule" ///
									22"Erweiterte Oberschule" ///
									23"Fachakademie" ///
									24"Kolleg" ///
									25"Berufskolleg" ///
									26"Fachschule" ///
									27"(Höhere) Berufsfachschule" ///
									28"Höhere Handelsschule" ///
									29"Oberstufenzentrum" ///
									, modify
label variable t723080_ha "`: variable label t723080_g1_demo' (t723080_g1;tf11405;tf11205)"
drop schulform_env te00002_env t723080_g1_demo
									
sort ID_t wave 
br ID_t wave klassenstufe
// die Früjahrserhebungen fand in der selben Klassenstufe wie die vorhergehenden Wellen statt, also fehlende Klassenstufen damit auffüllen
bysort ID_t (wave): replace klassenstufe_ha = klassenstufe_ha[_n-1] if !missing(klassenstufe_ha[_n-1]) & inlist(wave,4,6)

replace klassenstufe_ha = -20 if tf11401_demo == 2	// -20 vergeben, wenn Schule beendet	

// auch nachfolgende Welle mit -20 auffüllen
sum wave
forvalues wave = 1 /`r(max)' {
	bysort ID_t (wave): replace klassenstufe_ha = -20 if klassenstufe_ha[_n-1] == -20 & missing(klassenstufe_ha)
}

// Wenn Person in vorheriger und in nachfolgender Welle dieselbe Schulform besuchten, aktuelle Welle damit ersetzen, wenn missig
bysort ID_t (wave): replace t723080_ha = t723080_ha[_n-1] if !missing(t723080_ha[_n-1]) & !missing(t723080_ha[_n+1]) & t723080_ha[_n-1] == t723080_ha[_n+1] & missing(t723080_ha)
									
								

tempfile SC4_NEPScomp_Demo
save "`SC4_NEPScomp_Demo'", replace

use "SC4_NEPScomp_Competency_1-0-0.dta", clear
keep ID_t wave ic_sc1
sort ID_t wave
tempfile SC4_NEPScomp_ICT
save "`SC4_NEPScomp_ICT'", replace


merge 1:1 ID_t wave using "`SC4_NEPScomp_Demo'", nogenerate

sort ID_t wave

*2.3 ICT-Kompetenzwert aus Welle 1 als Personenmerkmal (Variable, trägt für jede Person den ICT-Wert aus Welle 1)
gen ic_w1 = ic_sc1 if wave == 1
bysort ID_t: egen ic_w1_pers = max(ic_w1)
drop ic_w1
label var ic_w1_pers "ICT-Kompetenz (Welle 1)"


*Migrationshintergrund
rename t400500_g1_demo t400500_g1
label define mig3 1 "1. Gen" 2 "2. Gen" 3 "kein MH / max. 1 (Groß)Elternteil Ausland"
generate migra_g3_p = -55
replace migra_g3_p = 1 if wave == 1 & (t400500_g1 == 1 | t400500_g1 == 2)
replace migra_g3_p = 2 if wave == 1 & t400500_g1 == 3
replace migra_g3_p = 3 if wave == 1 & (t400500_g1 == 0 | (t400500_g1 >= 4 & t400500_g1 <= 10))

label values migra_g3_p mig3

bysort ID_t (wave): egen migra_g3 = max(migra_g3_p)
drop migra_g3_p

//SEK I-Regelschulen definieren (t723080_g1, Regelschulen = Values 2–9 und 11–15)
gen sekI_regelschule = -55
replace sekI_regelschule = 0 if inlist(t723080_ha,1,10,16,17)
replace sekI_regelschule = 1 if inrange(t723080_ha,2,9) |  inrange(t723080_ha,11,15)
fre t723080_ha if sekI_regelschule == -55

 /* Vielleicht lässt sich da noch was verwursten?
 

t723080_ha -- aktuelle Schulform (konstruiert) (t723080_g1;tf11405;tf11205)
---------------------------------------------------------------------------------------------------
                                                      |      Freq.    Percent      Valid       Cum.
------------------------------------------------------+--------------------------------------------
Valid   18 berufliche Schule, zur Erreichung eines    |        153       0.08      11.93      11.93
           allgemein bildenden Schulabschlusses, z.B. |                                            
           Fachoberschule                             |                                            
        19 Berufsschule im dualen System              |        129       0.07      10.05      21.98
        20 Berufsaufbauschule                         |        115       0.06       8.96      30.94
        21 Wirtschaftsschule                          |         21       0.01       1.64      32.58
        22 Erweiterte Oberschule                      |          2       0.00       0.16      32.74
        23 Fachakademie                               |          2       0.00       0.16      32.89
        24 Kolleg                                     |         17       0.01       1.33      34.22
        25 Berufskolleg                               |        336       0.18      26.19      60.41
        26 Fachschule                                 |         47       0.03       3.66      64.07
        27 (Höhere) Berufsfachschule                  |        385       0.21      30.01      94.08
        28 Höhere Handelsschule                       |         53       0.03       4.13      98.21
        29 Oberstufenzentrum                          |         23       0.01       1.79     100.00
        Total                                         |       1283       0.70     100.00           
Missing .                                             |     181170      99.30                      
Total                                                 |     182453     100.00                      
---------------------------------------------------------------------------------------------------
*/

label define regelschule 0 "keine Regelschule" 1 "Regelschule Sek I"
label var sekI_regelschule "Regelschule"
label values sekI_regelschule regelschule
**********************************************************

keep if sekI_regelschule == 1

* Übergang in die Sekundarstufe II

* Übergang = mind. einmal ab Welle >= 5 in Gymnasium (Value 9) oder Gesamtschule, gymnasialer Zweig (Value 14)

*5.1 Sek II ab Welle 5 (Hilfsvariable)
gen sekII_w5 = 0
replace sekII_w5 = 1 if wave >= 5 & (t723080_ha == 9 | t723080_ha == 14) // prüft für jede Welle einer Person, ob Sek II Übergang vorliegt; sekII_w5 = 1, wenn Person in Welle >= 5 in Value 9 oder 14 vorzufinden ist
replace sekII_w5 = 1 if klassenstufe_ha > 10 & !missing(klassenstufe_ha) & inlist(t723080_ha,9,14) // leider nix durch klassenstufen gewonnen
label var sekII_w5 "Sek II (Gym / GS gymn.) in dieser Welle (ab W5)"

*5.2 Personenindikator: jemals Sek II erreicht → tatsächliche Übergangsvariable
bysort ID_t: egen uebergang_sekII = max(sekII_w5) // soll pro Person prüfen, ob sekII_w5 mindestens einmal den Wert 1 annimmt, dann gilt diese Person als Übergang Sek II


ich melde mich morgen dazu

Hallo Dietmar,

vielen , vielen Dank! Ja, ich glaube auch, dass es mit NEPScomp leider nicht funktioniert. Bei den Variablen zur z. B. Klassenstufe waren vor allem die ohnehin geringen Fallzahlen in den Sek I Jahrgängen besonders gering, was irgendwie auch nicht so ganz gepasst hatte…

Mir ist im SUF Cohort Profile gerade noch aufgefallen, dass Personen die einen Schulwechsel vorgenommen haben, nicht so ganz berücksichtigt werden, weil sie aufgrund der tx80106 (Sample Schulform) raus gekickt werden. Versuche gerade noch tx80232 und tx80233 (individuelle Nachverfolgung: Schulform) zu verwenden, um das zu beseitigen.

Habe die Bedingungen für sekII_wave wie folgt angepasst, sonst ist alles wie gehabt:
*--------------------------------------------------------------

1.1 Sek II-Übergang erfolgt ab Welle 5 (Hilfsvariable)
*--------------------------------------------------------------

gen sekII_wave = 0
replace sekII_wave = 1 if wave >= 5 & tx80230 == 1 & tx80234 >= 11 & (tx80106 == 3 | tx80106 == 5 | tx80106 == 6)
replace sekII_wave = 1 if wave >= 5 & tx80230 == 2 & tx80234 >= 11 & (tx80232 == 3 | tx80232 == 7)

*Wenn individuelle Nachverfolgung, dann wird Schulform geprüft (PAPI)
replace sekII_wave = 1 if wave >= 5 & tx80230 == 2 & tx80234 >= 11 & (tx80233 == 1 | tx80233 == 2)

*Wenn individuelle Nachverfolgung, dann wird Schulform geprüft (CAWI)

label var sekII_wave „Sek II ab W5“

Viele Grüße
Serena

Hallo Serena!

Sorry, dass es immer etwas dauert, bis du eine Antwort erhältst, aber wir sind gerade etwas unterbesetzt :slight_smile:

ich sehe hier ein paar Probleme in deiner Syntax:

  • du lässt keinen Übergange vor Welle 5 zu, das schränkt die Fallzahl etwas ein
  • du benutzt die Sample-Schulform: das ist nur die Schule, in die die Kinder gingen, als die Stichprobe gezogen wurde bzw. zum Interview der Welle 1.
  • du verwendest Schüler der Gesamtschule, lässt aber andere Schulformen weg >> entweder du bereitest alle Schulformen soweit auf oder du beschränkst dich auf Gymnasien
replace sekII_wave = 1 if wave >= 5 & tx80234 >= 11 & (tx80106 == 3 | tx80106 == 5 | tx80106 == 6) & (tx80230 == 1 | tx80230 == 2)
replace sekII_wave = 1 if wave >= 5 & tx80230 == 2 & tx80234 >= 11 & (tx80233 == 1 | tx80233 == 2)
// Nur Gymnasiat:innen:
clonevar schulform = tx80106
 replace schulform = -55 if tx80230 != 1
 replace schulform =   2 if tx80232 == 4 & schulform== -55 // Hauptschule
 replace schulform =   4 if tx80232 == 5 & schulform== -55 // Realschule
 replace schulform =   6 if tx80232 == 7 & schulform== -55 // Gymnasium
 replace schulform =   6 if tx80233 == 1 & schulform== -55 // Gymnasium
 replace schulform =   7 if tx80232 == 9 & schulform== -55 // Förderschule
 
generate sekII_v2= (tx80234 >= 11 & schulform == 6)
  • es gibt viele Probleme um Schulformen konsistent abbilden zu können und in vielen Fällen widersprechen sich die Angaben von Schüler:innen und Eltern, deshalb gibt es die Variable t723080_g1, siehe auch den Technical Report dazu (https://doi.org/10.5157/NEPS:WP46:1.0)
// Alternative mit der korrigierten Variable:
generate sekII_v3 = (tx80234 >= 11 & inlist(t723080_g1,9,14))

Du hast natürlich noch wenigere Fälle zur Verfügung, wenn du sek_II_v2 oder sekII_v3 verwendest, aber die Ergebnisse sind etwas sauberer.

Man könnte natürlich alle Schulformvariablen und Angaben zu Klassenstuen in den Datensätzen (pTarget, pTargetCATI,pTargetCAWI, spSchool und spParentSchool harmonisieren damit man konsistentere Ergebnisse erhält, aber das ist sehr viel Aufwand und wäre schon an sich eine eigene Masterarbeit wert. Ich versuche mich gerade daran, um die Hürden im Umgang mit den Daten für die zukünftigen Versionen von NEPScomp zu senken.

Viele Grüße und schöne Feiertag
Dietmar

Hallo Dietmar,

vielen Dank! Ich habe den Beobachtungszeitraum ab Welle 5 gewählt, da, wenn ich das Dokument zur Studienübersicht richtig verstehe, ab dieser Welle die Zielpersonen Schüler:innen der Klassenstufe 11 sind. Auf diese Weise werden Personen, die nach Welle 5 über Panel Frame (tx80230) nicht ermittelbar/fehlend sind als missing generiert. Wenn ich alle Wellen berücksichtige, werden sie als “kein Übergang” gezählt, obwohl sie z. B. nur in den ersten Wellen “beobachtbar” sind, aber später kann ich eigentlich nicht beurteilen, ob sie tatsächlich außerhalb des Schulsystems sind o. Ä..

Um “meine” Variable konsistenter zu machen, habe ich nun folgende Variablen und Bedinungen genutzt. Wenn ich sitchprobenartig einzelne Fälle im originalen SUF mit meinen Daten vergleiche, scheint der Übergang auf diese Weise gut abgebildet zu werden. Ich denke, so kann ich das für meine Masterarbeit nutzen.

Noch konsistenter wäre es natürlich dein vorgeschlagenes Vorgehen anzuwenden und sämtliche Daten zu harmonisieren, aber für meine Zwecke ist mein Vorgehen wohl robust genug. Ich möchte euch jetzt gar nicht mehr Arbeit machen, sondern nur zeigen, was ich meinen Kompetenzen entsprechend “basteln” konnte. Danke für Euer umfangreiches Angebot mit Schulungen, NEPScomp, diesem Forum und alles Weitere, das ist wirklich sehr hilfreich!

Danke und einen guten Rutsch!

/********************************************************************
==============================================================
 1. SC4 SUF Cohort Profile
==============================================================
 Zentrale Variablen im CohortProfile-Datensatz:
	ID_t		= Kennung der Zielperson
	wave		= Kennung der Erhebungswelle
	tx80230		= Panel Frame
	tx80231		= Grund für individuelle Nachverfolgung
	tx80232		= individuelle Nachverfolgung: Schulform (PAPI)
	tx80233		= individuelle Nachverfolgung: Schulform (CAWI)
	tx80234		= Hauptfeld: Klassenstufe
	tx80106		= Sample Schulform
********************************************************************/

use "SC4_CohortProfile_D_15-0-0.dta", clear
sort ID_t wave

/********************************************************************
==============================================================
1. Konstruktion "Übergang Sek II" (personenbasiert)
==============================================================
Konstruktion erfolgt mittels der Variablen "Zielperson" (ID_t), "Erhebungswelle" (wave), "Panel Frame" (tx80230), "Grund für individuelle Nachverfolgung" (tx80231), "individuelle Nachverfolgung: Schulform" (tx80232 bzw. tx80233), "Hauptfeld: Klassenstufe" (tx80234), "Sample Schulform" (tx80106)

* Bedingungen für Sek II-Übergang:
	- ab Welle (wave) >= 5 
	- Klassenstufe (tx80234) >= 11 (Hauptfeld: Klassenstufe: Values 11, 12, 13)
	- Beobachtung innerhalb eines interpretierbaren Kontextes (Panel Frame (tx80230): Values 1, 2)
	- eine SekII-Schulform abhängig vom Panel Frame (tx80230: Values 1, 2) aufweist: 
		- wenn NEPS Sample-Schule (1), dann muss Schule (tx80106) mit mehreren Bildungsgängen, integrierte Gesamtschule oder Gymnasium sein (Sample: Schulform (tx80106): Values 3, 5, 6)
		- wenn individuelle Nachverfolgung (2), dann muss Grund dafür Schulwechsel (tx80231 == 1) sein und Schulform Gymnasium oder Gesamtschule (tx80232 =
		  3 oder 7 bzw. tx80233 = 1 oder 2)
* Kein Sek II-Übergang:
	- ab Welle >= 5 mindestens einmal beurteilbar (Panel Frame (tx80230): Values 1, 2, 3)
	- aber nie die oben definierten SekII-Kombinationen erfüllt sind
* Missing: 
	- Panel Frame Values: -54, -55
	- keine Information über Sek II-Klassenstufe oder SekII-Schulform
********************************************************************/

*--------------------------------------------------------------
* 1.1 Sek II-Übergang erfolgt ab Welle 5 (Hilfsvariable)
*--------------------------------------------------------------
* Grundsätzliche Voraussetzung für SekII-Übergang sind Beobachtungszeitpunkt ab Welle >= 5 und Klassenstufe >= 11 sowie die folgenden Bedingungen
generate sekII_wave = 0
replace sekII_wave = 1 if wave >= 5 & tx80234 >= 11 & tx80230 == 1 & (tx80106 == 3 | tx80106 == 5 | tx80106 == 6)
* Wenn NEPS Sample-Schule (tx80230 == 1), dann wird Sample-Schulform (tx80106) geprüft 
replace sekII_wave = 1 if wave >= 5 & tx80234 >= 11 & tx80230 == 2 & tx80231 == 1 & (tx80232 == 3 | tx80232 == 7)
* Wenn individuelle Nachverfolgung (tx80230 == 2), dann wird Grund für die Nachverfolgung (Schulwechsel: tx80231 == 1) und Schulform geprüft (PAPI (tx80232); Values 3, 7)
replace sekII_wave = 1 if wave >= 5 & tx80234 >= 11 & tx80230 == 2 & tx80231 == 1 & (tx80233 == 1 | tx80233 == 2)
* Wenn individuelle Nachverfolgung (tx80230 == 2), dann wird Grund für die Nachverfolgung (Schulwechsel: tx80231 == 1) und Schulform geprüft (CAWI (tx80233); Values 1, 2)

label var sekII_wave "Sek II ab W5"
* = 1 (ja), wenn Sek II ab Welle 5, Klassenstufe 11, beobachtbarer Kontext vorhanden, SekII-Schulform (auch bei Schulwechsel)

*--------------------------------------------------------------
* 1.2 Beurteilbarer Kontext ab Welle 5 mittels Variable Panel Frame (tx80230) (Hilfsvariable)
*--------------------------------------------------------------

generate beurteilbar_wave = 0
replace beurteilbar_wave = 1 if wave >= 5 & (tx80230 == 1 | tx80230 == 2 | tx80230 == 3)
* Auschluss von missings und designbedingt fehlend (Panel Frame; Values -54, -55) ab Welle >= 5 

label var beurteilbar_wave "Beurteilbar ab W5"
* Beurteilbarer Kontext ist ab Welle 5 vorhanden

*--------------------------------------------------------------
* 1.3 Zuordnung zu ID_t
*--------------------------------------------------------------

bysort ID_t (wave): egen jemals_sekII = max(sekII_wave) 
* Aggregation (Einzeldaten zu Gesamtwert zusammenfassen) pro Person (ID_t), wenn Bedingung in mindestens einer Welle erfüllt ist; Diese Beobachtung wird auf jede Welle der Person übertragen

bysort ID_t (wave): egen mind_beurteilbar_w5 = max(beurteilbar_wave)
* Aggregation (Einzeldaten zu Gesamtwert zusammenfassen) pro Person (ID_t), wenn Bedingung in mindestens einer Welle erfüllt ist; Diese Beobachtung wird auf jede Welle der Person übertragen 

label var jemals_sekII "Jemals Sek II erreicht (ab W5)"
label var mind_beurteilbar_w5 "Mind. eine beurteilbare Beobachtung ab W5"

*--------------------------------------------------------------
* 1.4 Finale Übergangsvariable
*--------------------------------------------------------------

generate uebergang_sekII = .
replace uebergang_sekII = 1 if jemals_sekII == 1
replace uebergang_sekII = 0 if jemals_sekII == 0 & mind_beurteilbar_w5 == 1
* Bleibt missing, wenn ab Welle 5 nie beurteilbar

label define sekII_lbl 0 "kein Übergang Sek II" 1 "Übergang Sek II", replace
label values uebergang_sekII sekII_lbl
label var uebergang_sekII "Übergang in die Sek II"

* Kontrolle
sort ID_t wave
isid ID_t wave

*--------------------------------------------------------------
* 1.5 Auf Personenebene reduzieren (für merge)
*--------------------------------------------------------------

bysort ID_t (wave): keep if _n == 1
* Behält Beobachtung pro ID_t jeweils ein mal, übrige Zeilen werden gelöscht
sort ID_t
isid ID_t 

Hallo Serena!

Ja, das ist alles ok. Es haben sich schon viele die Finger verbrannt, weil es zu komplex wurde - es ist eine Gratwanderung. Von daher ist es so vielleicht besser.Ich wünsche dir viel Erfolg

VG
Dietmar