*----------------------------------------------------------------------- *Mehrebenenanalyse unbesetzte Ausbildungsplaetze und regionale Faktoren *----------------------------------------------------------------------- capture log close local date: di %d date(c(current_date),"DMY") log using "Unfilled_training_positions_`date'.log", replace version 14 clear all set more off, perm set trace off program drop _all set varabbrev off set linesize 255 ******************************************************************************** ****************************Globals********************************************* ******************************************************************************** global directory "Z:\directory" global dataLIABQM $directory\orig\LIABQM --> Folder where the LIAB QM is stored global dataIABBP $directory\orig\IABBP --> Folder where the IAB Establishment Panel is stored global dataBHP $directory\orig\BHP --> Folder where the Establishment History Panel is stored global dataRAM $directory\orig\RAM --> Folder where the regional data is stored global data $directory\data --> Folder where the generated data is stored ******************************************************************************** use $data\unbesetzteAzubistellen_final.dta, clear sort idnum jahr xtset idnum jahr ******************************************************************************** *************************Sample Restriction************************************* ******************************************************************************** ***Restriction to establishments that have offered training places keep if ausangebot_jn_neu==1 ******************************************************************************** *****************Independent variables: Globals********************************* ******************************************************************************** global regio2 alo_quote252 lnabschl_fl hauptant realant sektorindex_azubi global personal qualant tzant befristant azubiant global controls3 unbes_qual ant_uebernahme gehalt_coeff verbund techdum global beruf_segment beruf_segmentant_ges1 beruf_segmentant_ges3 beruf_segmentant_ges4 beruf_segmentant_ges5 beruf_segmentant_ges6 beruf_segmentant_ges7 beruf_segmentant_ges8 beruf_segmentant_ges9 beruf_segmentant_ges10 beruf_segmentant_ges11 beruf_segmentant_ges12 beruf_segmentant_ges13 beruf_segmentant_ges14 //Reference: beruf_segmentant2 --> Manufacturing occupations global ib br tarif global wo wo global bg bg4_2 bg4_3 bg4_4 // Reference: 1-9 employees global jahr jahrdum1 jahrdum2 jahrdum3 jahrdum4 jahrdum5 jahrdum6 // Reference: Year 2014 global descriptives3 antunbes_azubi_neu $regio2 abschl_fl abiant $ib $personal $controls3 beruf_segmentant_ges2 $beruf_segment wo bg4_1 $bg $jahr jahrdum7 ******************************************************************************** **************Estimations: Multilevel mixed-effects models********************** ******************************************************************************** ******************************************************************************** **********************************Empty model*********************************** ******************************************************************************** glm antunbes_azubi_neu, family(binomial) link(logit) vce(robust) matrix b = e(b) meqrlogit unbesetzt2_neu || ram: || idnum:, binomial(ausangebot_neu) from(b, skip) estat icc ******************************************************************************** ************Multilevel mixed-effects logistic regression models **************** ******************************************************************************** preserve glm antunbes_azubi_neu $regio2 $ib $personal $controls3 $beruf_segment $bg $wo $jahr, family(binomial) link(logit) vce(robust) bysort idnum: keep if _N>=2 & e(sample) glm antunbes_azubi_neu $regio2 $ib $personal $controls3 $beruf_segment $bg $wo $jahr, family(binomial) link(logit) vce(robust) matrix b = e(b) meqrlogit unbesetzt2_neu $regio2 $ib $personal $controls3 $beruf_segment $bg $wo $jahr || ram: || idnum:, binomial(ausangebot_neu) refineopts(iterate(0)) from(b, skip) estat icc sum $descriptives3 if e(sample) margins, dydx(*) predict(mu fixedonly) post outreg2 using $tables\antunbes_azubi_meqrlogit_v2.xml, excel ctitle("antunbes_azubi_meqrlogit_margins") se bdec(3) decmark(,)/*tstat tdec(3)*/ nor2 replace // label restore *************************** ***Eastern Germany *************************** preserve glm antunbes_azubi_neu $regio2 $ib $personal $controls3 $beruf_segment $bg $jahr if wo==0, family(binomial) link(logit) vce(robust) bysort idnum: keep if _N>=2 & e(sample) glm antunbes_azubi_neu $regio2 $ib $personal $controls3 $beruf_segment $bg $jahr if wo==0, family(binomial) link(logit) vce(robust) matrix b = e(b) meqrlogit unbesetzt2_neu $regio2 $ib $personal $controls3 $beruf_segment $bg $jahr if wo==0 || ram: || idnum:, binomial(ausangebot_neu) refineopts(iterate(0)) from(b, skip) estat icc sum $descriptives3 if e(sample) margins, dydx(*) predict(mu fixedonly) post outreg2 using $tables\antunbes_azubi_meqrlogitmargins_ost_v2.xml, excel ctitle("antunbes_azubi_meqrlogit_margins") se bdec(3) decmark(,)/*tstat tdec(3)*/ nor2 replace // label restore **************************** ***Western Germany **************************** preserve glm antunbes_azubi_neu $regio2 $ib $personal $controls3 $beruf_segment $bg $jahr if wo==1, family(binomial) link(logit) vce(robust) bysort idnum: keep if _N>=2 & e(sample) glm antunbes_azubi_neu $regio2 $ib $personal $controls3 $beruf_segment $bg $jahr if wo==1, family(binomial) link(logit) vce(robust) matrix b = e(b) meqrlogit unbesetzt2_neu $regio2 $ib $personal $controls3 $beruf_segment $bg $jahr if wo==1 || ram: || idnum:, binomial(ausangebot_neu) refineopts(iterate(0)) from(b, skip) estat icc sum $descriptives3 if e(sample) margins, dydx(*) predict(mu fixedonly) post outreg2 using $tables\antunbes_azubi_meqrlogitmargins_west_v2.xml, excel ctitle("antunbes_azubi_meqrlogit_margins") se bdec(3) decmark(,)/*tstat tdec(3)*/ nor2 replace // label restore ******************************************************************************** ************************Hybrid mixed-effects models***************************** ******************************************************************************** tsset idnum jahr foreach p in $regio2 { egen mean_`p'=mean(`p'), by(ram) gen dev_`p'=`p'-mean_`p' } foreach p in $ib $personal $controls3 $bg { egen mean_`p'=mean(`p'), by(idnum) gen dev_`p'=`p'-mean_`p' } ***Globals global meanregio mean_alo_quote252 mean_lnabschl_fl mean_hauptant mean_realant mean_sektorindex_azubi global meanpersonal mean_qualant mean_tzant mean_befristant mean_azubiant global meancontrols3 mean_unbes_qual mean_ant_uebernahme mean_techdum mean_verbund global meanib mean_br mean_tarif global meanbg mean_bg4_2 mean_bg4_3 mean_bg4_4 global devregio dev_alo_quote252 dev_lnabschl_fl dev_hauptant dev_realant dev_sektorindex_azubi global devpersonal dev_qualant dev_tzant dev_befristant dev_azubiant global devcontrols3 dev_unbes_qual dev_ant_uebernahme dev_techdum dev_verbund global devib dev_br dev_tarif global devbg dev_bg4_2 dev_bg4_3 dev_bg4_4 ********************************************************************************* preserve glm antunbes_azubi_neu $meanregio $devregio $meanib $devib $meanpersonal $devpersonal $meancontrols3 $devcontrols3 gehalt_coeff $beruf_segment $bg $wo $jahr, family(binomial) link(logit) vce(robust) bysort idnum: keep if _N>=2 & e(sample) glm antunbes_azubi_neu $meanregio $devregio $meanib $devib $meanpersonal $devpersonal $meancontrols3 $devcontrols3 gehalt_coeff $beruf_segment $bg $wo $jahr, family(binomial) link(logit) vce(robust) matrix b = e(b) meqrlogit unbesetzt2_neu $meanregio $devregio $meanib $devib $meanpersonal $devpersonal $meancontrols3 $devcontrols3 gehalt_coeff $beruf_segment $bg $wo $jahr || ram: || idnum:, binomial(ausangebot_neu) from(b, skip) refineopts(iterate(0)) sum $descriptives3 if e(sample) estat icc foreach x in $regio3 $personal $ib { display "*************************" display "lincom unbesetzt2_neu" display "*************************" lincom mean_`x' - dev_`x' } margins, dydx(*) predict(mu fixedonly) post outreg2 using $tables\antunbes_azubi_meqrlogitmargins_hybrid_v2.xml, excel ctitle("antunbes_azubi_meqrlogithybrid_margins") se bdec(3) decmark(,)/*tstat tdec(3)*/ nor2 replace // label restore *************************** ***Eastern Germany *************************** preserve glm antunbes_azubi_neu $meanregio $devregio $meanib $devib $meanpersonal $devpersonal $meancontrols3 $devcontrols3 gehalt_coeff $beruf_segment $bg $jahr if wo==0, family(binomial) link(logit) vce(robust) bysort idnum: keep if _N>=2 & e(sample) glm antunbes_azubi_neu $meanregio $devregio $meanib $devib $meanpersonal $devpersonal $meancontrols3 $devcontrols3 gehalt_coeff $beruf_segment $bg $jahr if wo==0, family(binomial) link(logit) vce(robust) matrix b = e(b) meqrlogit unbesetzt2_neu $meanregio $devregio $meanib $devib $meanpersonal $devpersonal $meancontrols3 $devcontrols3 gehalt_coeff $beruf_segment $bg $jahr if wo==0 || ram: || idnum:, binomial(ausangebot_neu) from(b, skip) refineopts(iterate(0)) sum $descriptives3 if e(sample) estat icc foreach x in $regio3 $personal $ib { display "*************************" display "lincom unbesetzt2_neu" display "*************************" lincom mean_`x' - dev_`x' } margins, dydx(*) predict(mu fixedonly) post outreg2 using $tables\antunbes_azubi_meqrlogitmargins_hybrid_ost_v2.xml, excel ctitle("antunbes_azubi_meqrlogithybrid_margins") se bdec(3) decmark(,)/*tstat tdec(3)*/ nor2 replace // label restore *************************** ***Western Germany *************************** preserve glm antunbes_azubi_neu $meanregio $devregio $meanib $devib $meanpersonal $devpersonal $meancontrols3 $devcontrols3 gehalt_coeff $beruf_segment $bg $jahr if wo==1, family(binomial) link(logit) vce(robust) bysort idnum: keep if _N>=2 & e(sample) glm antunbes_azubi_neu $meanregio $devregio $meanib $devib $meanpersonal $devpersonal $meancontrols3 $devcontrols3 gehalt_coeff $beruf_segment $bg $jahr if wo==1, family(binomial) link(logit) vce(robust) matrix b = e(b) meqrlogit unbesetzt2_neu $meanregio $devregio $meanib $devib $meanpersonal $devpersonal $meancontrols3 $devcontrols3 gehalt_coeff $beruf_segment $bg $jahr if wo==1 || ram: || idnum:, binomial(ausangebot_neu) from(b, skip) refineopts(iterate(0)) sum $descriptives3 if e(sample) estat icc foreach x in $regio3 $personal $ib { display "*************************" display "lincom unbesetzt2_neu" display "*************************" lincom mean_`x' - dev_`x' } margins, dydx(*) predict(mu fixedonly) postoutreg2 using $tables\antunbes_azubi_meqrlogitmargins_hybrid_west_v2.xml, excel ctitle("antunbes_azubi_meqrlogithybrid_margins") se bdec(3) decmark(,)/*tstat tdec(3)*/ nor2 replace // label restore log close