******************************************************************************** * Kim Leonie Kellermann, Simon Winter: * Immigration and anti-immigrant voting the 2017 German parliamentary election * * This version: November 2021 * ******************************************************************************** //prelims version 17 clear all set more off cd "C:\Users\k_kell10\sciebo\Forschung\Migration\Paper_versionDE08_2021\Submission GER\Final version" //adjust path use btw17_kreise.dta // Set spatial parameters * Note: datasets vg2500_krs_shp.dta, coordkreise.dta, dbkreise.dta must be in the current working directory to run the spatial commands spset, modify shpfile(vg2500_krs_shp.dta) //Shapefile for German districts obtained from the Federal Agency for Cartography and Geodasy, https://www.bkg.bund.de/EN/Home/home.html spmatrix create contiguity Wc spmatrix create idistance Wi ******************************************************************************** * Part I: descriptives ******************************************************************************** // Summary statistics sum afd_share foreign_share eu_share noneu_share background jew33 foreign_share1995 afd_share13 nsdap asyl_share asylum_increase unemp turnout female_share nodegree /// christ_share married_share young_share rural industry2016 broadband east fed_state *Export to LaTeX sutex2 afd_share foreign_share eu_share noneu_share background jew33 foreign_share1995 afd_share13 nsdap asyl_share asylum_increase unemp turnout female_share nodegree /// christ_share married_share young_share rural industry2016 broadband east fed_state, saving("sumstat.tex") minmax // include as Table 1 // Cross-correlations pwcorr afd_share foreign_share eu_share noneu_share background jew33 foreign_share1995 afd_share13 nsdap asyl_share asylum_increase unemp turnout female_share nodegree /// christ_share married_share young_share rural industry2016 broadband east fed_state, sig * Run collinearity test collin afd_share foreign_share eu_share noneu_share background jew33 foreign_share1995 afd_share13 nsdap asyl_share asylum_increase unemp turnout female_share nodegree /// christ_share married_share young_share rural industry2016 broadband east fed_state *Export to LaTeX corrtex afd_share foreign_share eu_share noneu_share background jew33 foreign_share1995 afd_share13 asyl_share asylum_increase unemp, file("corrtex.tex") // include as appendix table A.2 // Graphical illustration: scatterplots scatter afd_share foreign_share // figure 3a sepscatter afd_share foreign_share, sep(east) // figure 3b //Graphical illustration: maps spmap afd_share using coordkreise.dta, id(_ID) // figure 1a spmap foreign_share using coordkreise.dta, id(_ID) // figure 1b spmap asylum_increase using coordkreise.dta, id(_ID) // figure 2a spmap jew33 using coordkreise.dta, id(_ID) // figure 2b spmap foreign_share1995 using coordkreise.dta, id(_ID) // figure 2c ******************************************************************************** * Part II: analysis ******************************************************************************** // Baseline analysis // Table 2: OLS results reg afd_share foreign_share afd_share13, robust reg afd_share foreign_share asylum_increase unemp afd_share13, robust reg afd_share foreign_share asyl_share unemp afd_share13, robust reg afd_share foreign_share asylum_increase unemp afd_share13 turnout nsdap female_share nodegree christ_share married_share young_share, robust reg afd_share foreign_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, robust // Table 3: Spatial OLS results spregress afd_share foreign_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, gs2sls het dvarlag(Wc) ivarlag(Wc:asylum_increase) force estat impact asylum_increase spregress afd_share foreign_share asylum_increase unemp afd_share13 turnout nsdap female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, gs2sls het dvarlag(Wc) ivarlag(Wc:unemp) force estat impact unemp spregress afd_share foreign_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, gs2sls het dvarlag(Wi) ivarlag(Wi:asylum_increase) force estat impact asylum_increase spregress afd_share foreign_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, gs2sls het dvarlag(Wi) ivarlag(Wi:unemp) force estat impact unemp //Alternative specifications //Table 4: Baseline IV results ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share = jew33), robust first partial(i.rural i.fed_state) ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share = foreign_share1995), robust first partial(i.rural i.fed_state) //Table 5: Alternative explanatories reg afd_share asyl_share unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share i.rural industry2016 broadband i.fed_state, robust reg afd_share foreign_net_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share i.rural industry2016 broadband i.fed_state, robust reg afd_share background asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share i.rural industry2016 broadband i.fed_state, robust reg afd_share eu_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share i.rural industry2016 broadband i.fed_state, robust reg afd_share noneu_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share i.rural industry2016 broadband i.fed_state, robust //Effect heterogeneity //Table 6: Effect heterogeneity reg afd_share foreign_share c.foreign_share#i.east asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state i.east, robust reg afd_share foreign_share asylum_increase c.asylum_increase#i.east unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, robust reg afd_share foreign_share asylum_increase unemp c.unemp#i.east afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, robust reg afd_share foreign_share c.foreign_share#c.unemp asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share i.rural industry2016 broadband i.fed_state, robust reg afd_share foreign_share c.foreign_share#c.asylum_increase asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share i.rural industry2016 broadband i.fed_state, robust //Plausibility analysis //Table 7: Plausibility I: AfD vote shares 2013 use btw17_kreise_panel.dta, clear reg afd_share foreign_share asyl_share unemp turnout nsdap female_share young_share nodegree christ_share married_share /// industry i.rural i.fed_state if year==2013, robust reg afd_share foreign_share c.foreign_share#i.east asyl_share unemp turnout nsdap female_share young_share nodegree christ_share married_share /// industry i.rural i.fed_state if year==2013, robust ivreg2 afd_share asyl_share unemp turnout nsdap female_share young_share nodegree christ_share married_share /// industry i.rural i.fed_state (foreign_share=jew33) if year==2013, robust first partial(i.rural i.fed_state) ivreg2 afd_share asyl_share unemp turnout nsdap female_share young_share nodegree christ_share married_share /// industry i.rural i.fed_state (foreign_share for_east=jew33 jew_east) if year==2013, robust first partial(i.rural i.fed_state) ivreg2 afd_share asyl_share unemp nsdap turnout female_share young_share nodegree christ_share married_share /// industry i.rural i.fed_state (foreign_share=foreign_share1995) if year==2013, robust first partial(i.rural i.fed_state) ivreg2 afd_share asyl_share unemp nsdap turnout female_share young_share nodegree christ_share married_share /// industry i.rural i.fed_state (foreign_share for_east=foreign_share1995 for1995_east) if year==2013, robust first partial(i.rural i.fed_state) //Table 8: Plausibility II: Other parties use btw17_kreise.dta, clear reg cdu_share foreign_share asylum_increase unemp cdu_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, robust reg spd_share foreign_share asylum_increase unemp spd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, robust reg fdp_share foreign_share asylum_increase unemp fdp_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, robust reg grüne_share foreign_share asylum_increase unemp grüne_share13 nsdap turnout female_share nodegree christ_share married_share young_share i.rural industry2016 broadband i.fed_state, robust reg linke_share foreign_share asylum_increase unemp linke_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, robust reg npd_share foreign_share asylum_increase unemp npd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, robust ******************************************************************************** * Part III: appendix B ******************************************************************************** //Table B.1: OLS results: standardized values egen zafd_share=std(afd_share) egen zforeign_share=std(foreign_share) egen zasylum_increase=std(asylum_increase) egen zunemp=std(unemp) egen zafd_share13=std(afd_share13) egen znsdap=std(nsdap) egen zturnout=std(turnout) egen zfemale_share=std(female_share) egen znodegree=std(nodegree) egen zchrist_share=std(christ_share) egen zmarried_share=std(married_share) egen zyoung_share=std(young_share) egen zindustry2016=std(industry2016) egen zbroadband=std(broadband) reg zafd_share zforeign_share zasylum_increase zunemp zafd_share13 znsdap zturnout zfemale_share znodegree zchrist_share zmarried_share zyoung_share /// i.rural zindustry2016 zbroadband i.fed_state, robust drop zafd_share-zbroadband //Table B.2: IV results: reduced form reg afd_share jew33 asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, robust reg afd_share foreign_share1995 asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, robust // Table B.3: Spatial IV analysis spivregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share = jew33), het dvarlag(Wc) ivarlag(Wc:asylum_increase) force estat impact asylum_increase spivregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share = jew33), het dvarlag(Wc) ivarlag(Wc:unemp) force estat impact unemp spivregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share = jew33), het dvarlag(Wi) ivarlag(Wi:asylum_increase) force estat impact asylum_increase spivregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share = jew33), het dvarlag(Wi) ivarlag(Wi:unemp) force estat impact unemp spivregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share = foreign_share1995), het dvarlag(Wc) ivarlag(Wc:asylum_increase) force estat impact asylum_increase spivregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share = foreign_share1995), het dvarlag(Wc) ivarlag(Wc:unemp) force estat impact unemp spivregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share = foreign_share1995), het dvarlag(Wi) ivarlag(Wi:asylum_increase) force estat impact asylum_increase spivregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share = foreign_share1995), het dvarlag(Wi) ivarlag(Wi:unemp) force estat impact unemp // Table B.4: Spatial IV results: reduced form spregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share i.rural industry2016 broadband i.fed_state jew33, het dvarlag(Wc) ivarlag(Wc:asylum_increase) gs2sls force estat impact asylum_increase spregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state jew33, het dvarlag(Wc) ivarlag(Wc:unemp) gs2sls force estat impact unemp spregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state jew33, het dvarlag(Wi) ivarlag(Wi:asylum_increase) gs2sls force estat impact asylum_increase spregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state jew33, het dvarlag(Wi) ivarlag(Wi:unemp) gs2sls force estat impact unemp spregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share i.rural industry2016 broadband i.fed_state foreign_share1995, het dvarlag(Wc) ivarlag(Wc:asylum_increase) gs2sls force estat impact asylum_increase spregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state foreign_share1995, het dvarlag(Wc) ivarlag(Wc:unemp) gs2sls force estat impact unemp spregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state foreign_share1995, het dvarlag(Wi) ivarlag(Wi:asylum_increase) gs2sls force estat impact asylum_increase spregress afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state foreign_share1995, het dvarlag(Wi) ivarlag(Wi:unemp) gs2sls force estat impact unemp //Table B.5: Alternative explanatories: IV results I ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_net_share=jew33), robust first partial(i.rural i.fed_state) ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (background=jew33), robust first partial(i.rural i.fed_state) ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (eu_share=jew33), robust first partial(i.rural i.fed_state) ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (noneu_share=jew33), robust first partial(i.rural i.fed_state) //Table B.6: Alternative explanatories: IV results II ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_net_share=foreign_share1995), robust first partial(i.rural i.fed_state) ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (background=foreign_share1995), robust first partial(i.rural i.fed_state) ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (eu_share=foreign_share1995), robust first partial(i.rural i.fed_state) ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (noneu_share=foreign_share1995), robust first partial(i.rural i.fed_state) // Table B.7: Alternative control variables reg afd_share foreign_share asylum_increase gdppc_kreis afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, robust reg afd_share foreign_share asylum_increase disp_incpc afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, robust reg afd_share foreign_share asylum_increase unemp afd_share13 nsdap turnout female_share unskilled christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, robust reg afd_share foreign_share asylum_increase unemp afd_share13 nsdap turnout female_share acad_share christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state, robust // Table B.8: OLS and IV, population-weighted reg afd_share foreign_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state [fweight=pop16], robust ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=jew33) [fweight=pop16], robust first partial(i.fed_state i.rural) ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=foreign_share1995) [fweight=pop16], robust first partial(i.fed_state i.rural) // Table B.9: Effect heterogeneity: IV results ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share for_east=jew33 jew_east), robust first partial(i.rural i.fed_state) ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share for_east=foreign_share1995 for_east1995), robust first partial(i.rural i.fed_state) ivreg2 afd_share asylum_increase c.asylum_increase#i.east unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=jew33), robust first partial(i.rural i.fed_state) ivreg2 afd_share asylum_increase c.asylum_increase#i.east unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=foreign_share1995), robust first partial(i.rural i.fed_state) ivreg2 afd_share asylum_increase unemp c.unemp#i.east afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=jew33), robust first partial(i.fed_state i.rural) ivreg2 afd_share asylum_increase unemp c.unemp#i.east afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=foreign_share1995), robust first partial(i.fed_state i.rural) ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share i.rural industry2016 broadband i.fed_state (foreign_share for_asyl=jew33 jew_asyl), robust first partial(i.rural i.fed_state) ivreg2 afd_share asylum_increase unemp afd_share13 nsdap turnout female_share nodegree christ_share married_share young_share i.rural industry2016 broadband i.fed_state (foreign_share for_asyl=foreign_share1995 for1995_asyl), robust first partial(i.rural i.fed_state) // Table B.10: Plausibility II: Other parties: IV results I ivreg2 cdu_share asylum_increase unemp cdu_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=jew33), robust first partial(i.fed_state i.rural) ivreg2 spd_share asylum_increase unemp spd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=jew33), robust first partial(i.fed_state i.rural) ivreg2 fdp_share asylum_increase unemp fdp_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=jew33), robust first partial(i.fed_state i.rural) ivreg2 grüne_share asylum_increase unemp grüne_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=jew33), robust first partial(i.fed_state i.rural) ivreg2 linke_share asylum_increase unemp linke_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=jew33), robust first partial(i.rural i.fed_state) ivreg2 npd_share asylum_increase unemp npd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=jew33), robust first partial(i.rural i.fed_state) // Table B.11: Plausibility II: Other parties: IV results II ivreg2 cdu_share asylum_increase unemp cdu_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=foreign_share1995), robust first partial(i.fed_state i.rural) ivreg2 spd_share asylum_increase unemp spd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=foreign_share1995), robust first partial(i.fed_state i.rural) ivreg2 fdp_share asylum_increase unemp fdp_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=foreign_share1995), robust first partial(i.fed_state i.rural) ivreg2 grüne_share asylum_increase unemp grüne_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=foreign_share1995), robust first partial(i.fed_state i.rural) ivreg2 linke_share asylum_increase unemp linke_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=foreign_share1995), robust first partial(i.rural i.fed_state) ivreg2 npd_share asylum_increase unemp npd_share13 nsdap turnout female_share nodegree christ_share married_share young_share /// i.rural industry2016 broadband i.fed_state (foreign_share=foreign_share1995), robust first partial(i.rural i.fed_state)