*** Replication files: calculating indices for: *** Markus Wagner (2020), Affective polarization in multiparty sytems, Electoral Studies *** Link: https://www.sciencedirect.com/science/article/pii/S0261379420300822 *** Do-File: Markus Wagner & Nikolaus Kowarz, University of Vienna *** In case of questions or corrections, contact markus.wagner@univie.ac.at *** Date: 20/12/2020 *** This do-file calculates the four indices mentioned in the article: weighted and unweighted spread of scores and mean distance. *** It does for the IMD dataset and then each dataset separately. *** Presidential vote shares are taken where parliamentary vote shares not available. *** Global working directory global DATADIR "..\affectivepolarization" // replace with your working directory cd "$DATADIR" ********************** Comparative Study of Electoral Systems (CSES) ***************************** ********************************************************** ************************ IMD ************************ ********************************************************** use "cses_imd.dta", clear recode IMD5001_A-IMD5001_I (0=.) (70/.=.) // missing values lower house election vote shares recode IMD3008_A-IMD3008_I (11/.=.) // missing values like-dislike scores recode IMD5003_A-IMD5003_I (0=.) (70/.=.) // missing values upper house vote shares recode IMD5005_A-IMD5005_I (0=.) (70/.=.) // missing values presidential vote shares replace IMD5001_A=IMD5005_A if IMD5001_A==.&IMD5005_A!=. // replace lower house scores with presidential scores where relevant replace IMD5001_B=IMD5005_B if IMD5001_B==.&IMD5005_B!=. replace IMD5001_C=IMD5005_C if IMD5001_C==.&IMD5005_C!=. replace IMD5001_D=IMD5005_D if IMD5001_D==.&IMD5005_D!=. replace IMD5001_E=IMD5005_E if IMD5001_E==.&IMD5005_E!=. replace IMD5001_F=IMD5005_F if IMD5001_F==.&IMD5005_F!=. replace IMD5001_G=IMD5005_G if IMD5001_G==.&IMD5005_G!=. replace IMD5001_H=IMD5005_H if IMD5001_H==.&IMD5005_H!=. replace IMD5001_I=IMD5005_I if IMD5001_I==.&IMD5005_I!=. egen partynumber=rownonmiss(IMD3008_A-IMD3008_I) egen votenumber=rownonmiss(IMD5001_A-IMD5001_I) gen completeA=(IMD3008_A!=.&IMD5001_A!=.) gen completeB=(IMD3008_B!=.&IMD5001_B!=.) gen completeC=(IMD3008_C!=.&IMD5001_C!=.) gen completeD=(IMD3008_D!=.&IMD5001_D!=.) gen completeE=(IMD3008_E!=.&IMD5001_E!=.) gen completeF=(IMD3008_F!=.&IMD5001_F!=.) gen completeG=(IMD3008_G!=.&IMD5001_H!=.) gen completeH=(IMD3008_H!=.&IMD5001_G!=.) gen completeI=(IMD3008_I!=.&IMD5001_I!=.) egen completenumber=rowtotal(completeA-completeI) if votenumber!=0&partynumber!=0 replace completenumber=0 if partynumber==0 replace completenumber=0 if votenumber==0 *** Aff pol egen meanlike=rowmean(IMD3008_A-IMD3008_I) gen affpolA=(IMD3008_A-meanlike)^2 gen affpolB=(IMD3008_B-meanlike)^2 gen affpolC=(IMD3008_C-meanlike)^2 gen affpolD=(IMD3008_D-meanlike)^2 gen affpolE=(IMD3008_E-meanlike)^2 gen affpolF=(IMD3008_F-meanlike)^2 gen affpolG=(IMD3008_G-meanlike)^2 gen affpolH=(IMD3008_H-meanlike)^2 gen affpolI=(IMD3008_I-meanlike)^2 egen sumaffpol=rowtotal(affpolA-affpolI) if partynumber!=0 gen affpol=sqrt(sumaffpol/partynumber) ***** WEIGHTED *** Correct vote shares egen sumvotes=rowtotal(IMD5001_A-IMD5001_I) if votenumber!=0 replace sumvotes=sumvotes-IMD5001_A if completeA!=1&IMD5001_A!=. replace sumvotes=sumvotes-IMD5001_B if completeB!=1&IMD5001_B!=. replace sumvotes=sumvotes-IMD5001_C if completeC!=1&IMD5001_C!=. replace sumvotes=sumvotes-IMD5001_D if completeD!=1&IMD5001_D!=. replace sumvotes=sumvotes-IMD5001_E if completeE!=1&IMD5001_E!=. replace sumvotes=sumvotes-IMD5001_F if completeF!=1&IMD5001_F!=. replace sumvotes=sumvotes-IMD5001_G if completeG!=1&IMD5001_G!=. replace sumvotes=sumvotes-IMD5001_H if completeH!=1&IMD5001_H!=. replace sumvotes=sumvotes-IMD5001_I if completeI!=1&IMD5001_I!=. gen voteA=IMD5001_A/sumvotes gen voteB=IMD5001_B/sumvotes gen voteC=IMD5001_C/sumvotes gen voteD=IMD5001_D/sumvotes gen voteE=IMD5001_E/sumvotes gen voteF=IMD5001_F/sumvotes gen voteG=IMD5001_G/sumvotes gen voteH=IMD5001_H/sumvotes gen voteI=IMD5001_I/sumvotes *** check egen allvotes=rowtotal(voteA-voteI) gen helpA=voteA*IMD3008_A gen helpB=voteB*IMD3008_B gen helpC=voteC*IMD3008_C gen helpD=voteD*IMD3008_D gen helpE=voteE*IMD3008_E gen helpF=voteF*IMD3008_F gen helpG=voteG*IMD3008_G gen helpH=voteH*IMD3008_H gen helpI=voteI*IMD3008_I egen weightedmeanlike=rowtotal(helpA-helpI) if completenumber!=0 gen affpolAwgt=voteA*((IMD3008_A-weightedmeanlike)^2) gen affpolBwgt=voteB*((IMD3008_B-weightedmeanlike)^2) gen affpolCwgt=voteC*((IMD3008_C-weightedmeanlike)^2) gen affpolDwgt=voteD*((IMD3008_D-weightedmeanlike)^2) gen affpolEwgt=voteE*((IMD3008_E-weightedmeanlike)^2) gen affpolFwgt=voteF*((IMD3008_F-weightedmeanlike)^2) gen affpolGwgt=voteG*((IMD3008_G-weightedmeanlike)^2) gen affpolHwgt=voteH*((IMD3008_H-weightedmeanlike)^2) gen affpolIwgt=voteI*((IMD3008_I-weightedmeanlike)^2) egen affpolwgt=rowtotal(affpolAwgt-affpolIwgt) if completenumber!=0 replace affpolwgt=sqrt(affpolwgt) replace affpolwgt=. if completenumber==1 *** Distance from most liked party egen maxlike_help=rowmax(IMD3008_A-IMD3008_I) gen likedistA=(IMD3008_A-maxlike_help)^2 gen likedistB=(IMD3008_B-maxlike_help)^2 gen likedistC=(IMD3008_C-maxlike_help)^2 gen likedistD=(IMD3008_D-maxlike_help)^2 gen likedistE=(IMD3008_E-maxlike_help)^2 gen likedistF=(IMD3008_F-maxlike_help)^2 gen likedistG=(IMD3008_G-maxlike_help)^2 gen likedistH=(IMD3008_H-maxlike_help)^2 gen likedistI=(IMD3008_I-maxlike_help)^2 egen sumlikedist=rowtotal(likedistA-likedistI) if partynumber!=0 gen likedistpol=sqrt(sumlikedist/(partynumber-1)) if maxlike_help!=. ***** WEIGHTED *** Correct vote shares gen maxA=(likedistA==0) gen maxB=(likedistB==0) gen maxC=(likedistC==0) gen maxD=(likedistD==0) gen maxE=(likedistE==0) gen maxF=(likedistF==0) gen maxG=(likedistG==0) gen maxH=(likedistH==0) gen maxI=(likedistI==0) egen countmax=rowtotal(maxA-maxI) replace voteA=0 if maxA==1&countmax==1 replace voteB=0 if maxB==1&countmax==1 replace voteC=0 if maxC==1&countmax==1 replace voteD=0 if maxD==1&countmax==1 replace voteE=0 if maxE==1&countmax==1 replace voteF=0 if maxF==1&countmax==1 replace voteG=0 if maxG==1&countmax==1 replace voteH=0 if maxH==1&countmax==1 replace voteI=0 if maxI==1&countmax==1 forvalues x=2(1)9 { replace voteA=voteA/`x' if maxA==1&countmax==`x' replace voteB=voteB/`x' if maxB==1&countmax==`x' replace voteC=voteC/`x' if maxC==1&countmax==`x' replace voteD=voteD/`x' if maxD==1&countmax==`x' replace voteE=voteE/`x' if maxE==1&countmax==`x' replace voteF=voteF/`x' if maxF==1&countmax==`x' replace voteG=voteG/`x' if maxG==1&countmax==`x' replace voteH=voteH/`x' if maxH==1&countmax==`x' replace voteI=voteI/`x' if maxI==1&countmax==`x' } egen sumvotesnew=rowtotal(voteA-voteI) replace voteA=voteA/sumvotesnew replace voteB=voteB/sumvotesnew replace voteC=voteC/sumvotesnew replace voteD=voteD/sumvotesnew replace voteE=voteE/sumvotesnew replace voteF=voteF/sumvotesnew replace voteG=voteG/sumvotesnew replace voteH=voteH/sumvotesnew replace voteI=voteI/sumvotesnew gen likedistAwgt=voteA*((IMD3008_A-maxlike_help)^2) gen likedistBwgt=voteB*((IMD3008_B-maxlike_help)^2) gen likedistCwgt=voteC*((IMD3008_C-maxlike_help)^2) gen likedistDwgt=voteD*((IMD3008_D-maxlike_help)^2) gen likedistEwgt=voteE*((IMD3008_E-maxlike_help)^2) gen likedistFwgt=voteF*((IMD3008_F-maxlike_help)^2) gen likedistGwgt=voteG*((IMD3008_G-maxlike_help)^2) gen likedistHwgt=voteH*((IMD3008_H-maxlike_help)^2) gen likedistIwgt=voteI*((IMD3008_I-maxlike_help)^2) egen likedistwgt=rowtotal(likedistAwgt-likedistIwgt) if completenumber!=0 replace likedistwgt=sqrt(likedistwgt) replace likedistwgt=. if completenumber==1 drop completeA- sumaffpol sumvotes- affpolIwgt drop maxlike_help- sumlikedist drop maxA- likedistIwgt save "csesimd_affpol.dta", replace ********************************************************** ************************ Module 1 ************************ ********************************************************** use "cses1.dta", clear // CSES module 1 drop if A1004=="BLR_2001" // No vote share data from BLR recode A5005_A-A5005_F (0=.) (70/.=.) // Percent vote- Lower House; missing values recode A3020_A-A3020_F (11/.=.) // Like-dislike party; missing values recode A5009_A-A5009_F (0=.) (70/.=.) // Percent vote - Presidental election vote share; missing values replace A5005_A=A5009_A if A5005_A==.&A5009_A!=. // For LTU; BLR; CHL; RUS: presidential election vote share replace A5005_B=A5009_B if A5005_B==.&A5009_B!=. replace A5005_C=A5009_C if A5005_C==.&A5009_C!=. replace A5005_D=A5009_D if A5005_D==.&A5009_D!=. replace A5005_E=A5009_E if A5005_E==.&A5009_E!=. replace A5005_F=A5009_F if A5005_F==.&A5009_F!=. egen partynumber=rownonmiss(A3020_A-A3020_F) egen votenumber=rownonmiss(A5005_A-A5005_F) gen completeA=(A3020_A!=.&A5005_A!=.) gen completeB=(A3020_B!=.&A5005_B!=.) gen completeC=(A3020_C!=.&A5005_C!=.) gen completeD=(A3020_D!=.&A5005_D!=.) gen completeE=(A3020_E!=.&A5005_E!=.) gen completeF=(A3020_F!=.&A5005_F!=.) egen completenumber=rowtotal(completeA-completeF) if votenumber!=0&partynumber!=0 replace completenumber=0 if partynumber==0 replace completenumber=0 if votenumber==0 *** Aff pol egen meanlike=rowmean(A3020_A-A3020_F) // generate meanlike variable; mean like-dislike variables gen affpolA=(A3020_A-meanlike)^2 // generate affective polarization variables gen affpolB=(A3020_B-meanlike)^2 gen affpolC=(A3020_C-meanlike)^2 gen affpolD=(A3020_D-meanlike)^2 gen affpolE=(A3020_E-meanlike)^2 gen affpolF=(A3020_F-meanlike)^2 egen sumaffpol=rowtotal(affpolA-affpolF) if partynumber!=0 gen affpol=sqrt(sumaffpol/partynumber) ***** WEIGHTED *** Correct vote shares egen sumvotes=rowtotal(A5005_A-A5005_F) if votenumber!=0 replace sumvotes=sumvotes-A5005_A if completeA!=1&A5005_A!=. replace sumvotes=sumvotes-A5005_B if completeB!=1&A5005_B!=. replace sumvotes=sumvotes-A5005_C if completeC!=1&A5005_C!=. replace sumvotes=sumvotes-A5005_D if completeD!=1&A5005_D!=. replace sumvotes=sumvotes-A5005_E if completeE!=1&A5005_E!=. replace sumvotes=sumvotes-A5005_F if completeF!=1&A5005_F!=. gen voteA=A5005_A/sumvotes gen voteB=A5005_B/sumvotes gen voteC=A5005_C/sumvotes gen voteD=A5005_D/sumvotes gen voteE=A5005_E/sumvotes gen voteF=A5005_F/sumvotes *** check egen allvotes=rowtotal(voteA-voteF) gen helpA=voteA*A3020_A gen helpB=voteB*A3020_B gen helpC=voteC*A3020_C gen helpD=voteD*A3020_D gen helpE=voteE*A3020_E gen helpF=voteF*A3020_F egen weightedmeanlike=rowtotal(helpA-helpF) if completenumber!=0 gen affpolAwgt=voteA*((A3020_A-weightedmeanlike)^2) gen affpolBwgt=voteB*((A3020_B-weightedmeanlike)^2) gen affpolCwgt=voteC*((A3020_C-weightedmeanlike)^2) gen affpolDwgt=voteD*((A3020_D-weightedmeanlike)^2) gen affpolEwgt=voteE*((A3020_E-weightedmeanlike)^2) gen affpolFwgt=voteF*((A3020_F-weightedmeanlike)^2) egen affpolwgt=rowtotal(affpolAwgt-affpolFwgt) if completenumber!=0 replace affpolwgt=sqrt(affpolwgt) replace affpolwgt=. if completenumber==1 *** Distance from most liked party egen maxlike_help=rowmax(A3020_A-A3020_F) // generate maxlike_help --> max liked party gen likedistA=(A3020_A-maxlike_help)^2 // squared distance from most liked party gen likedistB=(A3020_B-maxlike_help)^2 gen likedistC=(A3020_C-maxlike_help)^2 gen likedistD=(A3020_D-maxlike_help)^2 gen likedistE=(A3020_E-maxlike_help)^2 gen likedistF=(A3020_F-maxlike_help)^2 egen sumlikedist=rowtotal(likedistA-likedistF) if partynumber!=0 gen likedistpol=sqrt(sumlikedist/(partynumber-1)) if maxlike_help!=. ***** WEIGHTED *** Correct vote shares gen maxA=(likedistA==0) gen maxB=(likedistB==0) gen maxC=(likedistC==0) gen maxD=(likedistD==0) gen maxE=(likedistE==0) gen maxF=(likedistF==0) egen countmax=rowtotal(maxA-maxF) replace voteA=0 if maxA==1&countmax==1 replace voteB=0 if maxB==1&countmax==1 replace voteC=0 if maxC==1&countmax==1 replace voteD=0 if maxD==1&countmax==1 replace voteE=0 if maxE==1&countmax==1 replace voteF=0 if maxF==1&countmax==1 forvalues x=2(1)6 { replace voteA=voteA/`x' if maxA==1&countmax==`x' replace voteB=voteB/`x' if maxB==1&countmax==`x' replace voteC=voteC/`x' if maxC==1&countmax==`x' replace voteD=voteD/`x' if maxD==1&countmax==`x' replace voteE=voteE/`x' if maxE==1&countmax==`x' replace voteF=voteF/`x' if maxF==1&countmax==`x' } egen sumvotesnew=rowtotal(voteA-voteF) replace voteA=voteA/sumvotesnew replace voteB=voteB/sumvotesnew replace voteC=voteC/sumvotesnew replace voteD=voteD/sumvotesnew replace voteE=voteE/sumvotesnew replace voteF=voteF/sumvotesnew gen likedistAwgt=voteA*((A3020_A-maxlike_help)^2) gen likedistBwgt=voteB*((A3020_B-maxlike_help)^2) gen likedistCwgt=voteC*((A3020_C-maxlike_help)^2) gen likedistDwgt=voteD*((A3020_D-maxlike_help)^2) gen likedistEwgt=voteE*((A3020_E-maxlike_help)^2) gen likedistFwgt=voteF*((A3020_F-maxlike_help)^2) egen likedistwgt=rowtotal(likedistAwgt-likedistFwgt) if completenumber!=0 replace likedistwgt=sqrt(likedistwgt) replace likedistwgt=. if completenumber==1 drop completeA- sumaffpol sumvotes- affpolFwgt drop maxlike_help- sumlikedist drop maxA- likedistFwgt save "cses1_affpol.dta", replace ********************************************************** ************************ Module 2 ************************ ********************************************************** use "cses2.dta", clear // load data drop if B1004=="KGZ_2005" // drop b/c parties not clear recode B5001_A-B5001_I (0=.) (70/.=.) // lower house vote share; missing values recode B5003_A-B5003_I (0=.) (90/.=.) // upper house vote share; missing values recode B5005_A-B5005_I (0=.) (90/.=.) // presidential election vote share; missing values recode B3037_A- B3037_I (11/.=.) replace B5001_A=B5003_A if B5001_A==.&B5003_A!=. // FOR JAPAN replace B5001_B=B5003_B if B5001_B==.&B5003_B!=. replace B5001_C=B5003_C if B5001_C==.&B5003_C!=. replace B5001_D=B5003_D if B5001_D==.&B5003_D!=. replace B5001_E=B5003_E if B5001_E==.&B5003_E!=. replace B5001_F=B5003_F if B5001_F==.&B5003_F!=. replace B5001_G=B5003_G if B5001_G==.&B5003_G!=. replace B5001_H=B5003_H if B5001_H==.&B5003_H!=. replace B5001_I=B5003_I if B5001_I==.&B5003_I!=. replace B5001_A=B5005_A if B5001_A==.&B5005_A!=. // France, KGZ, PHL, RUS; TWN replace B5001_B=B5005_B if B5001_B==.&B5005_B!=. replace B5001_C=B5005_C if B5001_C==.&B5005_C!=. replace B5001_D=B5005_D if B5001_D==.&B5005_D!=. replace B5001_E=B5005_E if B5001_E==.&B5005_E!=. replace B5001_F=B5005_F if B5001_F==.&B5005_F!=. replace B5001_G=B5005_G if B5001_G==.&B5005_G!=. replace B5001_H=B5005_H if B5001_H==.&B5005_H!=. replace B5001_I=B5005_I if B5001_I==.&B5005_I!=. egen partynumber=rownonmiss( B3037_A- B3037_F) egen votenumber=rownonmiss(B5001_A-B5001_F) gen completeA=( B3037_A!=.&B5001_A!=.) gen completeB=( B3037_B!=.&B5001_B!=.) gen completeC=( B3037_C!=.&B5001_C!=.) gen completeD=( B3037_D!=.&B5001_D!=.) gen completeE=( B3037_E!=.&B5001_E!=.) gen completeF=( B3037_F!=.&B5001_F!=.) gen completeG=( B3037_G!=.&B5001_G!=.) gen completeH=( B3037_H!=.&B5001_H!=.) gen completeI=( B3037_I!=.&B5001_I!=.) egen completenumber=rowtotal(completeA-completeI) if votenumber!=0&partynumber!=0 replace completenumber=0 if partynumber==0 replace completenumber=0 if votenumber==0 *** Aff pol egen meanlike=rowmean( B3037_A- B3037_I) // generate meanlike variable; mean like-dislike variables gen affpolA=( B3037_A-meanlike)^2 // generate affective polarization variables; difference like-dislike and meanlike gen affpolB=( B3037_B-meanlike)^2 gen affpolC=( B3037_C-meanlike)^2 gen affpolD=( B3037_D-meanlike)^2 gen affpolE=( B3037_E-meanlike)^2 gen affpolF=( B3037_F-meanlike)^2 gen affpolG=( B3037_G-meanlike)^2 gen affpolH=( B3037_H-meanlike)^2 gen affpolI=( B3037_I-meanlike)^2 egen sumaffpol=rowtotal(affpolA-affpolI) if partynumber!=0 gen affpol=sqrt(sumaffpol/partynumber) ***** WEIGHTED *** Correct vote shares egen sumvotes=rowtotal(B5001_A-B5001_I) if votenumber!=0 replace sumvotes=sumvotes-B5001_A if completeA!=1&B5001_A!=. replace sumvotes=sumvotes-B5001_B if completeB!=1&B5001_B!=. replace sumvotes=sumvotes-B5001_C if completeC!=1&B5001_C!=. replace sumvotes=sumvotes-B5001_D if completeD!=1&B5001_D!=. replace sumvotes=sumvotes-B5001_E if completeE!=1&B5001_E!=. replace sumvotes=sumvotes-B5001_F if completeF!=1&B5001_F!=. replace sumvotes=sumvotes-B5001_G if completeG!=1&B5001_G!=. replace sumvotes=sumvotes-B5001_H if completeH!=1&B5001_H!=. replace sumvotes=sumvotes-B5001_I if completeI!=1&B5001_I!=. gen voteA=B5001_A/sumvotes gen voteB=B5001_B/sumvotes gen voteC=B5001_C/sumvotes gen voteD=B5001_D/sumvotes gen voteE=B5001_E/sumvotes gen voteF=B5001_F/sumvotes gen voteG=B5001_G/sumvotes gen voteH=B5001_H/sumvotes gen voteI=B5001_I/sumvotes *** check egen allvotes=rowtotal(voteA-voteI) gen helpA=voteA* B3037_A gen helpB=voteB* B3037_B gen helpC=voteC* B3037_C gen helpD=voteD* B3037_D gen helpE=voteE* B3037_E gen helpF=voteF* B3037_F gen helpG=voteG* B3037_G gen helpH=voteH* B3037_H gen helpI=voteI* B3037_I egen weightedmeanlike=rowtotal(helpA-helpI) if completenumber!=0 gen affpolAwgt=voteA*(( B3037_A-weightedmeanlike)^2) gen affpolBwgt=voteB*(( B3037_B-weightedmeanlike)^2) gen affpolCwgt=voteC*(( B3037_C-weightedmeanlike)^2) gen affpolDwgt=voteD*(( B3037_D-weightedmeanlike)^2) gen affpolEwgt=voteE*(( B3037_E-weightedmeanlike)^2) gen affpolFwgt=voteF*(( B3037_F-weightedmeanlike)^2) gen affpolGwgt=voteG*(( B3037_G-weightedmeanlike)^2) gen affpolHwgt=voteH*(( B3037_H-weightedmeanlike)^2) gen affpolIwgt=voteI*(( B3037_I-weightedmeanlike)^2) egen affpolwgt=rowtotal(affpolAwgt-affpolIwgt) if completenumber!=0 replace affpolwgt=sqrt(affpolwgt) replace affpolwgt=. if completenumber==1 *** Distance from most liked party egen maxlike_help=rowmax( B3037_A- B3037_I) // generate maxlike variable; most liked party gen likedistA=( B3037_A-maxlike_help)^2 // generate likedist variables; distance from most likes party gen likedistB=( B3037_B-maxlike_help)^2 gen likedistC=( B3037_C-maxlike_help)^2 gen likedistD=( B3037_D-maxlike_help)^2 gen likedistE=( B3037_E-maxlike_help)^2 gen likedistF=( B3037_F-maxlike_help)^2 gen likedistG=( B3037_G-maxlike_help)^2 gen likedistH=( B3037_H-maxlike_help)^2 gen likedistI=( B3037_I-maxlike_help)^2 egen sumlikedist=rowtotal(likedistA-likedistI) if partynumber!=0 gen likedistpol=sqrt(sumlikedist/(partynumber-1)) if maxlike_help!=. ***** WEIGHTED *** Correct vote shares gen maxA=(likedistA==0) gen maxB=(likedistB==0) gen maxC=(likedistC==0) gen maxD=(likedistD==0) gen maxE=(likedistE==0) gen maxF=(likedistF==0) gen maxG=(likedistG==0) gen maxH=(likedistH==0) gen maxI=(likedistI==0) egen countmax=rowtotal(maxA-maxI) replace voteA=0 if maxA==1&countmax==1 replace voteB=0 if maxB==1&countmax==1 replace voteC=0 if maxC==1&countmax==1 replace voteD=0 if maxD==1&countmax==1 replace voteE=0 if maxE==1&countmax==1 replace voteF=0 if maxF==1&countmax==1 replace voteG=0 if maxG==1&countmax==1 replace voteH=0 if maxH==1&countmax==1 replace voteI=0 if maxI==1&countmax==1 forvalues x=2(1)9 { replace voteA=voteA/`x' if maxA==1&countmax==`x' replace voteB=voteB/`x' if maxB==1&countmax==`x' replace voteC=voteC/`x' if maxC==1&countmax==`x' replace voteD=voteD/`x' if maxD==1&countmax==`x' replace voteE=voteE/`x' if maxE==1&countmax==`x' replace voteF=voteF/`x' if maxF==1&countmax==`x' replace voteG=voteG/`x' if maxG==1&countmax==`x' replace voteH=voteH/`x' if maxH==1&countmax==`x' replace voteI=voteI/`x' if maxI==1&countmax==`x' } egen sumvotesnew=rowtotal(voteA-voteI) replace voteA=voteA/sumvotesnew replace voteB=voteB/sumvotesnew replace voteC=voteC/sumvotesnew replace voteD=voteD/sumvotesnew replace voteE=voteE/sumvotesnew replace voteF=voteF/sumvotesnew replace voteG=voteG/sumvotesnew replace voteH=voteH/sumvotesnew replace voteI=voteI/sumvotesnew gen likedistAwgt=voteA*(( B3037_A-maxlike_help)^2) gen likedistBwgt=voteB*(( B3037_B-maxlike_help)^2) gen likedistCwgt=voteC*(( B3037_C-maxlike_help)^2) gen likedistDwgt=voteD*(( B3037_D-maxlike_help)^2) gen likedistEwgt=voteE*(( B3037_E-maxlike_help)^2) gen likedistFwgt=voteF*(( B3037_F-maxlike_help)^2) gen likedistGwgt=voteG*(( B3037_G-maxlike_help)^2) gen likedistHwgt=voteH*(( B3037_H-maxlike_help)^2) gen likedistIwgt=voteI*(( B3037_I-maxlike_help)^2) egen likedistwgt=rowtotal(likedistAwgt-likedistIwgt) if completenumber!=0 replace likedistwgt=sqrt(likedistwgt) replace likedistwgt=. if completenumber==1 drop completeA- sumaffpol sumvotes- affpolIwgt drop maxlike_help- sumlikedist drop maxA- likedistIwgt save "cses2_affpol.dta", replace ********************************************************** ************************ Module 3 ************************ ********************************************************** use "cses3.dta", clear recode C5001_A-C5001_I (0=.) (70/.=.) // lower house vote share; missing values recode C5003_A-C5003_I (0=.) (70/.=.) // upper house vote shara; missing values recode C5005_A-C5005_I (0=.) (70/.=.) // presidential election vote share; missing values recode C3009_A-C3009_I (11/.=.) // like-dislike; missing values replace C5001_A=C5003_A if C5001_A==.&C5003_A!=. // FOR JAPAN replace C5001_B=C5003_B if C5001_B==.&C5003_B!=. replace C5001_C=C5003_C if C5001_C==.&C5003_C!=. replace C5001_D=C5003_D if C5001_D==.&C5003_D!=. replace C5001_E=C5003_E if C5001_E==.&C5003_E!=. replace C5001_F=C5003_F if C5001_F==.&C5003_F!=. replace C5001_G=C5003_G if C5001_G==.&C5003_G!=. replace C5001_H=C5003_H if C5001_H==.&C5003_H!=. replace C5001_I=C5003_I if C5001_I==.&C5003_I!=. replace C5001_A=C5005_A if C5001_A==.&C5005_A!=. // ROU; TWN replace C5001_B=C5005_B if C5001_B==.&C5005_B!=. replace C5001_C=C5005_C if C5001_C==.&C5005_C!=. replace C5001_D=C5005_D if C5001_D==.&C5005_D!=. replace C5001_E=C5005_E if C5001_E==.&C5005_E!=. replace C5001_F=C5005_F if C5001_F==.&C5005_F!=. replace C5001_G=C5005_G if C5001_G==.&C5005_G!=. replace C5001_H=C5005_H if C5001_H==.&C5005_H!=. replace C5001_I=C5005_I if C5001_I==.&C5005_I!=. egen partynumber=rownonmiss(C3009_A-C3009_I) egen votenumber=rownonmiss(C5001_A-C5001_I) gen completeA=(C3009_A!=.&C5001_A!=.) gen completeB=(C3009_B!=.&C5001_B!=.) gen completeC=(C3009_C!=.&C5001_C!=.) gen completeD=(C3009_D!=.&C5001_D!=.) gen completeE=(C3009_E!=.&C5001_E!=.) gen completeF=(C3009_F!=.&C5001_F!=.) gen completeG=(C3009_G!=.&C5001_G!=.) gen completeH=(C3009_H!=.&C5001_H!=.) gen completeI=(C3009_I!=.&C5001_I!=.) egen completenumber=rowtotal(completeA-completeI) if votenumber!=0&partynumber!=0 replace completenumber=0 if partynumber==0 replace completenumber=0 if votenumber==0 *** Aff pol egen meanlike=rowmean(C3009_A-C3009_I) // generate meanlike variable out of like-dislike variables gen affpolA=(C3009_A-meanlike)^2 // generate affective polarization varibales gen affpolB=(C3009_B-meanlike)^2 gen affpolC=(C3009_C-meanlike)^2 gen affpolD=(C3009_D-meanlike)^2 gen affpolE=(C3009_E-meanlike)^2 gen affpolF=(C3009_F-meanlike)^2 gen affpolG=(C3009_G-meanlike)^2 gen affpolH=(C3009_H-meanlike)^2 gen affpolI=(C3009_I-meanlike)^2 egen sumaffpol=rowtotal(affpolA-affpolI) if partynumber!=0 gen affpol=sqrt(sumaffpol/partynumber) ***** WEIGHTED *** Correct vote shares egen sumvotes=rowtotal(C5001_A-C5001_I) if votenumber!=0 replace sumvotes=sumvotes-C5001_A if completeA!=1&C5001_A!=. replace sumvotes=sumvotes-C5001_B if completeB!=1&C5001_B!=. replace sumvotes=sumvotes-C5001_C if completeC!=1&C5001_C!=. replace sumvotes=sumvotes-C5001_D if completeD!=1&C5001_D!=. replace sumvotes=sumvotes-C5001_E if completeE!=1&C5001_E!=. replace sumvotes=sumvotes-C5001_F if completeF!=1&C5001_F!=. replace sumvotes=sumvotes-C5001_G if completeG!=1&C5001_G!=. replace sumvotes=sumvotes-C5001_H if completeH!=1&C5001_H!=. replace sumvotes=sumvotes-C5001_I if completeI!=1&C5001_I!=. gen voteA=C5001_A/sumvotes gen voteB=C5001_B/sumvotes gen voteC=C5001_C/sumvotes gen voteD=C5001_D/sumvotes gen voteE=C5001_E/sumvotes gen voteF=C5001_F/sumvotes gen voteG=C5001_G/sumvotes gen voteH=C5001_H/sumvotes gen voteI=C5001_I/sumvotes *** check egen allvotes=rowtotal(voteA-voteI) gen helpA=voteA*C3009_A gen helpB=voteB*C3009_B gen helpC=voteC*C3009_C gen helpD=voteD*C3009_D gen helpE=voteE*C3009_E gen helpF=voteF*C3009_F gen helpG=voteG*C3009_G gen helpH=voteH*C3009_H gen helpI=voteI*C3009_I egen weightedmeanlike=rowtotal(helpA-helpI) if completenumber!=0 gen affpolAwgt=voteA*((C3009_A-weightedmeanlike)^2) gen affpolBwgt=voteB*((C3009_B-weightedmeanlike)^2) gen affpolCwgt=voteC*((C3009_C-weightedmeanlike)^2) gen affpolDwgt=voteD*((C3009_D-weightedmeanlike)^2) gen affpolEwgt=voteE*((C3009_E-weightedmeanlike)^2) gen affpolFwgt=voteF*((C3009_F-weightedmeanlike)^2) gen affpolGwgt=voteG*((C3009_G-weightedmeanlike)^2) gen affpolHwgt=voteH*((C3009_H-weightedmeanlike)^2) gen affpolIwgt=voteI*((C3009_I-weightedmeanlike)^2) egen affpolwgt=rowtotal(affpolAwgt-affpolIwgt) if completenumber!=0 replace affpolwgt=sqrt(affpolwgt) replace affpolwgt=. if completenumber==1 *** Distance from most liked party egen maxlike_help=rowmax(C3009_A-C3009_I) // enerate maxlike variable; most liked party gen likedistA=(C3009_A-maxlike_help)^2 // generate likedist variables; distance from most likes party gen likedistB=(C3009_B-maxlike_help)^2 gen likedistC=(C3009_C-maxlike_help)^2 gen likedistD=(C3009_D-maxlike_help)^2 gen likedistE=(C3009_E-maxlike_help)^2 gen likedistF=(C3009_F-maxlike_help)^2 gen likedistG=(C3009_G-maxlike_help)^2 gen likedistH=(C3009_H-maxlike_help)^2 gen likedistI=(C3009_I-maxlike_help)^2 egen sumlikedist=rowtotal(likedistA-likedistI) if partynumber!=0 gen likedistpol=sqrt(sumlikedist/(partynumber-1)) if maxlike_help!=. ***** WEIGHTED *** Correct vote shares gen maxA=(likedistA==0) gen maxB=(likedistB==0) gen maxC=(likedistC==0) gen maxD=(likedistD==0) gen maxE=(likedistE==0) gen maxF=(likedistF==0) gen maxG=(likedistG==0) gen maxH=(likedistH==0) gen maxI=(likedistI==0) egen countmax=rowtotal(maxA-maxI) replace voteA=0 if maxA==1&countmax==1 replace voteB=0 if maxB==1&countmax==1 replace voteC=0 if maxC==1&countmax==1 replace voteD=0 if maxD==1&countmax==1 replace voteE=0 if maxE==1&countmax==1 replace voteF=0 if maxF==1&countmax==1 replace voteG=0 if maxG==1&countmax==1 replace voteH=0 if maxH==1&countmax==1 replace voteI=0 if maxI==1&countmax==1 forvalues x=2(1)9 { replace voteA=voteA/`x' if maxA==1&countmax==`x' replace voteB=voteB/`x' if maxB==1&countmax==`x' replace voteC=voteC/`x' if maxC==1&countmax==`x' replace voteD=voteD/`x' if maxD==1&countmax==`x' replace voteE=voteE/`x' if maxE==1&countmax==`x' replace voteF=voteF/`x' if maxF==1&countmax==`x' replace voteG=voteG/`x' if maxG==1&countmax==`x' replace voteH=voteH/`x' if maxH==1&countmax==`x' replace voteI=voteI/`x' if maxI==1&countmax==`x' } egen sumvotesnew=rowtotal(voteA-voteI) replace voteA=voteA/sumvotesnew replace voteB=voteB/sumvotesnew replace voteC=voteC/sumvotesnew replace voteD=voteD/sumvotesnew replace voteE=voteE/sumvotesnew replace voteF=voteF/sumvotesnew replace voteG=voteG/sumvotesnew replace voteH=voteH/sumvotesnew replace voteI=voteI/sumvotesnew gen likedistAwgt=voteA*((C3009_A-maxlike_help)^2) gen likedistBwgt=voteB*((C3009_B-maxlike_help)^2) gen likedistCwgt=voteC*((C3009_C-maxlike_help)^2) gen likedistDwgt=voteD*((C3009_D-maxlike_help)^2) gen likedistEwgt=voteE*((C3009_E-maxlike_help)^2) gen likedistFwgt=voteF*((C3009_F-maxlike_help)^2) gen likedistGwgt=voteG*((C3009_G-maxlike_help)^2) gen likedistHwgt=voteH*((C3009_H-maxlike_help)^2) gen likedistIwgt=voteI*((C3009_I-maxlike_help)^2) egen likedistwgt=rowtotal(likedistAwgt-likedistIwgt) if completenumber!=0 replace likedistwgt=sqrt(likedistwgt) replace likedistwgt=. if completenumber==1 drop completeA- sumaffpol sumvotes- affpolIwgt drop maxlike_help- sumlikedist drop maxA- likedistIwgt save "cses3_affpol.dta", replace ********************************************************** ************************ Module 4 ************************ ********************************************************** use "cses4.dta", clear recode D5001_A-D5001_I (0=.) (70/.=.) // lower house vote share; missing values recode D3011_A-D3011_I (11/.=.) // like-dislike party; missing values recode D5003_A-D5003_I (0=.) (70/.=.) // upper house vote share; missing values recode D5005_A-D5005_I (0=.) (70/.=.) // presidential election vote share; missing values replace D5001_A=D5003_A if D5001_A==.&D5003_A!=. // FOR JAPAN replace D5001_B=D5003_B if D5001_B==.&D5003_B!=. replace D5001_C=D5003_C if D5001_C==.&D5003_C!=. replace D5001_D=D5003_D if D5001_D==.&D5003_D!=. replace D5001_E=D5003_E if D5001_E==.&D5003_E!=. replace D5001_F=D5003_F if D5001_F==.&D5003_F!=. replace D5001_G=D5003_G if D5001_G==.&D5003_G!=. replace D5001_H=D5003_H if D5001_H==.&D5003_H!=. replace D5001_I=D5003_I if D5001_I==.&D5003_I!=. replace D5005_A=40.44 if D1003==64202014 // FIX ROMANIA replace D5005_B=30.37 if D1003==64202014 replace D5005_C=5.2 if D1003==64202014 replace D5005_D=4.03 if D1003==64202014 replace D5005_E=3.68 if D1003==64202014 replace D5005_F=3.47 if D1003==64202014 replace D5001_A=D5005_A if D5001_A==.&D5005_A!=. // FRANCE & ROMANIA replace D5001_B=D5005_B if D5001_B==.&D5005_B!=. replace D5001_C=D5005_C if D5001_C==.&D5005_C!=. replace D5001_D=D5005_D if D5001_D==.&D5005_D!=. replace D5001_E=D5005_E if D5001_E==.&D5005_E!=. replace D5001_F=D5005_F if D5001_F==.&D5005_F!=. replace D5001_G=D5005_G if D5001_G==.&D5005_G!=. replace D5001_H=D5005_H if D5001_H==.&D5005_H!=. replace D5001_I=D5005_I if D5001_I==.&D5005_I!=. egen partynumber=rownonmiss(D3011_A-D3011_I) egen votenumber=rownonmiss(D5001_A-D5001_I) gen completeA=(D3011_A!=.&D5001_A!=.) gen completeB=(D3011_B!=.&D5001_B!=.) gen completeC=(D3011_C!=.&D5001_C!=.) gen completeD=(D3011_D!=.&D5001_D!=.) gen completeE=(D3011_E!=.&D5001_E!=.) gen completeF=(D3011_F!=.&D5001_F!=.) gen completeG=(D3011_G!=.&D5001_H!=.) gen completeH=(D3011_H!=.&D5001_G!=.) gen completeI=(D3011_I!=.&D5001_I!=.) egen completenumber=rowtotal(completeA-completeI) if votenumber!=0&partynumber!=0 replace completenumber=0 if partynumber==0 replace completenumber=0 if votenumber==0 bys D1003: egen maxcomp=max(completenumber) egen partynumber_reduced=rownonmiss(D3011_A-D3011_D) egen votenumber_reduced=rownonmiss(D5001_A-D5001_D) egen completenumber_reduced=rowtotal(completeA-completeD) if votenumber_reduced!=0&partynumber_reduced!=0 replace completenumber_reduced=0 if partynumber_reduced==0 replace completenumber_reduced=0 if votenumber_reduced==0 *** Aff pol egen meanlike=rowmean(D3011_A-D3011_I) // generate meanlike our of like-dislike variables gen affpolA=(D3011_A-meanlike)^2 // generate affective polarization variables gen affpolB=(D3011_B-meanlike)^2 gen affpolC=(D3011_C-meanlike)^2 gen affpolD=(D3011_D-meanlike)^2 gen affpolE=(D3011_E-meanlike)^2 gen affpolF=(D3011_F-meanlike)^2 gen affpolG=(D3011_G-meanlike)^2 gen affpolH=(D3011_H-meanlike)^2 gen affpolI=(D3011_I-meanlike)^2 egen sumaffpol=rowtotal(affpolA-affpolI) if partynumber!=0 gen affpol=sqrt(sumaffpol/partynumber) *** UNWEIGHTED FOR FOUR PARTIES egen meanlike_reduced=rowmean(D3011_A-D3011_D) gen affpolA_red=(D3011_A-meanlike_reduced)^2 gen affpolB_red=(D3011_B-meanlike_reduced)^2 gen affpolC_red=(D3011_C-meanlike_reduced)^2 gen affpolD_red=(D3011_D-meanlike_reduced)^2 egen sumaffpol_reduced=rowtotal(affpolA-affpolD) if partynumber_reduced!=0&maxcomp>5 gen affpol_reduced=sqrt(sumaffpol_reduced/partynumber_reduced) ***** WEIGHTED *** Correct vote shares egen sumvotes=rowtotal(D5001_A-D5001_I) if votenumber!=0 replace sumvotes=sumvotes-D5001_A if completeA!=1&D5001_A!=. replace sumvotes=sumvotes-D5001_B if completeB!=1&D5001_B!=. replace sumvotes=sumvotes-D5001_C if completeC!=1&D5001_C!=. replace sumvotes=sumvotes-D5001_D if completeD!=1&D5001_D!=. replace sumvotes=sumvotes-D5001_E if completeE!=1&D5001_E!=. replace sumvotes=sumvotes-D5001_F if completeF!=1&D5001_F!=. replace sumvotes=sumvotes-D5001_G if completeG!=1&D5001_G!=. replace sumvotes=sumvotes-D5001_H if completeH!=1&D5001_H!=. replace sumvotes=sumvotes-D5001_I if completeI!=1&D5001_I!=. gen voteA=D5001_A/sumvotes gen voteB=D5001_B/sumvotes gen voteC=D5001_C/sumvotes gen voteD=D5001_D/sumvotes gen voteE=D5001_E/sumvotes gen voteF=D5001_F/sumvotes gen voteG=D5001_G/sumvotes gen voteH=D5001_H/sumvotes gen voteI=D5001_I/sumvotes *** check egen allvotes=rowtotal(voteA-voteI) gen helpA=voteA*D3011_A gen helpB=voteB*D3011_B gen helpC=voteC*D3011_C gen helpD=voteD*D3011_D gen helpE=voteE*D3011_E gen helpF=voteF*D3011_F gen helpG=voteG*D3011_G gen helpH=voteH*D3011_H gen helpI=voteI*D3011_I egen weightedmeanlike=rowtotal(helpA-helpI) if completenumber!=0 gen affpolAwgt=voteA*((D3011_A-weightedmeanlike)^2) gen affpolBwgt=voteB*((D3011_B-weightedmeanlike)^2) gen affpolCwgt=voteC*((D3011_C-weightedmeanlike)^2) gen affpolDwgt=voteD*((D3011_D-weightedmeanlike)^2) gen affpolEwgt=voteE*((D3011_E-weightedmeanlike)^2) gen affpolFwgt=voteF*((D3011_F-weightedmeanlike)^2) gen affpolGwgt=voteG*((D3011_G-weightedmeanlike)^2) gen affpolHwgt=voteH*((D3011_H-weightedmeanlike)^2) gen affpolIwgt=voteI*((D3011_I-weightedmeanlike)^2) egen affpolwgt=rowtotal(affpolAwgt-affpolIwgt) if completenumber!=0 replace affpolwgt=sqrt(affpolwgt) replace affpolwgt=. if completenumber==1 **** WEIGHTED FOR FOUR PARTIES *** check egen allvotes_red=rowtotal(voteA-voteD) *** Correct vote shares egen sumvotes_red=rowtotal(D5001_A-D5001_D) if votenumber_reduced!=0 replace sumvotes_red=sumvotes_red-D5001_A if completeA!=1&D5001_A!=. replace sumvotes_red=sumvotes_red-D5001_B if completeB!=1&D5001_B!=. replace sumvotes_red=sumvotes_red-D5001_C if completeC!=1&D5001_C!=. replace sumvotes_red=sumvotes_red-D5001_D if completeD!=1&D5001_D!=. gen voteA_red=D5001_A/sumvotes_red gen voteB_red=D5001_B/sumvotes_red gen voteC_red=D5001_C/sumvotes_red gen voteD_red=D5001_D/sumvotes_red gen helpA_red=voteA_red*D3011_A gen helpB_red=voteB_red*D3011_B gen helpC_red=voteC_red*D3011_C gen helpD_red=voteD_red*D3011_D egen weightedmeanlike_red=rowtotal(helpA_red-helpD_red) if completenumber_red!=0 gen affpolAwgt_red=voteA_red*((D3011_A-weightedmeanlike_red)^2) gen affpolBwgt_red=voteB_red*((D3011_B-weightedmeanlike_red)^2) gen affpolCwgt_red=voteC_red*((D3011_C-weightedmeanlike_red)^2) gen affpolDwgt_red=voteD_red*((D3011_D-weightedmeanlike_red)^2) egen affpolwgt_red=rowtotal(affpolAwgt_red-affpolDwgt_red) if completenumber_red!=0 replace affpolwgt_red=sqrt(affpolwgt_red) replace affpolwgt_red=. if completenumber_red==1 *** Distance from most liked party egen maxlike_help=rowmax(D3011_A-D3011_I) gen likedistA=(D3011_A-maxlike_help)^2 gen likedistB=(D3011_B-maxlike_help)^2 gen likedistC=(D3011_C-maxlike_help)^2 gen likedistD=(D3011_D-maxlike_help)^2 gen likedistE=(D3011_E-maxlike_help)^2 gen likedistF=(D3011_F-maxlike_help)^2 gen likedistG=(D3011_G-maxlike_help)^2 gen likedistH=(D3011_H-maxlike_help)^2 gen likedistI=(D3011_I-maxlike_help)^2 egen sumlikedist=rowtotal(likedistA-likedistI) if partynumber!=0 gen likedistpol=sqrt(sumlikedist/(partynumber-1)) if maxlike_help!=. *** FOUR PARTIES Distance from most liked party egen maxlike_help_red=rowmax(D3011_A-D3011_D) gen likedistA_red=(D3011_A-maxlike_help_red)^2 gen likedistB_red=(D3011_B-maxlike_help_red)^2 gen likedistC_red=(D3011_C-maxlike_help_red)^2 gen likedistD_red=(D3011_D-maxlike_help_red)^2 egen sumlikedist_red=rowtotal(likedistA-likedistD) if partynumber_red!=0 gen likedistpol_red=sqrt(sumlikedist_red/(partynumber_red-1)) if maxlike_help_red!=. ***** WEIGHTED *** Correct vote shares gen maxA=(likedistA==0) gen maxB=(likedistB==0) gen maxC=(likedistC==0) gen maxD=(likedistD==0) gen maxE=(likedistE==0) gen maxF=(likedistF==0) gen maxG=(likedistG==0) gen maxH=(likedistH==0) gen maxI=(likedistI==0) egen countmax=rowtotal(maxA-maxI) replace voteA=0 if maxA==1&countmax==1 replace voteB=0 if maxB==1&countmax==1 replace voteC=0 if maxC==1&countmax==1 replace voteD=0 if maxD==1&countmax==1 replace voteE=0 if maxE==1&countmax==1 replace voteF=0 if maxF==1&countmax==1 replace voteG=0 if maxG==1&countmax==1 replace voteH=0 if maxH==1&countmax==1 replace voteI=0 if maxI==1&countmax==1 forvalues x=2(1)9 { replace voteA=voteA/`x' if maxA==1&countmax==`x' replace voteB=voteB/`x' if maxB==1&countmax==`x' replace voteC=voteC/`x' if maxC==1&countmax==`x' replace voteD=voteD/`x' if maxD==1&countmax==`x' replace voteE=voteE/`x' if maxE==1&countmax==`x' replace voteF=voteF/`x' if maxF==1&countmax==`x' replace voteG=voteG/`x' if maxG==1&countmax==`x' replace voteH=voteH/`x' if maxH==1&countmax==`x' replace voteI=voteI/`x' if maxI==1&countmax==`x' } egen sumvotesnew=rowtotal(voteA-voteI) replace voteA=voteA/sumvotesnew replace voteB=voteB/sumvotesnew replace voteC=voteC/sumvotesnew replace voteD=voteD/sumvotesnew replace voteE=voteE/sumvotesnew replace voteF=voteF/sumvotesnew replace voteG=voteG/sumvotesnew replace voteH=voteH/sumvotesnew replace voteI=voteI/sumvotesnew gen likedistAwgt=voteA*((D3011_A-maxlike_help)^2) gen likedistBwgt=voteB*((D3011_B-maxlike_help)^2) gen likedistCwgt=voteC*((D3011_C-maxlike_help)^2) gen likedistDwgt=voteD*((D3011_D-maxlike_help)^2) gen likedistEwgt=voteE*((D3011_E-maxlike_help)^2) gen likedistFwgt=voteF*((D3011_F-maxlike_help)^2) gen likedistGwgt=voteG*((D3011_G-maxlike_help)^2) gen likedistHwgt=voteH*((D3011_H-maxlike_help)^2) gen likedistIwgt=voteI*((D3011_I-maxlike_help)^2) egen likedistwgt=rowtotal(likedistAwgt-likedistIwgt) if completenumber!=0 replace likedistwgt=sqrt(likedistwgt) replace likedistwgt=. if completenumber==1 drop completeA- sumaffpol sumvotes- affpolIwgt drop maxlike_help- sumlikedist drop maxA- likedistIwgt save "cses4_affpol.dta", replace ********************************************************** ************************ Module 5 ************************ ********************************************************** use "cses5.dta", clear recode E5001_A-E5001_I (0=.) (70/.=.) recode E3017_A-E3017_I (11/.=.) recode E5003_A-E5003_I (0=.) (70/.=.) recode E5005_A-E5005_I (0=.) (70/.=.) replace E5001_A=E5005_A if E5001_A==.&E5005_A!=. // US replace E5001_B=E5005_B if E5001_B==.&E5005_B!=. replace E5001_C=E5005_C if E5001_C==.&E5005_C!=. replace E5001_D=E5005_D if E5001_D==.&E5005_D!=. replace E5001_E=E5005_E if E5001_E==.&E5005_E!=. replace E5001_F=E5005_F if E5001_F==.&E5005_F!=. replace E5001_G=E5005_G if E5001_G==.&E5005_G!=. replace E5001_H=E5005_H if E5001_H==.&E5005_H!=. replace E5001_I=E5005_I if E5001_I==.&E5005_I!=. egen partynumber=rownonmiss(E3017_A-E3017_I) egen votenumber=rownonmiss(E5001_A-E5001_I) gen completeA=(E3017_A!=.&E5001_A!=.) gen completeB=(E3017_B!=.&E5001_B!=.) gen completeC=(E3017_C!=.&E5001_C!=.) gen completeD=(E3017_D!=.&E5001_D!=.) gen completeE=(E3017_E!=.&E5001_E!=.) gen completeF=(E3017_F!=.&E5001_F!=.) gen completeG=(E3017_G!=.&E5001_H!=.) gen completeH=(E3017_H!=.&E5001_G!=.) gen completeI=(E3017_I!=.&E5001_I!=.) egen completenumber=rowtotal(completeA-completeI) if votenumber!=0&partynumber!=0 replace completenumber=0 if partynumber==0 replace completenumber=0 if votenumber==0 *** Aff pol egen meanlike=rowmean(E3017_A-E3017_I) gen affpolA=(E3017_A-meanlike)^2 gen affpolB=(E3017_B-meanlike)^2 gen affpolC=(E3017_C-meanlike)^2 gen affpolD=(E3017_D-meanlike)^2 gen affpolE=(E3017_E-meanlike)^2 gen affpolF=(E3017_F-meanlike)^2 gen affpolG=(E3017_G-meanlike)^2 gen affpolH=(E3017_H-meanlike)^2 gen affpolI=(E3017_I-meanlike)^2 egen sumaffpol=rowtotal(affpolA-affpolI) if partynumber!=0 gen affpol=sqrt(sumaffpol/partynumber) ***** WEIGHTED *** Correct vote shares egen sumvotes=rowtotal(E5001_A-E5001_I) if votenumber!=0 replace sumvotes=sumvotes-E5001_A if completeA!=1&E5001_A!=. replace sumvotes=sumvotes-E5001_B if completeB!=1&E5001_B!=. replace sumvotes=sumvotes-E5001_C if completeC!=1&E5001_C!=. replace sumvotes=sumvotes-E5001_D if completeD!=1&E5001_D!=. replace sumvotes=sumvotes-E5001_E if completeE!=1&E5001_E!=. replace sumvotes=sumvotes-E5001_F if completeF!=1&E5001_F!=. replace sumvotes=sumvotes-E5001_G if completeG!=1&E5001_G!=. replace sumvotes=sumvotes-E5001_H if completeH!=1&E5001_H!=. replace sumvotes=sumvotes-E5001_I if completeI!=1&E5001_I!=. gen voteA=E5001_A/sumvotes gen voteB=E5001_B/sumvotes gen voteC=E5001_C/sumvotes gen voteD=E5001_D/sumvotes gen voteE=E5001_E/sumvotes gen voteF=E5001_F/sumvotes gen voteG=E5001_G/sumvotes gen voteH=E5001_H/sumvotes gen voteI=E5001_I/sumvotes *** check egen allvotes=rowtotal(voteA-voteI) gen helpA=voteA*E3017_A gen helpB=voteB*E3017_B gen helpC=voteC*E3017_C gen helpD=voteD*E3017_D gen helpE=voteE*E3017_E gen helpF=voteF*E3017_F gen helpG=voteG*E3017_G gen helpH=voteH*E3017_H gen helpI=voteI*E3017_I egen weightedmeanlike=rowtotal(helpA-helpI) if completenumber!=0 gen affpolAwgt=voteA*((E3017_A-weightedmeanlike)^2) gen affpolBwgt=voteB*((E3017_B-weightedmeanlike)^2) gen affpolCwgt=voteC*((E3017_C-weightedmeanlike)^2) gen affpolDwgt=voteD*((E3017_D-weightedmeanlike)^2) gen affpolEwgt=voteE*((E3017_E-weightedmeanlike)^2) gen affpolFwgt=voteF*((E3017_F-weightedmeanlike)^2) gen affpolGwgt=voteG*((E3017_G-weightedmeanlike)^2) gen affpolHwgt=voteH*((E3017_H-weightedmeanlike)^2) gen affpolIwgt=voteI*((E3017_I-weightedmeanlike)^2) egen affpolwgt=rowtotal(affpolAwgt-affpolIwgt) if completenumber!=0 replace affpolwgt=sqrt(affpolwgt) replace affpolwgt=. if completenumber==1 *** Distance from most liked party egen maxlike_help=rowmax(E3017_A-E3017_I) gen likedistA=(E3017_A-maxlike_help)^2 gen likedistB=(E3017_B-maxlike_help)^2 gen likedistC=(E3017_C-maxlike_help)^2 gen likedistD=(E3017_D-maxlike_help)^2 gen likedistE=(E3017_E-maxlike_help)^2 gen likedistF=(E3017_F-maxlike_help)^2 gen likedistG=(E3017_G-maxlike_help)^2 gen likedistH=(E3017_H-maxlike_help)^2 gen likedistI=(E3017_I-maxlike_help)^2 egen sumlikedist=rowtotal(likedistA-likedistI) if partynumber!=0 gen likedistpol=sqrt(sumlikedist/(partynumber-1)) if maxlike_help!=. ***** WEIGHTED *** Correct vote shares gen maxA=(likedistA==0) gen maxB=(likedistB==0) gen maxC=(likedistC==0) gen maxD=(likedistD==0) gen maxE=(likedistE==0) gen maxF=(likedistF==0) gen maxG=(likedistG==0) gen maxH=(likedistH==0) gen maxI=(likedistI==0) egen countmax=rowtotal(maxA-maxI) replace voteA=0 if maxA==1&countmax==1 replace voteB=0 if maxB==1&countmax==1 replace voteC=0 if maxC==1&countmax==1 replace voteD=0 if maxD==1&countmax==1 replace voteE=0 if maxE==1&countmax==1 replace voteF=0 if maxF==1&countmax==1 replace voteG=0 if maxG==1&countmax==1 replace voteH=0 if maxH==1&countmax==1 replace voteI=0 if maxI==1&countmax==1 forvalues x=2(1)9 { replace voteA=voteA/`x' if maxA==1&countmax==`x' replace voteB=voteB/`x' if maxB==1&countmax==`x' replace voteC=voteC/`x' if maxC==1&countmax==`x' replace voteD=voteD/`x' if maxD==1&countmax==`x' replace voteE=voteE/`x' if maxE==1&countmax==`x' replace voteF=voteF/`x' if maxF==1&countmax==`x' replace voteG=voteG/`x' if maxG==1&countmax==`x' replace voteH=voteH/`x' if maxH==1&countmax==`x' replace voteI=voteI/`x' if maxI==1&countmax==`x' } egen sumvotesnew=rowtotal(voteA-voteI) replace voteA=voteA/sumvotesnew replace voteB=voteB/sumvotesnew replace voteC=voteC/sumvotesnew replace voteD=voteD/sumvotesnew replace voteE=voteE/sumvotesnew replace voteF=voteF/sumvotesnew replace voteG=voteG/sumvotesnew replace voteH=voteH/sumvotesnew replace voteI=voteI/sumvotesnew gen likedistAwgt=voteA*((E3017_A-maxlike_help)^2) gen likedistBwgt=voteB*((E3017_B-maxlike_help)^2) gen likedistCwgt=voteC*((E3017_C-maxlike_help)^2) gen likedistDwgt=voteD*((E3017_D-maxlike_help)^2) gen likedistEwgt=voteE*((E3017_E-maxlike_help)^2) gen likedistFwgt=voteF*((E3017_F-maxlike_help)^2) gen likedistGwgt=voteG*((E3017_G-maxlike_help)^2) gen likedistHwgt=voteH*((E3017_H-maxlike_help)^2) gen likedistIwgt=voteI*((E3017_I-maxlike_help)^2) egen likedistwgt=rowtotal(likedistAwgt-likedistIwgt) if completenumber!=0 replace likedistwgt=sqrt(likedistwgt) replace likedistwgt=. if completenumber==1 drop completeA- sumaffpol sumvotes- affpolIwgt drop maxlike_help- sumlikedist drop maxA- likedistIwgt save "cses5_affpol.dta", replace