*============================================================================== * FILE: 1F-Variables * Researcher: Julian B. Adam * Version: July 2018 * * Project: Works Councils reform act * * Data used: Establishment panel 98-04 * * Description: This program harmonizes the industry classifications * 99 and 00. It generates variables necessary for the econometric * analysis. * *============================================================================== clear set more off set linesize 120 global main = "W:\BetriebsratStata\Daten\StataIABcompil_erw_panel" use "$orig\hvpi_dta.dta", clear recast int jahr save "$data\hvpi_dta.dta", replace use "$data\panel.dta", clear cap log close log using "$log\1F-Variables.log", replace label lang de drop if jahr==2014 *------------------------------------------------------------------------------- * merge with dataset containing harmonized consumer price index (Eurostat) merge m:1 jahr using "$orig\hvpi_dta.dta" *------------------------------------------------------------------------------ * change industry classification to avoid small case numbers, all services in (7) *transforming missings mvdecode _all, mv(-9) mvdecode _all, mv(-8) *vorleist takes values>100, set all values >100 to 100 replace vorleist=100 if vorleist>100 label var jahr "year" *redefining industries, harmonization gen bran99=. replace bran99=1 if bran_n99==1|bran_n99==2 replace bran99=2 if bran_n99>2 & bran_n99<17 replace bran99=3 if bran_n99==17|bran_n99==18 replace bran99=4 if bran_n99==19 replace bran99=5 if bran_n99==20 replace bran99=6 if bran_n99==21|bran_n99==22 replace bran99=7 if bran_n99>22 & bran_n99<36 replace bran99=8 if bran_n99>35 replace bran99=. if bran_n99==. label var bran99 "industry until 1999, 8-classification" gen bran00=. replace bran00=1 if bran_n00==1|bran_n99==2 replace bran00=2 if bran_n00>2 & bran_n00<19 replace bran00=3 if bran_n00==19|bran_n00==20 replace bran00=4 if bran_n00==21|bran_n00==22|bran_n00==23 replace bran00=5 if bran_n00==24|bran_n00==25 replace bran00=6 if bran_n00==26|bran_n00==27 replace bran00=7 if bran_n00>27 & bran_n00<39 replace bran00=8 if bran_n00>38 replace bran00=. if bran_n00==. label var bran00 "industry from 2000, 8-classification" *merging the 2 variables replace bran99=0 if bran99==. replace bran00=0 if bran00==. gen bran=bran99+bran00 replace bran=. if bran==0 label var bran "industry, 8-classification" *------------------------------------------------------------------------------ * Generating treatment indicators; post if year> 2001 gen post=0 replace post=1 if jahr>2001 label var post "year after 2001" * generating indicator whether establishment has size of treatment for * increase of the council gen incr_counc=0 replace incr_counc=1 if gesamt>100 & gesamt<151 replace incr_counc=1 if gesamt>200 & gesamt<301 replace incr_counc=1 if gesamt>400 & gesamt<601 replace incr_counc=1 if gesamt>700 & gesamt<1001 replace incr_counc=1 if gesamt>1500 & gesamt<2001 replace incr_counc=1 if gesamt>2500 & gesamt<3001 replace incr_counc=1 if gesamt>3500 & gesamt<4001 replace incr_counc=1 if gesamt>4500 & gesamt<5001 replace incr_counc=1 if gesamt>4000 & gesamt<9001 replace incr_counc=1 if gesamt>9000 label var incr_counc "increase WoCo 0/1" gen incr_counc_number=. replace incr_counc_number=2 if incr_counc==1 & gesamt<6001 replace incr_counc_number=4 if incr_counc==1 & gesamt>6000 replace incr_counc_number=0 if incr_counc==0 gen incr_counc_number_empl_prop=incr_counc_number/gesamt label var incr_counc "increase WoCo, number" label var incr_counc_number_empl "increase WoCo, rel. to no. of employees" * generating variable: change in number of councilors relative to previous * council size gen incr_counc_prop=0 replace incr_counc_prop=2/5 if gesamt>100 & gesamt<151 replace incr_counc_prop=2/7 if gesamt>200 & gesamt<301 replace incr_counc_prop=2/9 if gesamt>400 & gesamt<601 replace incr_counc_prop=2/11 if gesamt>700 & gesamt<1001 replace incr_counc_prop=2/15 if gesamt>1500 & gesamt<2001 replace incr_counc_prop=2/19 if gesamt>2500 & gesamt<3001 replace incr_counc_prop=2/23 if gesamt>3500 & gesamt<4001 replace incr_counc_prop=2/27 if gesamt>4500 & gesamt<5001 replace incr_counc_prop=2/29 if gesamt>5000 & gesamt<6001 replace incr_counc_prop=4/29 if gesamt>6000 & gesamt<7001 replace incr_counc_prop=4/31 if gesamt>7000 & gesamt<9001 replace incr_counc_prop=4/33 if gesamt>9000 & gesamt<12001 replace incr_counc_prop=4/35 if gesamt>12000 & gesamt<15001 replace incr_counc_prop=4/37 if gesamt>15000 & gesamt<18001 replace incr_counc_prop=4/39 if gesamt>18000 & gesamt<21001 replace incr_counc_prop=4/41 if gesamt>21000 & gesamt<24001 replace incr_counc_prop=4/45 if gesamt>24000 & gesamt<27001 replace incr_counc_prop=4/47 if gesamt>27000 & gesamt<30001 replace incr_counc_prop=4/49 if gesamt>30000 & gesamt<33001 replace incr_counc_prop=4/51 if gesamt>36000 & gesamt<39001 replace incr_counc_prop=4/53 if gesamt>39000 & gesamt<42001 replace incr_counc_prop=4/55 if gesamt>42000 & gesamt<45001 replace incr_counc_prop=4/57 if gesamt>45000 & gesamt<48001 replace incr_counc_prop=4/59 if gesamt>48000 & gesamt<51001 label var incr_counc_prop "increase WoCo, prop." *defining size classes based on no. of employees gen treat_group=. replace treat_group=1 if gesamt<101 replace treat_group=2 if gesamt>100 & gesamt<151 replace treat_group=3 if gesamt>150 & gesamt<201 replace treat_group=4 if gesamt>200 & gesamt<301 replace treat_group=5 if gesamt>300 & gesamt<401 replace treat_group=6 if gesamt>400 & gesamt<501 replace treat_group=7 if gesamt>500 & gesamt<601 replace treat_group=8 if gesamt>600 & gesamt<701 replace treat_group=9 if gesamt>700 & gesamt<901 replace treat_group=10 if gesamt>900 & gesamt<1001 replace treat_group=11 if gesamt>1000 & gesamt<1501 replace treat_group=12 if gesamt>1500 & gesamt<2001 replace treat_group=13 if gesamt>2000 & gesamt<2501 label var treat_group "size class (current)" *above 9000 employees, there was no change in number of councilors. *variable tarif (collective agreement) is not coded 0/1 *shall take value 1 if sectoral or companywide collective agreement gen tarif_1=. replace tarif_1=1 if tarif==1 |tarif==2 replace tarif_1=0 if tarif==3 label var tarif_1 "collective agreement 1/0" *generate gross pay per capita gen pc_pay=. replace pc_pay=lohn/gesamt label var pc_pay "avg. pay per capita June" * set as panel data xtset idnum jahr * deflating wage sum, base year: 2001, deflate by HVPI EuroStat gen rlohn=lohn/hvpi if jahr>1997 & jahr<2005 label var rlohn "real wage cost p.c." *generation pay per capita in real terms gen rpc_pay=rlohn/gesamt label var rpc_pay "avg. real wage per worker in June" *generation female quota gen frau_quota=ges_frau/gesamt label var frau_quota "Frauenquote" *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX gen sales_pc=geschvol/gesamt label var sales_pc "sales per employee" gen lgeschvol=ln(geschvol) gen kuend_ratio=kuend_an/gesamt label var kuend_ratio "quit ratio" sort idnum jahr *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX * generate a variable that denotes sample * only establishment that do not change WoCo status bysort idnum: egen betrratsum=sum(betrrat) bysort idnum: egen betrratmean=mean(betrrat) gen sample=0 replace sample=1 if betrratmean==1 & betrrat!=.& jahr<2005 & geschart<4 & treat_group<5 /// & treat_group>2 & gesamt!=. & tarif_1!=. & geschvol!=. & bran!=. & kuend_an!=. /// & geschart!=. & treat_group!=. & gesamt>150 & gesamt<251 gen sample_treat=. replace sample_treat=0 if sample==1 & treat_group==3 replace sample_treat=1 if sample==1 & treat_group==4 label var sample_treat "treated/ untreated in sample 0/1" * generating indicator for treatment group and treatment dummy: establishments * with 200-300 establishments after 2001 gen treat4=. replace treat4=1 if treat_group==4 replace treat4=0 if treat_group!=4 gen treatpost=treat4*post gen treatposttarif=treat4*post*tarif_1 *productivity measure: value added per worker gen va=geschvol-vorleist label var va "value added total" gen va_pc=va/gesamt label var va_pc "value added per worker" gen lva_pc=ln(va_pc) gen lrlohn=ln(rlohn) bysort sample_treat: sum betrrat west gesamt geschvol lgeschvol va_pc lva_pc /// rlohn lrlohn tarif_1 invest kuend_an entlass frau einvern befrist azubi ertlag /// uebtarif kuend_ratio bysort sample:sum betrrat west gesamt geschvol lgeschvol va_pc lva_pc /// rlohn lrlohn tarif_1 invest kuend_an entlass frau einvern befrist azubi ertlag /// uebtarif kuend_ratio bysort sample_treat: count *############################################################################### * manually include dummies for spec.(7) and (8) quietly tabulate jahr, generate(j) rename j1 j98 rename j2 j99 rename j3 j00 rename j4 j01 rename j5 j02 rename j6 j03 rename j7 j04 rename j8 j05 gen j98treat=j98*treat4 gen j99treat=j99*treat4 gen j00treat=j00*treat4 gen j01treat=j01*treat4 gen j02treat=j02*treat4 gen j03treat=j03*treat4 gen j04treat=j04*treat4 gen j98treattarif=j98*treat4*tarif_1 gen j99treattarif=j99*treat4*tarif_1 gen j00treattarif=j00*treat4*tarif_1 gen j01treattarif=j01*treat4*tarif_1 gen j02treattarif=j02*treat4*tarif_1 gen j03treattarif=j03*treat4*tarif_1 gen j04treattarif=j04*treat4*tarif_1 *############################################################################### * for robustness check: do firms changing collective agreement status make * a difference? bysort idnum: egen tarif_change=mean(tarif) if tarif!=. gen TV=. replace TV=1 if tarif_change==2 replace TV=1 if tarif_change==1 replace TV=0 if tarif_change==3 gen treatposttarif_a=treat4*post*TV * variable for checking whether est. changed coll. agr. status bysort idnum: egen tarif_1_check=mean(tarif_1) tab tarif_1_check if sample==1 sum kuend_an ertlag gesamt tarif_1 west invest einvern rpc_pay frau_quota sales_pc if sample==1 & tarif_1_check==1 | sample==1 & tarif_1_check==0 sum kuend_an ertlag gesamt tarif_1 west invest einvern rpc_pay frau_quota sales_pc if sample==1 & tarif_1_check>0 & tarif_1_check<1 *############################################################################### * left-censoring: how many est. have 0 quits? tab kuend_an if sample==1 *############################################################################### * rescale variable rpc_pay gen rpc_pay_1000=rpc_pay/1000 save "$data\panel_1_F.dta", replace log cl