A dataset containing information on coalition governments and their member parties across 30 parliamentary democracies. The data are in long format where the unit of analysis is parties in governments, making it suitable for multiple-membership multilevel models where governments (groups) are composed of multiple parties (members).
Format
A tibble with 2,077 rows and 18 variables. Each row represents a party's participation in a specific coalition government. The sample contains 628 governments formed by 312 unique parties across 29 countries.
Identifiers:
- gid
Government identifier (group-level unit in
mm()specification). Range: [3, 1105]- pid
Party identifier (member-level unit in
mm()specification). Range: [11110, 96955]- cid
Country identifier (nesting-level unit in
hm()specification). Range: [11, 96]- cname
Three-letter country code (ISO 3166-1 alpha-3)
- pname
Full party name
Government-level variables:
- election
Date of the preceding election that led to the government's formation. Range: [1939-04-02, 2014-12-14]
- n
Number of parties in the coalition (group size for weight functions). Range: [2, 9], mean: 3.31
- dur_wkb
Government duration in days, measured from investiture to termination (outcome variable for survival models). Range: [7, 1840], mean: 554.5
- event_wkb
Early termination indicator: 1 = government terminated due to political conflict (voluntary resignation, dissension within government, lack of parliamentary support, or head of state intervention) more than one year before the official end of term; 0 = censored (regular elections, other reasons, or termination within one year of scheduled elections). Range: [0, 1], mean: 0.39
- majority
Majority government indicator: 1 = coalition controls majority of parliamentary seats, 0 = minority government. Range: [0, 1], mean: 0.80
- mwc
Minimal winning coalition indicator: 1 = coalition would lose its majority if any party left, 0 = oversized coalition. Range: [0, 1], mean: 0.35
- rile_SD
Inter-party ideological heterogeneity. Standard deviation of coalition parties' left-right positions (from CMP) relative to the ideological distribution of all parties in parliament. Standardized and inverted so higher values indicate greater ideological cohesion. Range: [-8.40, 2.12], mean: 0.04
Country-level variables:
- investiture
Investiture vote requirement (time-constant country characteristic): 1 = country requires formal parliamentary investiture vote, 0 = no formal requirement. Range: [0, 1], mean: 0.46
Party-level variables:
- pseat
Party's relative seat share within the coalition, computed as
pseat / sum(pseat)within each government. Sums to 1 within each coalition. Range: [0.00, 1.00], mean: 0.33- prime
Prime minister party indicator:
TRUE= party holds prime ministership (n = 628),FALSE= junior coalition partner (n = 1,449)- cohesion
Intra-party ideological cohesion, measured using an adaptation of the Cowles-Jones ratio. Computed as the ratio of continuous ideological shifts to reversals in a party's left-right position over time. Higher values indicate more consistent ideological trajectories (greater cohesion). Standardized. Range: [-1.13, 3.85], mean: 0.00
- rile
Party's left-right ideological position (from CMP). Measured on a continuous scale where higher values indicate more right-wing positions and lower values indicate more left-wing positions. Standardized. Range: [-3.21, 3.68], mean: 0.00
- finance
Party's economic dependence on member contributions (from PPDB). Measured as the share of party funding from member dues relative to total income. Standardized; higher values indicate greater dependence on member financing. Treated as time-constant due to data limitations. Range: [-0.98, 4.40], mean: 0.00
- Nmembers
Number of party members (from PPDB). Standardized; treated as time-constant due to data limitations. Range: [-0.33, 15.02], mean: 0.00
Source
Data compiled from multiple sources:
Coalition governments: Woldendorp, Keman, and Budge (WKB) dataset, updated by Seki and Williams (2014)
Party ideology: Comparative Manifesto Project (CMP; Volkens et al. 2016)
Party organization: Political Party Database (PPDB; Scarrow, Poguntke, and Webb 2017)
Missing party-level data imputed using multiple imputation by chained equations with predictive mean matching.
Details
This dataset demonstrates multiple-membership multilevel modeling where:
Members: Political parties (identified by
pid)Groups: Coalition governments (identified by
gid)Nesting: Governments nested within countries (identified by
cid)
Each coalition government comprises multiple parties, and parties can participate in
multiple governments over time. This creates a multiple-membership structure where
party-level characteristics are aggregated to the government level using weighting
functions specified in mm() blocks.
Sample: After matching party data across sources and excluding single-party and caretaker governments, the sample comprises 628 governments formed by 312 unique parties across 29 countries: Australia, Austria, Belgium, Bulgaria, Croatia, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Ireland, Israel, Italy, Japan, Latvia, Lithuania, Netherlands, Norway, Poland, Portugal, Romania, Slovakia, Spain, Sweden, Switzerland, and United Kingdom.
Measurement notes:
Government duration follows the WKB convention: time from investiture to termination or new elections
Early termination events focus on political gridlock (conflict-related endings) and exclude terminations within one year of scheduled elections
Party-level variables (
cohesion,finance,Nmembers) are standardized (mean = 0) for analysis
References
Seki, K., & Williams, L. K. (2014). Updating the Party Government data set. Electoral Studies, 34, 270-279.
Volkens, A., et al. (2016). The Manifesto Data Collection. Manifesto Project (MRG/CMP/MARPOR). Version 2016a. Berlin: Wissenschaftszentrum Berlin fur Sozialforschung.
Scarrow, S. E., Webb, P. D., & Poguntke, T. (Eds.). (2017). Organizing Political Parties: Representation, Participation, and Power. Oxford University Press.
See also
bml for modeling examples using this dataset
Examples
data(coalgov)
# Explore data structure
str(coalgov)
#> 'data.frame': 1288 obs. of 27 variables:
#> $ pid : num 2 6 2 6 2 6 3 5 6 3 ...
#> ..- attr(*, "label")= chr "Unique party ID"
#> ..- attr(*, "format.stata")= chr "%9.0g"
#> $ pname : chr "Social Democratic Labour Party" "Agrarian Party" "Social Democratic Labour Party" "Agrarian Party" ...
#> ..- attr(*, "label")= chr "Party name"
#> ..- attr(*, "format.stata")= chr "%-50s"
#> $ gid : num 1 1 2 2 3 3 4 4 4 5 ...
#> ..- attr(*, "label")= chr "Unique government ID"
#> ..- attr(*, "format.stata")= chr "%9.0g"
#> $ gname : chr "Erlander III" "Erlander III" "Erlander IV" "Erlander IV" ...
#> ..- attr(*, "label")= chr "Government name"
#> ..- attr(*, "format.stata")= chr "%21s"
#> $ cid : num 1 1 1 1 1 1 1 1 1 1 ...
#> ..- attr(*, "label")= chr "Unique country ID"
#> ..- attr(*, "format.stata")= chr "%9.0g"
#> $ cname : chr "Sweden" "Sweden" "Sweden" "Sweden" ...
#> ..- attr(*, "label")= chr "Country name"
#> ..- attr(*, "format.stata")= chr "%26s"
#> $ gstart : Date, format: "1951-09-30" "1951-09-30" ...
#> $ gend : Date, format: "1952-09-21" "1952-09-21" ...
#> $ n : num 2 2 2 2 2 2 3 3 3 3 ...
#> ..- attr(*, "label")= chr "# government parties"
#> ..- attr(*, "format.stata")= chr "%9.0g"
#> $ prime : num 1 0 1 0 1 0 0 0 1 0 ...
#> ..- attr(*, "label")= chr "Prime minister party"
#> ..- attr(*, "format.stata")= chr "%9.0g"
#> $ pfam : hvn_lbll [1:1288] 3, 8, 3, 8, 3, 8, 4, 6, 8, 4, 6, 8, 4, 8, 4, 5, 6, 8...
#> ..@ label : chr "Party family"
#> ..@ format.stata: chr "%13.0g"
#> ..@ labels : Named num 1 2 3 4 5 6 7 8 9 10
#> .. ..- attr(*, "names")= chr [1:10] "ecologist" "communist" "socdem" "liberal" ...
#> $ rile : num -33.4 -4.9 -28.3 1.2 -44.2 1.8 -2.1 2.2 -18.2 -15.2 ...
#> ..- attr(*, "label")= chr "Right-left position"
#> ..- attr(*, "format.stata")= chr "%5.2f"
#> $ ipd : num 0.25 0 0.25 0 0.25 0 0 0 0 0 ...
#> ..- attr(*, "label")= chr "Intra-party democracy"
#> ..- attr(*, "format.stata")= chr "%10.0g"
#> $ fdep : num 20.2 1.57 20.2 1.57 20.2 ...
#> ..- attr(*, "label")= chr "Financial dependency"
#> ..- attr(*, "format.stata")= chr "%9.0g"
#> $ pseatrel : num 0.577 -0.577 0.618 -0.618 0.696 ...
#> ..- attr(*, "label")= chr "Party's relative seat share within coalition"
#> ..- attr(*, "format.stata")= chr "%9.0g"
#> $ majority : num 0 0 0 0 0 0 1 1 1 1 ...
#> ..- attr(*, "label")= chr "Majority government"
#> ..- attr(*, "format.stata")= chr "%9.0g"
#> $ mwc : num 1 1 1 1 1 1 1 1 1 1 ...
#> ..- attr(*, "label")= chr "Minimal winning coalition"
#> ..- attr(*, "format.stata")= chr "%9.0g"
#> $ hetero : num 0.49 0.49 0.631 0.631 0.793 ...
#> ..- attr(*, "label")= chr "SD(rile) of goverment / SD(rile) of parliament"
#> ..- attr(*, "format.stata")= chr "%9.0g"
#> $ investiture: num 1 1 1 1 1 1 1 1 1 1 ...
#> ..- attr(*, "label")= chr "Investiture vote"
#> ..- attr(*, "format.stata")= chr "%10.0g"
#> $ pmpower : num 3 3 3 3 3 3 3 3 3 3 ...
#> ..- attr(*, "label")= chr "Prime ministerial powers"
#> ..- attr(*, "format.stata")= chr "%10.0g"
#> $ earlyterm : num 0 0 0 0 1 1 1 1 1 1 ...
#> ..- attr(*, "label")= chr "Discretionary early termination"
#> ..- attr(*, "format.stata")= chr "%9.0g"
#> $ govdur : num 357 357 1466 1466 399 ...
#> ..- attr(*, "label")= chr "Government duration"
#> ..- attr(*, "format.stata")= chr "%9.0g"
#> $ govmaxdur : num 357 357 1466 1466 1451 ...
#> ..- attr(*, "label")= chr "Maximum possible government duration"
#> $ sim.w : num 0.326 0.318 0.327 0.319 0.327 ...
#> ..- attr(*, "label")= chr "Simulated weights"
#> ..- attr(*, "format.stata")= chr "%9.0g"
#> $ sim.y : num 24.7 24.7 24.4 24.4 23.5 ...
#> ..- attr(*, "label")= chr "Simulated linear outcome"
#> ..- attr(*, "format.stata")= chr "%9.0g"
#> $ sim.st : num 2.42e-10 2.77e-09 5.43e-10 1.92e-10 1.21e-09 ...
#> ..- attr(*, "label")= chr "Simulated survival time"
#> $ sim.e : num 1 1 1 1 1 1 1 1 1 1 ...
#> ..- attr(*, "label")= chr "Simulated event status"
table(coalgov$cname)
#>
#> Australia Austria Belgium Czech Republic Denmark
#> 46 45 150 31 76
#> France Germany Hungary Ireland Israel
#> 182 57 19 34 252
#> Italy Netherlands Norway Poland Portugal
#> 196 74 40 42 10
#> Spain Sweden United Kingdom
#> 4 28 2
# Number of unique units
length(unique(coalgov$gid)) # Governments
#> [1] 402
length(unique(coalgov$pid)) # Parties
#> [1] 194
length(unique(coalgov$cid)) # Countries
#> [1] 18
if (FALSE) { # \dontrun{
# Model: government duration as function of majority status and party characteristics
m1 <- bml(
Surv(dur_wkb, event_wkb) ~ 1 + majority +
mm(id = id(pid, gid), vars = vars(finance), fn = fn(w ~ 1/n), RE = TRUE) +
hm(id = id(cid), type = "RE"),
family = "Weibull",
data = coalgov
)
summary(m1)
} # }