Hallo Jana,
würdest du auch in dieser Weise ein Siblings-Sample erstellen? Hier am Beispiel bis Sibling-Number 3:
*To avoid error r(693)
use pid syear hid cid inti ple0008 ple0053 ple0055 ple0056 ple0072 ple0073 using „$MY_IN\pl.dta“, clear
save $MY_OUT\pl_small.dta, replace
pull master data set**********************************************************
use pid syear hid cid sex gebjahr using „$MY_IN\ppathl.dta“, clear
sort syear pid
keep if sex == 2
drop sex
*merge social parents (only biological parents => biobirth)
merge m:m pid using „$MY_IN\bioparen.dta“, keep(master match) ///
keepus(mnr fnr) nogen
*merge siblings and sex of the siblings
merge m:1 pid using „$MY_IN\biosib.dta“, keep(master match) ///
keepus(sibpnr1 sibpnr2 sibpnr3 sibpnr4 sibpnr5 sibpnr6 sibpnr7 sibpnr8 ///
sibpnr9 sibpnr10 sibpnr11 sexsib1 sexsib2 sexsib3 sexsib4 sexsib5 ///
sexsib6 sexsib7 sexsib8 sexsib9 sexsib10 sexsib11) nogen
*merge summary scale mental/physical
merge 1:1 syear pid using „$MY_IN\health.dta“, keep(master match) ///
keepus(mcs pcs) nogen
*merge current health; hospital stay prev. year (yes/no);
*number of hospital stays prev. year; nights of hospital stay prev. year;
*number of doctor visits last three mths.; no doctor visit last three mths. (yes)
merge 1:1 syear pid using „$MY_OUT\pl_small.dta“, keep(master match) ///
keepus(ple0008 ple0053 ple0055 ple0056 ple0072 ple0073) nogen
foreach var in hid cid gebjahr mcs pcs ple0008 ple0053 ple0055 ple0056 ple0072 ple0073 {
rename var'
var’_m
}
*Check for duplicates
bysort pid syear: gen count = _N
tab count
drop count
save $MY_OUT\mother.dta, replace
pull sibling data set*********************************************************
use pid syear hid cid sex gebjahr using „$MY_IN\ppathl.dta“, clear
sort syear pid
*merge siblings and sex of the siblings
merge m:1 pid using „$MY_IN\biosib.dta“, keep(master match) ///
keepus(sibpnr1 sibpnr2 sibpnr3 sibpnr4 sibpnr5 sibpnr6 sibpnr7 sibpnr8 ///
sibpnr9 sibpnr10 sibpnr11 sexsib1 sexsib2 sexsib3 sexsib4 sexsib5 ///
sexsib6 sexsib7 sexsib8 sexsib9 sexsib10 sexsib11) nogen
merge 1:1 syear pid using „$MY_OUT\pl_small.dta“, keep(master match) ///
keepus(ple0008) nogen
save $MY_OUT\siblings.dta, replace
*sibling 1
use „$MY_OUT\siblings.dta“, clear
*merge siblings and sex of the siblings
merge m:1 pid using „$MY_IN\biosib.dta“, keep(master match) ///
keepus(sibpnr1 sexsib1) nogen
drop if sibpnr1 == .
foreach var in cid hid pid sex gebjahr ple0008 sibpnr1 sexsib1 {
rename var'
var’_s1
}
drop sibpnr1_s1
drop sexsib1_s1
rename pid_s1 sibpnr1
save $MY_OUT\sibling1.dta, replace
*sibling 2
use „$MY_OUT\siblings.dta“, clear
*merge siblings and sex of the siblings
merge m:1 pid using „$MY_IN\biosib.dta“, keep(master match) ///
keepus(sibpnr2 sexsib2) nogen
drop if sibpnr2 == .
foreach var in cid hid pid sex gebjahr ple0008 sibpnr2 sexsib2 {
rename var'
var’_s2
}
drop sibpnr2_s2
drop sexsib2_s2
rename pid_s2 sibpnr2
save $MY_OUT\sibling2.dta, replace
*sibling 3
use „$MY_OUT\siblings.dta“, clear
*merge siblings and sex of the siblings
merge m:1 pid using „$MY_IN\biosib.dta“, keep(master match) ///
keepus(sibpnr3 sexsib3) nogen
drop if sibpnr3 == .
foreach var in cid hid pid sex gebjahr ple0008 sibpnr3 sexsib3 {
rename var'
var’_s3
}
drop sibpnr3_s3
drop sexsib3_s3
rename pid_s3 sibpnr3
save $MY_OUT\sibling3.dta, replace
pull grandmother data set*****************************************************
use pid syear hid cid sex gebjahr using „$MY_IN\ppathl.dta“, clear
sort syear pid
keep if sex == 2
drop sex
*merge amount of education or training in years
merge 1:m syear pid using „$MY_IN\pgen.dta“, keep(master match) ///
keepus(pgbilzeit) nogen
foreach var in hid cid gebjahr pgbilzeit {
rename var'
var’_m_gm
}
*Check for duplicates
bysort pid syear: gen count = _N
tab count
drop count
rename pid mnr
save $MY_OUT\grandmother_m.dta, replace
pull grandfather data set*****************************************************
use pid syear hid cid sex gebjahr using „$MY_IN\ppathl.dta“, clear
sort syear pid
keep if sex == 1
drop sex
*merge amount of education or training in years
merge 1:m syear pid using „$MY_IN\pgen.dta“, keep(master match) ///
keepus(pgbilzeit) nogen
foreach var in hid cid gebjahr pgbilzeit {
rename var'
var’_m_gf
}
*Check for duplicates
bysort pid syear: gen count = _N
tab count
drop count
rename pid fnr
save $MY_OUT\grandfather_m.dta, replace
data**************************************************************************
use „$MY_OUT\mother.dta“, clear
merge m:m sibpnr1 syear using „$MY_OUT\sibling1.dta“, keep(master match) nogen
merge m:m sibpnr2 syear using „$MY_OUT\sibling2.dta“, keep(master match) nogen
merge m:m sibpnr3 syear using „$MY_OUT\sibling3.dta“, keep(master match) nogen
merge m:1 mnr syear using „$MY_OUT\grandmother_m.dta“, keep(master match) nogen
merge m:1 fnr syear using „$MY_OUT\grandfather_m.dta“, keep(master match) nogen
drop mnr
drop fnr
rename pid mnr
*recode missing values
mvdecode _all, mv(-1 -2 -3 -4 -5 -6 -7 -8)
save $MY_OUT\mother_final.dta, replace
Kann ich so vorgehen?
Komisch ist auch, dass sexsib? mehr informationen enthält als sex_s?. Hier konnte ich beobachten, dass zum Teil Missing Values sind. Ein Fragezeichen soll die jeweilige Nummer darstellen, da ein Sternchen nicht funktioniert.
Im Anschluss würde ich den Mutter-Datensatz, der auch die Variablen der Sibling enthält, an den Kinder-Datensatz mergen.
Mein Ziel ist es die Differenz zwischen den Müttern und ihren Geschwister zunehmen, um family-fixed effects zu eleminieren.
Ich freue mich von Dir zu hören.
Liebe Grüße
Verena