Standard Deviation

Description

Of course, polarization, i.e. the distribution of party or voter positions, can also be measured by calculating the standard deviation. It is used by a number of scholars, primarily to measure ideological polarization among the mass public, based on CSES, Eurobarometer and EES data.

Operationalization

The standard deviation of party or voter positions is calculated as follows: $$s_i = \sqrt{\frac{\sum_{i=1}^n(p_i-\bar{p})^2}{n}}$$ where the subscript $i$ stands for an individual respondent or party, $p_i$ is the position of a respondent or party $i$, $\bar{p}$ is the average position of all respondents or parties, and $n$ is the number of parties or respondents.

polaR

We have written custom R functions for coding this measure and assembled it, along with other functions, into an R package that is currently under development. The package can be installed from GitLab. Comments, suggestions, and feature requests are welcome.

A standard deviation can be computed in many different ways, so there are three different functions in polaR to do so.

# Import Data
cses_imd <- polaR_import(source = "cses_imd",
						 path = "path/to/dataset.dta")

For example, an SD can refer to the individual opinion scores of respondents. For this use case, the function sd_mass can be used. issue specifies which issue dimension should be used, where applicable.

sd_data <- sd_mass(cses5,
				   issue = "leftright")

sd <- sd_mass(ess,
			 issue = "leftright")

Then, there are perceptions of party positions, for which sd_partyperceptions computes a standard deviation. This can be done with an individual level SD-variable, or on an aggregated country/year level.

sd_parties_lr_cses5 <- sd_partyperception(cses5,
										  issue = "leftright",
										  aggregate = TRUE)

Lastly, there are expert scores of party positions. The function to compute their standard deviation needs to know the structure of the dataset, as expert scores can be found in respondent-based data such as CSES, or party based data like MARPOR. The units option can be used to specify between party and respondent.

sd_expert_lr_cses5 <- sd_experts(cses5,
								 issue =  "leftright",
								 units = "respondent")

sd_expert_galtan_ches <- sd_experts(ches,
									issue = "galtan",
									units = "party")

sd_expert_lr_marpor <- sd_experts(marpor,
								  issue = "leftright",
								  units = "party")

Visualization

Use cases

Publications that use this measure:

TitleAuthors
Do Voters Polarize When Radical Parties Enter Parliament?Bischof and Wagner (2019)
The mobilising effect of political choiceHobolt and Hoerner (2019)
On the relationship between party polarisation and citizen polarisationMoral and Best (2023)
From political conflict to partisan evaluationsVegetti (2014)
Polarization, Number of Parties, and Voter TurnoutWilford (2017)