Abou-Chadi/Orlowski (2016): Moderate as Necessary. The Role of Electoral Competitiveness and Party Size in Explaining Parties' Policy Shifts. The Journal of Politics.
This paper investigates how the degree of electoral competition affects parties' policy positions. It follows a growing body of research on party positioning in multi-party competition that regards elections as signals for parties that have to choose their positions and issue strategies. In this article we argue that previous elections provide information about the competitiveness of the upcoming election. The expected degree of electoral competition affects parties' future policy positions since with increasing competitiveness of an election, parties have higher incentives to move towards a vote-maximizing position. However, what constitutes a vote-maximizing strategy varies between parties. While large mainstream parties have an incentive to moderate their positions, small and niche parties choose more extreme positions to distinguish themselves from their mainstream competitors. Applying a novel measure of electoral competitiveness, we find that the degree of electoral competition, indeed, determines parties' policy shifts, but that this effect is moderated by party size.
You can replicate all findings reported in the paper running an_compsze.do with the working directory set to this replication folder. The do-file draws on the data set comp_ppos.csv which contains party-level observations on all covariates referred to in the paper. See below for a description of all variables and their sources. The remaining scripts are for computing party-level competitiveness from raw input data. To generate comp_ppos.csv from input, proceed by running the following scripts in order:
- cr_competitiveness.R
- cr_lrpos.R
- cr_comp_ppos.R
The fun_*.R scripts contain helper functions that are called from within the cr_*.R scripts.
The gr_*.R scripts draw on the outputs of the analyses stored in
./report/. They create the figures reported in the paper which visualize the
results obtained by Stata using ggplot2
. You need to run an_compsze.do
before you can execute the gr_*.R scripts. All graphics are writte to
separate pdf files in ./graphs/.
If you have any questions, feel free to contact me.
We used Stata 13 to estimate all models reported in the paper. Two external ados
are called in the corresponding do-file: cgmreg
and estout
. cgmreg
is
available at [http://gelbach.law.upenn.edu/~gelbach/ado/cgmreg.ado](http://gelb
ach.law.upenn.edu/~gelbac h/ado/cgmreg.ado). You can install estout
from
within Stata via net install st0085_2.pkg, from("http://www.stata- journal.com/software/sj14-2/")
- R version 3.2.3 (2015-12-10), x86_64-apple-darwin14.5.0
- Base packages: base, datasets, graphics, grDevices, methods, stats, utils
- Other packages: coda 0.17-1, combinat 0.0-8, ggplot2 1.0.1, MASS 7.3-45, MCMCpack 1.3-3, reshape2 1.4.1
- Loaded via a namespace (and not attached): colorspace 1.2-6, digest 0.6.8, grid 3.2.3, gtable 0.1.2, labeling 0.3, lattice 0.20-33, magrittr 1.5, munsell 0.4.2, plyr 1.8.3, proto 0.3-10, Rcpp 0.12.2, scales 0.3.0, stringi 1.0-1, stringr 1.0.0, tools 3.2.3
The data files in ./data/ are:
- addvars.csv - Control variables added from different sources (see below)
- ./clogit/ctr_yyyy_predict.csv - Several files with predictions from conditional logit estimates. ctr in the file name is the ISO 3166-1 alpha-3 country code and yyyy the four digit election year. See below for content description.
- ./clogit/ctr_yyyy_vcov.csv - Several files with coeficient and variance-covariance estimates from conditional logit models on individual level survey data. The first row contains the coefficient estimates, all other rows are the variance-covariance matrix. ctr in the file name is the ISO 3166-1 alpha-3 country code and yyyy the four digit election year.
- comp_ppos.csv - Party-level data on party-positions, competitiveness and selected covariates
- insulation.csv - Party-level insulation data from Orlowski (2015)
The source files in ./jobs/ are:
- an_compsze.do - Stata do-file containing all analyses reported in the paper
- cr_competitiveness.R - R script to compute party-level competitiveness based on Orlowski's (2015) insulation values and results from conditional logit estimates on individual surevey data
- cr_comp_ppos.R - R script to generate party-level data set combining competitiveness, party positions, and control variables
- cr_lrpos.R - R script to compute logit scaled left-right positions from MARPOR data on party manifestos. You need to download a copy of the 2015a data set to run this script.
- fcts_logrile.R - R script with helper functions to compute log scale left-right positions with standard errors according to Lowe et al. (2011). The code is largely based on the replication material provided by the original authors.
- fun_SimVoteShares.R - R script with function to compute a set of plausible vote shares for each party based on predicted probabilities from conditional logit fits on individual level survey data
- fun_KnowledgeDecline.R - R script with function to compute discount factor for information value of survey data on voting intentions depending on time passed since survey
- fun_PredictClogit.R - R script with function to compute the predicted probability of voting for a party for each party-identifier - party pair based on conditional logit coeficients
- fun_SimVoting.R - R script with function that simulates an election based on predicted probabilities for different party-identifiers to vote for a particular party
- fun_DrawPropVec.R - R script with function to generate random vector with proportions that sum up to unity
- fun_plotME2.R - R script with function to create marginal effects plot from Stata estimation results
- gr_theorycomp.R - R script to produce Figure 1: Components of electoral competition at the party level
- gr_meps.R - R script to produce marginal effects plots depicted in Figures 2, 3a, 3b, 4a, 4b, A2, and A3 based on Stata estimation results
- gr_clogit_time.R - R script to produce Figure A1: Point-estimates and model fit for conditional logit models regressing vote choice on party ID
Variable | Description | External source |
---|---|---|
pty_id | Party ID | |
ctr_ccode | Country code (ISO 3166-1 alpha-3) | |
lhelc_id | Lower house election ID | |
lhelc_date | Lower house election date | |
pty_cab | Dummy = 1 for parties in government prior to election | |
tier1_avemag | Average district magnitude at first tier of electoral system | Bormann and Golder (2013) |
leadact | Measure for leadership-dominance based on expert surveys | Schumacher et al. (2013) |
Variable | Description |
---|---|
choice | Abbrevation of potential party choice |
party_id | Abbrevation of party respondent identifys with |
Phat | Predicted probability of respondent identifying with party_id to vote for choice |
nrpid_prop | Share of respondents identifying with party_id |
nobs | Number of respondents in survey with valid information on party id and vote choice |
pseudo | Pseudo R2 of conditional logit estimate |
share | Predicted vote share for choice based on conditional logit estimates only |
First row contains point estimates for conditional logit estimates of choice- specific constants and party identificatin. All other rows contain the corresponding variance-covariance matrix.
Variable | Description | External source |
---|---|---|
lhelc_id | ID of the lower house election from which competitivenes is computed | |
pty_id | Party ID | |
party | MARPOR party ID | MARPOR |
date | Election year and month as YYYYMM | |
country | MARPOR country ID | MARPOR |
countryname | String with country name | MARPOR |
edate | Date of election for which competitivenss is computed | |
partyname | String with party name | MARPOR |
parfam | Party family | MARPOR |
pervote | Vote share in the election for which competitivenss is computed in percentage points | MARPOR |
absseat | The number of lower house seats won in the election for which competitivenss is computed | MARPOR |
totseats | The total number of lower house seats for the election for which competitivenss is computed | MARPOR |
rile | Left-right position based on raw rile scores. Data basis is the manifesto of the election for which competitivenss is computed | MARPOR |
logrile | Left-right position based on logit rile scores Lowe et al. (2011). Data basis is the manifesto of the election for which competitivenss is computed | Own calculations based on MARPOR |
logrile.SE | Std. Err. of logrile scores Lowe et al. (2011). Data basis is the manifesto of the election for which competitivenss is computed | Own calculations based on MARPOR |
pty_abr | Party abbrevation | |
ctr_ccode | Country code (ISO 3166-1 alpha-3) | |
lhelc_date | Date of election from which competitivenss is computed | |
lh_id | ID of the lower house from which competitivenes is computed | |
lhelc_prv_id | ID of the lower house election prior to that from which competitivenes is computed | |
pty_lwr_v2 | Lower insulation boundary | |
pty_upr_v2 | Upper insulation boundary | |
pty_lhelc_identsh | Share of party identifiers in corresponding post election survey | |
pty_csim_lhvotesh | Mean simulated vote share based on conditional logit fits | |
pty_csim_lhvotesh_sd | Std. Dev. of simulated vote shares based on conditional logit fits | |
pty_clg_lhvotesh | Vote shares estimate based on conditional logit fit | |
clg_pseudor2 | Pseudo R2 of conditional logit fit | |
clg_bpid | Point estimate of party ID coefficient in conditional logit fit | |
clg_bpid_se | Std. Err. of party ID coefficient in conditional logit fit | |
csim_disc | Discount factor used in vote share computation | |
pty_comp | Party-level competitiveness value | |
pty_cab | Dummy = 1 if party was in government prior to election for which competitiveness is computed | |
tier1_avemag | Average district magnitude at first tier of electoral system | Bormann and Golder (2013) |
leadact | Measure for leadership-dominance based on expert surveys | Schumacher et al. (2013) |
Variable | Description |
---|---|
pty_id | Party ID |
ctr_ccode | Country code (ISO 3166-1 alpha-3) |
lhelc_date | Lower house election date |
lh_id | Lower house composition ID |
lhelc_id | Lower house election ID |
lhelc_prv_id | Previous lower house election ID |
pty_lwr_v2 | Lower insulation boundary |
pty_upr_v2 | Upper insulation boundary |
pty_abr | Party abbrevation |
cmp_id | MARPOR party ID |
Orlowski, M. (2015): Linking Votes to Power. Measuring Electoral Competitiveness at the Party Level. Paper presented at the General Conference of the European Politial Science Association, 25-27 June 2015, Vienna.