*---------------------------------------------------------------------------------------------------------------------------- *merge all waves clear all *path global DATA ="C:\WORK\SHARE\DATA - rel 7.1.0" tempfile zakladni set more off *---------------------------------------------------------------------------------------------------------------------------- *------------------------------------ gv isced -------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------------------------------- /* w1 isced1997_c1 isced1997_c2 isced1997_c3 isced1997_c4 isced1997_r isced1997_sp isced1997y_c1 isced1997y_c2 isced1997y_c3 isced1997y_c4 isced1997y_r isced1997y_sp w2 isced1997_c1 isced1997_c2 isced1997_c3 isced1997_c4 isced1997_r isced1997_sp w3 - w4 isced1997_r isced1997_sp isced1997_c1 isced1997_c2 isced1997_c3 isced1997_c4 (have isced up to child 20) w5 w6 w7 isced1997_r isced1997_sp isced1997_c1 isced1997_c2 isced1997_c3 isced1997_c4 isced1997_m isced1997_f // mother and father edu isced2011_r isced2011_sp isced2011_m isced2011_f isced2011_c1 isced2011_c2 isced2011_c3 isced2011_c4 */ **ISCED of respondent from waves 1, 2 and 4 foreach v in 1 2 { use "${DATA}\sharew`v'_rel7-1-0_ALL_datasets_stata\sharew`v'_rel7-1-0_gv_isced.dta", clear keep mergeid isced1997_c1 isced1997_c2 isced1997_c3 isced1997_c4 isced1997_r isced1997_sp foreach n in isced1997_r isced1997_sp isced1997_c1 isced1997_c2 isced1997_c3 isced1997_c4 { replace `n'=. if `n'<0 | `n'>10 } sort mergeid if `v'!=1 { merge mergeid using `zakladni', update replace tab _merge drop _merge } sort mergeid save `zakladni', replace } **wave 4 use "${DATA}\sharew4_rel7-1-0_ALL_datasets_stata\sharew4_rel7-1-0_gv_isced.dta", clear keep mergeid isced1997_c* isced1997_r isced1997_sp foreach n in isced1997_r isced1997_sp { replace `n'=. if `n'<0 | `n'>10 } forvalues i=1(1)20 { replace isced1997_c`i'=. if isced1997_c`i'<0 | isced1997_c`i'>10 } sort mergeid save `zakladni', replace **ISCED of respondent and his parents - from waves 5, 6 and 7 foreach v in 5 6 7 { use "${DATA}\sharew`v'_rel7-1-0_ALL_datasets_stata\sharew`v'_rel7-1-0_gv_isced.dta", clear keep mergeid isced1997_r isced1997_sp isced1997_c* isced1997_m isced1997_f /// isced2011_r isced2011_sp isced2011_c* isced2011_m isced2011_f foreach n in isced1997_r isced1997_sp isced1997_m isced1997_f isced2011_r isced2011_sp isced2011_m isced2011_f { replace `n'=. if `n'<0 | `n'>10 } forvalues i=1(1)20 { replace isced1997_c`i'=. if isced1997_c`i'<0 | isced1997_c`i'>10 replace isced2011_c`i'=. if isced2011_c`i'<0 | isced2011_c`i'>10 } sort mergeid merge mergeid using `zakladni', update replace drop _merge sort mergeid save `zakladni', replace } *---------------------------------------------------------------------------------------------------------------------------- *------------------------------------ occupation - ep ----------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------------------------------- foreach v in 2 4 5 { use "${DATA}\sharew`v'_rel7-1-0_ALL_datasets_stata\sharew`v'_rel7-1-0_ep.dta", clear replace ep016_=. if ep016_<0 replace ep016_=. if ep016_<0 replace ep016_=ep052_ if ep016_==. gen isco1=ep016_ keep mergeid isco1 sort mergeid merge mergeid using `zakladni', update drop _merge sort mergeid save `zakladni', replace } *vo vlne 6, 7 foreach v in 6 7 { use "${DATA}\sharew`v'_rel7-1-0_ALL_datasets_stata\sharew`v'_rel7-1-0_ep.dta", clear replace ep616isco=. if ep616isco<0 replace ep152isco=. if ep152isco<0 replace ep616isco=ep152isco if ep616isco==. tostring ep616isco, gen(isco1) replace isco1=substr(isco1, 1,1) destring isco1, replace keep mergeid isco1 sort mergeid merge mergeid using `zakladni', update drop _merge sort mergeid save `zakladni', replace } /* vlny 2, 4 a 5: ep016_ - current job ep052_ - last job (before retirement, or before unemployment) -2 Refusal -1 Don't know 1 Legislator, senior official or manager 2 Professional 3 Technician or associate professional 4 Clerk 5 Service worker and shop and market sales worker 6 Skilled agricultural or fishery worker 7 Craft and related trades worker 8 Plant and machine operator or assembler 9 Elementary occupation 10 Armed forces vlny 6 a 7: ep616isco - current job - ISCO kod ep152isco - last job - ISCO kod -treba se divat jenom na prvni cislici 1 Managers 2 Professionals 3 Technicians and associate professionals 4 Clerical support workers 5 Service and sales workers 6 Skilled agricultural, forestry and fishery workers 7 Craft and related trades workers 8 Plant and machine operators, and assemblers 9 Elementary occupations */ gen occupation_resp=1 if isco1==1 | isco1==2 | isco1==3 replace occupation_resp=2 if isco1==4 | isco1==5 replace occupation_resp=3 if isco1==6 | isco1==7 replace occupation_resp=4 if isco1==8 | isco1==9 label define occupation_resp 1 "high-skilled white" 2 "low-skilled white" 3 "high-skilled blue" 4 "low-skilled blue", replace label values occupation_resp occupation_resp label list occupation_resp sort mergeid save `zakladni', replace *---------------------------------------------------------------------------------------------------------------------------- *------------------------------------ dn - demographics --------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------------------------------- foreach v in 2 4 { use "${DATA}\sharew`v'_rel7-1-0_ALL_datasets_stata\sharew`v'_rel7-1-0_dn.dta", clear keep mergeid dn010_ sort mergeid merge mergeid using `zakladni', update drop _merge sort mergeid save `zakladni', replace } *vo vlne 5,6, 7 - ine kodovanie dn010 foreach v in 5 6 { use "${DATA}\sharew`v'_rel7-1-0_ALL_datasets_stata\sharew`v'_rel7-1-0_dn.dta", clear keep mergeid dn010_ dn051_1 dn051_2 rename dn010_ resp_dn rename dn051_1 mother_dn rename dn051_2 father_dn sort mergeid merge mergeid using `zakladni', update drop _merge sort mergeid save `zakladni', replace } /* dn051_1 byte %82.0g educat Highest school certificate/degree: mother dn051_2 byte %82.0g educat Highest school certificate/degree: father */ foreach v in 7 { use "${DATA}\sharew`v'_rel7-1-0_ALL_datasets_stata\sharew`v'_rel7-1-0_dn.dta", clear keep mergeid dn010_ rename dn010_ resp_dn sort mergeid merge mergeid using `zakladni', update drop _merge sort mergeid save `zakladni', replace } foreach v in 1 2 4 5 { use "${DATA}\sharew`v'_rel7-1-0_ALL_datasets_stata\sharew`v'_rel7-1-0_dn.dta", clear keep mergeid dn026_1 dn026_2 dn027_1 dn027_2 dn028_1 dn028_2 dn030_1 dn030_2 dn032_1 dn032_2 dn009_ replace dn028_1=. if dn028_1<50 replace dn028_2=. if dn028_2<50 if `v'==1 { gen age_grandmo_2020=dn028_1+(2020-2004) gen age_grandfa_2020=dn028_2+(2020-2004) } if `v'==2 { gen age_grandmo_2020=dn028_1+(2020-2007) gen age_grandfa_2020=dn028_2+(2020-2007) } if `v'==4 { gen age_grandmo_2020=dn028_1+(2020-2011) gen age_grandfa_2020=dn028_2+(2020-2011) } if `v'==5 { gen age_grandmo_2020=dn028_1+(2020-2013) gen age_grandfa_2020=dn028_2+(2020-2013) } replace age_grandmo_2020=. if age_grandmo_2020<50 | age_grandmo_2020>130 replace age_grandfa_2020=. if age_grandfa_2020<50 | age_grandfa_2020>130 sort mergeid merge mergeid using `zakladni', update drop _merge sort mergeid save `zakladni', replace } foreach v in 6 7 { use "${DATA}\sharew`v'_rel7-1-0_ALL_datasets_stata\sharew`v'_rel7-1-0_dn.dta", clear keep mergeid dn026_1 dn026_2 dn027_1 dn027_2 dn028_1 dn028_2 dn030_1 dn030_2 dn032_1 dn032_2 dn127_1 dn127_2 dn009_ if `v'==6 { gen age_grandmo_2020=dn028_1+(2020-2015) gen age_grandfa_2020=dn028_2+(2020-2015) } if `v'==7 { gen age_grandmo_2020=dn028_1+(2020-2017) gen age_grandfa_2020=dn028_2+(2020-2017) } replace age_grandmo_2020=. if age_grandmo_2020<50 | age_grandmo_2020>130 replace age_grandfa_2020=. if age_grandfa_2020<50 | age_grandfa_2020>130 replace dn027_1=. if dn027_1<15 replace dn127_1=. if dn127_1<1910 replace dn027_2=. if dn027_2<15 replace dn127_2=. if dn127_2<1910 replace age_grandmo_2020=2020-(dn127_1-dn027_1) if age_grandmo_2020==. //year of death - age of death replace age_grandfa_2020=2020-(dn127_2-dn027_2) if age_grandfa_2020==. //year of death - age of death replace age_grandmo_2020=. if age_grandmo_2020<50 | age_grandmo_2020>130 replace age_grandfa_2020=. if age_grandfa_2020<50 | age_grandfa_2020>130 sort mergeid merge mergeid using `zakladni', update drop _merge sort mergeid save `zakladni', replace } /* dn026_1 byte %10.0f yesno Is natural parent still alive: mother dn026_2 byte %10.0f yesno Is natural parent still alive: father dn028_1 int %10.0g dkrf Age of natural parent: mother dn028_2 int %10.0g dkrf Age of natural parent: father dn027_1 int %10.0f dkrf Age of death of parent: mother dn027_2 int %10.0f dkrf Age of death of parent: father dn030_1 byte %48.0f distance Where does parent live: mother dn030_2 byte %48.0f distance Where does parent live: father dn032_1 byte %27.0f parentcontact Personal contact with parent during past 12 months: mother dn032_2 byte %27.0f parentcontact Personal contact with parent during past 12 months: father */ /*vlna 6 a 7 dn127_1 dn127_2 dn127_1 int %10.0g dkrf Year of death of parent: mother dn127_2 int %10.0g dkrf Year of death of parent: father */ *---------------------------------------------------------------------------------------------------------------------------- *------------------------------------ children ---------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------------------------------- foreach v in 1 2 4 5 6 7 { use "${DATA}\sharew`v'_rel7-1-0_ALL_datasets_stata\sharew`v'_rel7-1-0_ch.dta", clear forvalues i=1(1)20 { gen ch_male_`i'=(ch005_`i'==1) replace ch_male_`i'=. if ch005_`i'==. } keep mergeid ch_male_* ch006_* //year of birth sort mergeid merge mergeid using `zakladni', update drop _merge sort mergeid save `zakladni', replace } foreach v in 2 4 { use "${DATA}\sharew`v'_rel7-1-0_ALL_datasets_stata\sharew`v'_rel7-1-0_ch.dta", clear keep mergeid ch017_* sort mergeid merge mergeid using `zakladni', update drop _merge sort mergeid save `zakladni', replace } *vo vlne 5,6, 7 - ine kodovanie dn010 foreach v in 5 6 7 { use "${DATA}\sharew`v'_rel7-1-0_ALL_datasets_stata\sharew`v'_rel7-1-0_ch.dta", clear keep mergeid ch017_* forvalues i=1(1)20 { rename ch017_`i' child_dn`i' } sort mergeid merge mergeid using `zakladni', update drop _merge sort mergeid save `zakladni', replace } /*gv children - vlna 6 a 7 ch_yrbirth_1 */ *---------------------------------------------------------------------------------------------------------------------------- *------------------------------------ gv weights ---------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------------------------------- foreach v in 5 6 7 { use "${DATA}\sharew`v'_rel7-1-0_ALL_datasets_stata\sharew`v'_rel7-1-0_gv_weights.dta", clear rename cciw_w`v' weights //calibrated cross-sectional individual weight -all keep mergeid weights sort mergeid merge mergeid using `zakladni', update replace drop _merge sort mergeid save `zakladni', replace } *---------------------------------------------------------------------------------------------------------------------------- *------------------------------------ zakladni modul -------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------------------------------- *************************** merge zakladni modul (vek, yrbirth) *zakladni modul - na to abych dostala vek respondenta foreach v in 1 2 3 4 5 6 7 { use "${DATA}\sharew`v'_rel7-1-0_ALL_datasets_stata\sharew`v'_rel7-1-0_cv_r.dta", clear *****presny vek jednotlivce z roku a mesice narozeni a interview (modul cv_r obsahuje nepresny vek - pravdepodobne zaokrouhleni nahoru) gen vek_presny=. replace vek_presny=(int_year+(int_month/12)) - (yrbirth+(mobirth/12)) if int_year>2000 & int_year<2020 & yrbirth>1880 & yrbirth<=int_year & int_month>=1 & int_month<=12 & mobirth>=1 & mobirth<=12 replace vek_presny=round(vek_presny, 0.01) *****vek zaokrouhleny na cele roky dolu gen vek=floor(vek_presny) gen vek_2020=vek+(2020 - int_year) if int_year>2000 & int_year<2020 *keep only those who are respondents - i.e. respond to main interview *interview - 1 if main interview *keep if interview==1 rename hhid`v' hhid rename coupleid`v' coupleid *relrpers - 1 if spouse and . if respondent *partnerinhh - 1 if partner in hh (but you can have 2 couples in hh) keep mergeid hhid gender vek yrbirth vek_2020 relrpers partnerinhh coupleid interview country sort mergeid merge mergeid using `zakladni', update replace drop _merge sort mergeid save `zakladni', replace } *drop - nemame vzdelani respondenta *odpovidaji i ti, co maji ze no interview drop if interview==0 & isced1997_r==. & isced2011_r==. *---------------------------------------------------------------------------------------------------------------------------- *------------------------------------ promenne edu ---------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------------------------------- *Israel=25, Poland=29, Ireland=30, Hungary=32, Portugal=33, Lithuania=48, Bulgaria=51,Cyprus=53, Finland=55, Latvia, Malta, Rumania, Slovakia drop if country>=48 | country==29 | country==32 | country==33 | country==30 | country==25 ***CR - zakladka padla do primary edu a uciliste do lower secondary edu dle ISCED - oprava *chyba je jenom v ISCED1997 replace isced1997_r=2 if country==28 & (dn010_==1 | dn010_==11) & isced1997_r==1 replace isced1997_r=3 if country==28 & (dn010_==2 | dn010_==3 | dn010_==12 | dn010_==13) & isced1997_r==2 *vlny 5 6 7 replace isced1997_r=2 if country==28 & (resp_dn==3) & isced1997_r==1 replace isced1997_r=3 if country==28 & (resp_dn==4 | resp_dn==5) & isced1997_r==2 forvalues i=1(1)20 { replace isced1997_c`i'=2 if country==28 & (ch017_`i'==1 | ch017_`i'==11) & isced1997_c`i'==1 replace isced1997_c`i'=3 if country==28 & (ch017_`i'==2 | ch017_`i'==3 | ch017_`i'==12 | ch017_`i'==13) & isced1997_c`i'==2 } *2011 replace isced2011_r=2 if country==28 & (resp_dn==3) & isced2011_r==1 replace isced2011_r=3 if country==28 & (resp_dn==4 | resp_dn==5) & isced2011_r==2 replace isced2011_m=2 if country==28 & (mother_dn==3) & isced2011_m==1 replace isced2011_m=3 if country==28 & (mother_dn==4 | mother_dn==5) & isced2011_m==2 replace isced2011_f=2 if country==28 & (father_dn==3) & isced2011_f==1 replace isced2011_f=3 if country==28 & (father_dn==4 | father_dn==5) & isced2011_f==2 forvalues i=1(1)20 { replace isced2011_c`i'=2 if country==28 & (child_dn`i'==3) & isced2011_c`i'==1 replace isced2011_c`i'=3 if country==28 & (child_dn`i'==4 | child_dn`i'==5) & isced2011_c`i'==2 } **ISCED 1997 *respondent gen edu97_resp=1 if isced1997_r==0 | isced1997_r==1 | isced1997_r==2 //zakladni replace edu97_resp=2 if isced1997_r==3 | isced1997_r==4 //stredni replace edu97_resp=3 if isced1997_r==5 | isced1997_r==6 //uni *matka gen edu97_m=1 if isced1997_m==0 | isced1997_m==1 | isced1997_m==2 //zakladni replace edu97_m=2 if isced1997_m==3 | isced1997_m==4 //stredni replace edu97_m=3 if isced1997_m==5 | isced1997_m==6 //uni *otec gen edu97_f=1 if isced1997_f==0 | isced1997_f==1 | isced1997_f==2 //zakladni replace edu97_f=2 if isced1997_f==3 | isced1997_f==4 //stredni replace edu97_f=3 if isced1997_f==5 | isced1997_f==6 //uni *deti + priradit vzdelanie deti obom rodicom forvalues i=1(1)20 { *priradit vzdelanie deti obom rodicom sort coupleid isced1997_c`i' replace isced1997_c`i'=isced1997_c`i'[_n-1] if isced1997_c`i'==. & coupleid==coupleid[_n-1] & coupleid!="" gen edu97_ch`i'=1 if isced1997_c`i'==0 | isced1997_c`i'==1 | isced1997_c`i'==2 //zakladni replace edu97_ch`i'=2 if isced1997_c`i'==3 | isced1997_c`i'==4 //stredni replace edu97_ch`i'=3 if isced1997_c`i'==5 | isced1997_c`i'==6 //uni label define edu97_ch`i' 1 "zakladni" 2 "stredni" 3 "uni" label values edu97_ch`i' edu97_ch`i' } **ISCED 2011 *respondent gen edu_resp=1 if isced2011_r==0 | isced2011_r==1 | isced2011_r==2 //zakladni replace edu_resp=2 if isced2011_r==3 | isced2011_r==4 //stredni replace edu_resp=3 if isced2011_r==5 | isced2011_r==6 | isced2011_r==7 | isced2011_r==8 //uni *pro resp replace ISCED2011 promennou ISCED1997 - kdyz je missing replace edu_resp=edu97_resp if edu_resp==. *matka gen edu_m=1 if isced2011_m==0 | isced2011_m==1 | isced2011_m==2 //zakladni replace edu_m=2 if isced2011_m==3 | isced2011_m==4 //stredni replace edu_m=3 if isced2011_m==5 | isced2011_m==6 | isced2011_m==7 | isced2011_m==8 //uni *otec gen edu_f=1 if isced2011_f==0 | isced2011_f==1 | isced2011_f==2 //zakladni replace edu_f=2 if isced2011_f==3 | isced2011_f==4 //stredni replace edu_f=3 if isced2011_f==5 | isced2011_f==6 | isced2011_f==7 | isced2011_f==8 //uni *deti + priradit vzdelanie deti obom rodicom forvalues i=1(1)20 { *priradit vzdelanie deti obom rodicom sort coupleid isced2011_c`i' replace isced2011_c`i'=isced2011_c`i'[_n-1] if isced2011_c`i'==. & coupleid==coupleid[_n-1] & coupleid!="" gen edu_ch`i'=1 if isced2011_c`i'==0 | isced2011_c`i'==1 | isced2011_c`i'==2 //zakladni replace edu_ch`i'=2 if isced2011_c`i'==3 | isced2011_c`i'==4 //stredni replace edu_ch`i'=3 if isced2011_c`i'==5 | isced2011_c`i'==6 | isced2011_c`i'==7 | isced2011_c`i'==8 //uni *replace, kde je missing, kod z ISCED1997 replace edu_ch`i'=edu97_ch`i' if edu_ch`i'==. label define edu_ch`i' 1 "zakladni" 2 "stredni" 3 "uni" label values edu_ch`i' edu_ch`i' } **YEARS OF EDU /* ISCED 97 - 0 (0), 1-primary (5), 2-lower sec (8), 3 - upper sec(12), 4-post sec (13), 5 - 1st stage of tertiary (16), 6 - 2nd stage of tertiary (21) ISCED 11 - 0 (0), 1 (5), 2 (8), 3 (12), 4 (13), 5 - short cycle tert (14), 6 - bachelor (15), 7 - master (17), 8 - phd (21) */ *1997 foreach i in r m f { gen years_edu97_`i'=0 if isced1997_`i'==0 //none replace years_edu97_`i'=5 if isced1997_`i'==1 //primary replace years_edu97_`i'=8 if isced1997_`i'==2 //lower-sec replace years_edu97_`i'=12 if isced1997_`i'==3 //upper-sec replace years_edu97_`i'=13 if isced1997_`i'==4 //post-sec replace years_edu97_`i'=16 if isced1997_`i'==5 //1st stage tertiary replace years_edu97_`i'=21 if isced1997_`i'==6 //2nd stage tertiary } forvalues i=1(1)20 { gen years_edu97_ch`i'=0 if isced1997_c`i'==0 //none replace years_edu97_ch`i'=5 if isced1997_c`i'==1 //primary replace years_edu97_ch`i'=8 if isced1997_c`i'==2 //lower-sec replace years_edu97_ch`i'=12 if isced1997_c`i'==3 //upper-sec replace years_edu97_ch`i'=13 if isced1997_c`i'==4 //post-sec replace years_edu97_ch`i'=16 if isced1997_c`i'==5 //1st stage tertiary replace years_edu97_ch`i'=21 if isced1997_c`i'==6 //2nd stage tertiary } *2011 foreach i in r m f { gen years_edu_`i'=0 if isced2011_`i'==0 //none replace years_edu_`i'=5 if isced2011_`i'==1 //primary replace years_edu_`i'=8 if isced2011_`i'==2 //lower-sec replace years_edu_`i'=12 if isced2011_`i'==3 //upper-sec replace years_edu_`i'=13 if isced2011_`i'==4 //post-sec replace years_edu_`i'=14 if isced2011_`i'==5 //short cycle tertiary replace years_edu_`i'=15 if isced2011_`i'==6 //bachelor replace years_edu_`i'=17 if isced2011_`i'==7 //master replace years_edu_`i'=21 if isced2011_`i'==8 //phd } replace years_edu_r=years_edu97_r if years_edu_r==. forvalues i=1(1)20 { gen years_edu_ch`i'=0 if isced2011_c`i'==0 //none replace years_edu_ch`i'=5 if isced2011_c`i'==1 //primary replace years_edu_ch`i'=8 if isced2011_c`i'==2 //lower-sec replace years_edu_ch`i'=12 if isced2011_c`i'==3 //upper-sec replace years_edu_ch`i'=13 if isced2011_c`i'==4 //post-sec replace years_edu_ch`i'=14 if isced2011_c`i'==5 //short cycle tertiary replace years_edu_ch`i'=15 if isced2011_c`i'==6 //bachelor replace years_edu_ch`i'=17 if isced2011_c`i'==7 //master replace years_edu_ch`i'=21 if isced2011_c`i'==8 //phd replace years_edu_ch`i'=years_edu97_ch`i' if years_edu_ch`i'==. } ****standardizovane years of edu - na urovni zeme by country, sort: egen mean_edu_r=mean(years_edu_r) by country, sort: egen sd_edu_r=sd(years_edu_r) gen s_years_edu_r=(years_edu_r-mean_edu_r)/(sd_edu_r) by country, sort: egen mean_edu_m=mean(years_edu_m) by country, sort: egen sd_edu_m=sd(years_edu_m) gen s_years_edu_m=(years_edu_m-mean_edu_m)/(sd_edu_m) by country, sort: egen mean_edu_f=mean(years_edu_f) by country, sort: egen sd_edu_f=sd(years_edu_f) gen s_years_edu_f=(years_edu_f-mean_edu_f)/(sd_edu_f) egen years_edu_ch_mean=rowmean(years_edu_ch*) by country, sort: egen mean_edu_ch=mean(years_edu_ch_mean) by country, sort: egen sd_edu_ch=sd(years_edu_ch_mean) forvalues i=1(1)20 { gen s_years_edu_ch`i'=(years_edu_ch`i'-mean_edu_ch)/(sd_edu_ch) } /* *highest edu children egen edu_ch_highest=rowmax(edu_ch1 edu_ch2 edu_ch3 edu_ch4) label define edu_ch_highest 1 "zakladni" 2 "stredni" 3 "uni" label values edu_ch_highest edu_ch_highest *highest edu parents *? *highest edu grandparents egen edu_par_highest=rowmax(edu_f edu_m) label define edu_par_highest 1 "zakladni" 2 "stredni" 3 "uni" label values edu_par_highest edu_par_highest */ label define edu_resp 1 "zakladni" 2 "stredni" 3 "uni" label define edu_m 1 "zakladni" 2 "stredni" 3 "uni" label define edu_f 1 "zakladni" 2 "stredni" 3 "uni" label values edu_resp edu_resp label values edu_m edu_m label values edu_f edu_f *male 0/1 gen male=(gender==1) replace male=. if gender==. ** replace yrbirth=. if yrbirth<=0 *---------------------------------------------------------------------------------------------------------------------------- *------------------------------------ West and East Germany ----------------------------------------------------------------- *---------------------------------------------------------------------------------------------------------------------------- ***west and east Germany - only for Germany=12 replace dn009_=. if country!=12 *400 pozorovani v Nemecku nema uvedene, ci zili vo vychodnom alebo zapadnom Nemecku - vymazat - zostava okolo 8000 pozorovani replace country=. if (dn009_<0 | dn009_==3 | dn009_==.) & country==12 replace country=121 if dn009_==1 replace country=122 if dn009_==2 label define country 121 "East Germany", add label define country 122 "West Germany", add drop if country==. *---------------------------------------------------------------------------------------------------------------------------- *------------------------------------ promenne vek ------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------------------------------- *vek ditete forvalues i=1(1)20 { replace ch006_`i'=. if ch006_`i'<1930 //year of birth of child gen age_child_`i'=2020-ch006_`i' if ch006_`i'!=. replace age_child_`i'=. if age_child_`i'<0 } *priradit vek deitete obom rodicom forvalues i=1(1)20 { sort coupleid age_child_`i' replace age_child_`i'=age_child_`i'[_n-1] if age_child_`i'==. & coupleid==coupleid[_n-1] & coupleid!="" replace ch_male_`i'=ch_male_`i'[_n-1] if ch_male_`i'==. & coupleid==coupleid[_n-1] & coupleid!="" } *doplnit age grandparents if missing / age resp+28 replace age_grandmo_2020=vek_2020+28 if age_grandmo_2020==. replace age_grandfa_2020=vek_2020+28 if age_grandfa_2020==. *AGE sq gen age_grandmo_2020_sq=age_grandmo_2020*age_grandmo_2020 gen age_grandfa_2020_sq=age_grandfa_2020*age_grandfa_2020 forvalues i=1(1)20 { *doplnit age child if missing - resp -28 replace age_child_`i'=vek_2020-28 if age_child_`i'==. & years_edu_ch`i'!=. *nepocitat vzdelani tech, kterym je mene nez 30 v r 2020 replace edu_ch`i'=. if age_child_`i'<30 replace years_edu_ch`i'=. if age_child_`i'<30 replace s_years_edu_ch`i'=. if age_child_`i'<30 replace age_child_`i'=. if age_child_`i'<30 gen age_child_sq_`i'=age_child_`i'*age_child_`i' } gen age_2020_sq=vek_2020*vek_2020 **kolik bylo diteti, kdyz zemrel dedecek forvalues i=1(1)20 { gen yr_birth_ch_`i'=2020-age_child_`i' gen age_child_death_`i'=dn127_2-yr_birth_ch_`i' replace age_child_death_`i'=0 if age_child_death_`i'<0 *for those with grandfather still alive, I put just the age of grandchild replace age_child_death_`i'=age_child_`i' if dn026_2==1 & age_child_`i'!=. replace age_child_death_`i'=50 if age_child_death_`i'>50 & age_child_death_`i'!=. } drop yr_birth_ch_* *---------------------------------------------------------------------------------------------------------------------------- *---------------------------- tables and regressions: only male resp ------------------------------------------------------- *---------------------------------------------------------------------------------------------------------------------------- ***years of education *father of father eststo clear eststo: quietly estpost tabstat years_edu_f if male==1 [aw=weights], by(country) statistics(mean sd) columns(statistics) *father of mother eststo: quietly estpost tabstat years_edu_f if male==0 [aw=weights], by(country) statistics(mean sd) columns(statistics) *mother of father eststo: quietly estpost tabstat years_edu_m if male==1 [aw=weights], by(country) statistics(mean sd) columns(statistics) *mother of mother eststo: quietly estpost tabstat years_edu_m if male==0 [aw=weights], by(country) statistics(mean sd) columns(statistics) *father eststo: quietly estpost tabstat years_edu_r if male==1 [aw=weights], by(country) statistics(mean sd) columns(statistics) *mother eststo: quietly estpost tabstat years_edu_r if male==0 [aw=weights], by(country) statistics(mean sd) columns(statistics) esttab est* using descript1.rtf, main(mean 1) aux(sd 1) compress nogaps mti("father of father" "father of mother" "mother of father" "mother of mother" "father" "mother") title("years of education") nostar nonote label replace **number of children egen no_child=rownonmiss(age_child_1 age_child_2 age_child_3 age_child_4 age_child_5 age_child_6 age_child_7 age_child_8 /// age_child_9 age_child_10 age_child_11 age_child_12 age_child_13 age_child_14 age_child_15 age_child_16 age_child_17 age_child_18 age_child_19 age_child_20) sum no_child if male==1 [aw=weights] sum no_child if male==0 [aw=weights] **occupation tab occupation_resp if male==1 [aw=weights] tab occupation_resp if male==0 [aw=weights] *gen yr_birth_ch1=2020-age_child_1 egen yr_birth_ch=rowmean(yr_birth_ch*) graph hbox yr_birth_grandfather yr_birth_resp yr_birth_ch, title("Year of birth, across generations") noout over(gender, relabel(1 "Father" 2 "Mother" )) /// note("") ylabel(1885(30)2005,format(%ty) labsize(medium)) legend(label(1 "Grandfather") label(2 "Parents") label(3 "Children") rows(1) nobox region(lc(none))) yline(1915 1945 1975, lwidth(0.3) lc(gs8) lp(dash)) **KORELACE by country, sort : correlate edu_f edu_resp edu_ch1 [aweight = weights] if male==1, wrap bysort country: eststo: estpost corr edu_f edu_resp edu_ch1 [aweight = weights] if male==1, listwise esttab * using descript1.rtf, cells(b(fmt(3))) stats(N) mtitles unstack replace bysort country: eststo: estpost corr edu_resp edu_ch1 [aweight = weights] if male==1, listwise esttab * using descript2.rtf, cells(b(fmt(3))) stats(N) mtitles unstack replace **REGRESE - 2 generations *all countries *G1-G2 eststo clear bysort country: eststo: quietly reg years_edu_r years_edu_f if male==1 esttab * using descript1.rtf, replace se r2 *G2-G3 eststo clear bysort country: eststo: quietly reg years_edu_ch1 years_edu_r if male==1 esttab * using descript1.rtf, replace se *G1-G3 eststo clear bysort country: eststo: quietly reg years_edu_ch1 years_edu_f if male==1 esttab * using descript1.rtf, replace se **REGRESE - 3 generations - father and son / controlling for grandfather edu *G1-G2-G3 eststo clear bysort country: eststo: quietly reg years_edu_ch1 years_edu_r years_edu_f if male==1 esttab * using descript1.rtf, replace se