set more off ***************************************************************** *** 07e Panel aus CEM - k2k - match fuer Robustness-Check ******* ***************************************************************** /* - CEM (Coarsened Exact Matching) k2k - eigene Definition der Schichten für CEM - statt Bruttoanlageinvest. in einme konkreten Jahr -> durchschnittliche Bruttoanlageinvest. t-3 bis t-1 als Matching-Var - Matching-Variablen 1 Jahr vor der Foerderung - Outcomes jbu_ef14 (Taetige Personen), jbu_ef16 (Umsatz), ieu_ef49 (Bruttoanlageinvest.), export_share (Exportanteil Umsatz), prod (Produktivitaet = Umsatz / Beschaeftigte) - Generieren eines Panels aus den matches aus gefoerderten und nicht-gefoerderten UN - ttest / imbalance measure - fixed effects Diff-in-Diff - Ergebnisse fuer Vergleich mit teffects nnmatch als Robustness check */ * Outcome-Variablen local vars jbu_ef14 jbu_ef16 ieu_ef49 prod capture log close results_07e log using "$LOGS\07e_cem_k2k_own_strata_mean_$date.log", name(results_07e) replace foreach outcome in `vars' { * Matching nur noch ein Jahr vor F򲤥rung -> beste Ergebnisse forvalues k = 1/1 { forvalues j = 1/6 { local outcome_var = "`outcome'" + "_post" + "`j'" * durchschnittliche Bruttoanlageinvest. t-3 bis t-1 als Matching-Var local matching_vars jbu_ef14_prev`k' ieu_ef49_mean_t3 /// export_share_prev`k' prod_prev`k' diff_`outcome'_prev`k' * Datensatz 2 = treated und nontreated aus westdt. Nichtfoerdergebieten use "$RESULTS\daten_fuer_teffects_2_1.dta", clear quietly recode treated (.=0) * Korrelation - Beschäftigte / Umsatz corr jbu_ef14_post0 jbu_ef16_post0 * Erstellen der Cutpoints für CEM, basierend auf Median der Variablen local med_vars ieu_ef49_post0 prod_post0 foreach m of local med_vars { sum `m' if treated == 1, detail local `m'_2 = r(p50) local `m'_1 = 0.5 * ``m'_2' local `m'_3 = 1.5 * ``m'_2' local `m'_4 = 2 * ``m'_2' } * Differenz - bildet Entwicklung der Outcomevaribale des Unternehmens * bis zum F򲤥rzeitpunkt ab quietly capture gen diff_`outcome'_prev`k' = `outcome'_post0 - `outcome'_prev`k' * durchschnittliche Bruttoanlageinvest. t-3 bis t-1 quietly recode ieu_ef49_prev1 (.=0) quietly recode ieu_ef49_prev2 (.=0) quietly recode ieu_ef49_prev3 (.=0) capture gen ieu_ef49_mean_t3 = (ieu_ef49_prev1 + ieu_ef49_prev2 + ieu_ef49_prev3) / 3 display "" display "#################################################" display "Outcome: `outcome_var'" display "Zeitpunkt Outcome: `j' Jahre nach Foerderung" display "Zeitpunkt Matching: `k' Jahre vor Foerderung" display "Matching-Variablen: `matching_vars'" display "#################################################" * nur Beobachtungen behalten, für die es in allen Outcome- und Matching-Variablen Werte gibt quietly dropmiss `outcome_var' `matching_vars', force obs any * prüfen, ob noch ein geführtes Unternehmen in Gruppe capture bysort group: egen h = sum(treated) capture quietly keep if h == 1 capture drop h * prüfen, ob mind. 2 Unternehmen innerhalb einer Gruppe capture bysort group: gen h = _N capture quietly keep if h > 1 capture drop h count if r(N) == 0 { display "######################################" display "Nach dropmiss keine Beobachtungen mehr" display "######################################" continue } else { * Gruppengröße ausgeben, die in teffects-Schätzung eingehen tab group cem group(#0) jbu_ef14_prev`k' (49 249) /// ieu_ef49_mean_t3 (`ieu_ef49_post0_1' `ieu_ef49_post0_2' `ieu_ef49_post0_3' `ieu_ef49_post0_4' ) /// export_share_prev`k' (0.01 0.1 0.5) /// prod_prev`k' (`prod_post0_1' `prod_post0_2' `prod_post0_3' `prod_post0_4') /// diff_`outcome'_prev`k' (#6), /// treatment(treated) k2k showbreaks keep if cem_matched == 1 count if r(N) == 0 { display "###############################" display "Keine Matching-Partner gefunden" display "###############################" continue } else { *** Generieren des Panels *** keep unr_s unr treated first_treatment * nicht gefoerderte Unternehmen können mehrfach vorhanden sein * wenn mehrfach, dann nimm den fruehsten Foerderzeitpunkt bysort unr: egen h_min = min(first_treatment) keep if first_treatment == h_min drop h_* duplicates drop unr, force * wenn weniger als 30 UN -> nicht interpretiebar count if r(N) < 30 { display "##################################################" display "Weniger als 30 UN -> naechster Schleifendurchlauf!" display "##################################################" continue } else { merge 1:n unr using "$RESULTS\hilf_afid.dta", keep(1 3) keep unr treated first_treatment jahr jbu_ef14 jbu_ef16 ieu_ef49 mb_26 mb_27 gen export_share = mb_26 / mb_27 gen prod = jbu_ef16 / jbu_ef14 fillin unr jahr drop _fillin * Luecken die durch fillin entstanden sind fuellen bysort unr: egen h_treated = max(treated) replace treated = h_treated if treated == . bysort unr: egen h_first_treatment = max(first_treatment) replace first_treatment = h_first_treatment if first_treatment == . drop h_* * post treatment dummy gen post_treat_dummy = 1 if jahr > first_treatment recode post_treat_dummy (.=0) * post treatment dummy rel. years gen post_treat_dummy_rel_years = jahr - first_treatment if jahr > first_treatment recode post_treat_dummy_rel_year (.=0) cap label var export_share "Exportanteil Umsatz [mb26/mb27]" cap label var prod "Produktivitaet [jbu_ef16/jbu_ef14]" cap label var post_treat_dummy ">= 1 Jahr nach Foerderung" cap label var post_treat_dummy_rel_years "Jahre nach Foerderung" *** Fixed Effects Diff-in-Diff *** * Panel bestimmen sort treated unr jahr xtset unr jahr * Panel allgemein beschreiben xtdes * Berechnung moving average der Bruttoinvestitionen (L3 - L1) recode ieu_ef49 (.=0) gen ieu_ef49_mean_t3 = (L3.ieu_ef49 + L2.ieu_ef49 + L1.ieu_ef49) / 3 keep if jahr >= 2007 & jahr <= 2014 display "" display "###" display "Overall imbalance measure" imb jbu_ef14 jbu_ef16 ieu_ef49_mean_t3 export_share prod if post_treat_dummy_rel_years[_n+1]==1, treatment(treated) * Tests local test_vars jbu_ef14 jbu_ef16 ieu_ef49_mean_t3 prod export_share foreach t of local test_vars { display "" display "###" display "ttest `t' if post_treat_dummy_rel_years[_n+1]==1 , by(treated) " ttest `t' if post_treat_dummy_rel_years[_n+1]==1 , by(treated) display "" display "###" display "ksmirnov `t' if post_treat_dummy_rel_years[_n+1]==1, by(treated) exact" ksmirnov `t' if post_treat_dummy_rel_years[_n+1]==1, by(treated) exact } * Treatment Group == treated * Before and After the Intervention == post_treat_dummy display "" display "###" display "xtreg `outcome' i.treated##i.post_treat_dummy i.jahr if post_treat_dummy_rel_years<2 , fe vce(cluster unr)" xtreg `outcome' i.treated##i.post_treat_dummy i.jahr if post_treat_dummy_rel_years<2 , fe vce(cluster unr) display "" display "###" display "xtreg `outcome' i.treated##i.post_treat_dummy_rel_years i.jahr if post_treat_dummy_rel_years<2, fe vce(cluster unr)" xtreg `outcome' i.treated##i.post_treat_dummy_rel_years i.jahr if post_treat_dummy_rel_years<2, fe vce(cluster unr) } } } } } } capture log close results_07e