Matchen von Elternteil-Kind Paaren/Trios und Geschwistern im SOEP-IS

Hallo,

ich verzweifle aktuell ein wenig und wäre für jede Hilfe dankbar :smiley:

Ich verwende den SOEP für Individualdaten, dabei interessieren mich auch Informationen über die Eltern der Befragten - das ist erstmal kein Problem, die habe ich über den „bioparen“ Datensatz an meine Befragten drangemerged. Allerdings hätte ich auch gerne Infos, die in bioparen nicht drin sind, über die Befragten selbst aber vorhanden sind. Da ich weiß, dass im Datensatz (benutze hauptsächlich „pl“) als Befragte sowohl Eltern als auch Kinder enthalten sind, müsste es ja möglich sein die einfach zu matchen, also dieselben Variablen der Befragten selbst einmal für ein Elternteil und für das Kind (bzw. andersherum) aneinander zu reihen. Aber wie?

Die einzigen Pointer, die ich gefunden habe sind die „kidnr“ Variablen aus biobirth, damit konnte ich zumindest Kinder mit ihren Müttern verbinden. Allerdings kann ich damit nur ca. ein Drittel der Paare identifizieren, die es laut Datenbeschreibung eigentlich geben sollte. Dasselbe gilt für Geschwister. Hid oder cid wären auch nicht sinnvoll, weil Zusammenleben in einem Haushalt ja noch nichts über die Beziehung aussagt.

Wie kann ich Familienmitglieder, die alle als Befragte im Datensatz vorhanden sind zusammenbringen? Welche Variablen brauche ich dafür?

Ich hoffe es ist zumindest klar, was ich meine. Nicht „Bildungsniveau der Mutter von Befragter A“ sondern es gibt „Befragter A“, der hat sein eigenes Bildungsniveau angegeben, es gibt auch „Befragte K“, die auch ihr eigenes Bildungsniveau angegeben hat und das ist auch die Mutter von „Befragter A“. Das muss doch irgendwie gehen.

Danke und viele Grüße, ich nehme jeden Tipp gerne!

Hallo lsp06,

Da Du dich in der Überschrift und den Tags auf SOEP-IS beziehst, habe ich mal bei einem zuständigen Kollegen nachgefragt:

Alle nachfolgenden Informationen beziehen sich ausschließlich auf SOEP-IS.

Der bioparen Datensatz wird den Informationen auf unserer Website entsprechend seit 2020 nicht mehr aktualisiert. Insofern ist dieser Datensatz nur für vergangene Jahre nutzbar und nicht mehr für die aktuellen Erhebungen:

Insofern würden wir von der Nutzung von bioparen absehen und alternative Lösungen für entsprechende Fragestellungen erstellen.

Nun zu der eigentlichen Frage.

Mein Kollege ist sich nicht ganz sicher, ob er die Frage richtig versteht. Warum versuchen Sie Paare zu identifizieren? Geht es nicht um Eltern/Kind Beziehungen? Natürlich hat nicht jedes Paar auch Kinder.
Falls hier etwas falsch verstanden wurde, schreiben Sie gerne noch einmal, worum es Ihnen genau geht (gerne auch mit konkreten Variablen und Erhebungsjahren).

Sofern Eltern und Kinder interessant sind, würden wir – wie schon richtig gesagt – die Variable „kidpnr“ aus „biobirth“ nutzen.
https://paneldata.org/soep-is/datasets/biobirth/

Darin sind für jede „pid“ die pids der Kinder angegeben, sofern diese ermittelt werden konnten. Was man nun machen kann, ist, dass man einen reshape ausführt, sodass für jede pid eine zusätzliche Zeile mit der kidpnr entsteht.
Danach kann man über die pid Informationen über die Befragungsperson anmergen.
Wenn dies erledigt ist, kann man die pid umbenennen und die kidpnr zur pid machen. Dann kann man erneut über die „neue“ pid Informationen anmergen.
Da die „pid“ eigentlich die pid der Kinder ist, werden hier nun Informationen zu den Kindern angemerged.
Folgend ein beispielhafter Stata Code:


use „${datin}/biobirth.dta“, clear

keep pid kidpnr //nur benötigte variablen behalten*

rename kidpnr0 kidpnr* //reshape vorbereiten*

reshape long kidpnr, i(pid) j(kid) //reshape

drop kid //nicht benötigte variable

keep if kidpnr>0 //nur personen mit identifizierten kindern behalten

gen syear=2022 //beispielhaftes syear, um aktuellste information mergen zu können

merge m:1 pid syear using „${datin}/pbrutto.dta“, keepus(geburt_v2 stell_h) keep(match master) nogen //merge informationen zum elternteil

merge m:1 pid syear using „${datin}/pgen.dta“, keepus(pgisced) keep(match master) nogen //merge informationen zum elternteil

*rename pgisced pgisced_a //rename variablen der eltern zu _a

*rename geburt_v2 geburt_a //rename variablen der eltern zu _a

*rename stell_h stell_a //rename variablen der eltern zu _a

rename pid pid_temp //rename pid

rename kidpnr pid //rename kidpnr zu pid

merge m:1 pid syear using „${datin}/pbrutto.dta“, keepus(geburt_v2 stell_h) keep(match master) nogen //merge informationen zum elternteil

merge m:1 pid syear using „${datin}/pgen.dta“, keepus(pgisced) keep(match master) nogen //merge informationen zu kindern

*rename pgisced pgisced_b //rename variablen der kinder zu _b

*rename geburt_v2 geburt_b //rename variablen der kinder zu _b

*rename stell_h stell_b //rename variablen der kinder zu _b

rename pid kidpnr //rename kidpnr wieder zu kidpnr

rename pid_temp pid //rename pid wieder korrekt !!!


Das ist zugegebenermaßen nicht unbedingt elegant, dafür aber relativ unkompliziert und beliebig erweiterbar. Die Jahre, für die Daten angemerged werden sollen, sind natürlich individuell anpassbar. Allerdings ist es hierbei natürlich umgekehrt, als im Post erwähnt: Befragte A ist die Mutter und Befragte K sind die Kinder.
Theoretisch kann man das aber natürlich auch mit ein paar zusätzlichen Code-Zeilen umdrehen. Je komplizierter der Code, desto mehr muss man allerdings aufpassen, mit den Identifiern nicht durcheinanderzukommen.
Deswegen wäre eher die Empfehlung, so wenig Schritte wie möglich zu haben, bei denen die Identifier „manipuliert“ werden.

Das gleiche Prinzip müsste auch für Paare mittels der „parid“ aus „ppathl“ anwendbar sein.
https://paneldata.org/soep-is/datasets/ppathl/
Hier muss man natürlich berücksichtigen, dass Partnerschaften anders als Eltern/Kind Beziehungen nicht statisch sind und müsste ggf. noch eine Syntax für die Befragungsjahre einbauen.

Wie dem auch sei. Wir hoffen, dass wir die Frage damit beantworten oder zumindest etwas weiterhelfen konnten.
Da mein Kollege wie gesagt nicht sicher war, ob er die Frage komplett richtig verstanden hat, bitte überprüfen, ob der Code auch tatsächlich für diesen Fall nutzbar/sinnvoll ist.


Falls Bedarf nach einem direkten Austausch dazu bestehen sollte, kannst Du dich auch gerne direkt bei Martin Gerike melden:

Liebe Grüße
Philipp