11  Commitment Problems

The next reason for war that Blattman (2023) discusses is commitment problems. These arise when one actor doesn’t trust that another can credibly commit to a bargain in the future. One of the most common reasons this occurs is an anticipated change in the future balance of power (BoP) that is so large and seemingly inevitable that the actor whose power is in decline has an incentive to engage in a preventive war.

A change in the BoP alone is not sufficient to make war seem like a good option for the declining power. According to Blattman (2023), a constellation of things must be true:

In this chapter, we’ll home in on how changes to the BoP can lead to war. Admittedly, this means the analysis will be limited. However, among the constellation of factors indicated by Blattman (2023), changes to the BoP are the easiest to quantify and thus subject to statistical analysis. So, let’s go.

11.1 Hypothesis

The logic of commitment problems implies that future changes in power should increase the likelihood of war. To test this claim, we’ll put together an undirected dyad-year dataset that lets us examine dynamics between all unique pairs of states in the international system over time. Using this data, we’ll look specifically at how future shifts in the BoP between a pair of countries is correlated with the likelihood of militarized interstate dispute (MID) onset.

If commitment problems really do increase the likelihood of war, future shifts in power should increase the probability of conflict. Stated formally:

Hypothesis: A future shift in the BoP between two countries should increase the likelihood of conflict onset.

The data that we’ll use to test this hypothesis is discussed in the next section. The main logistical hurdle that we’ll need to tackle is the question of how to measure a future shift in the BoP. Thankfully, past research provides a helpful guide.

11.2 Data

The below R code gets our environment set up and creates the dataset that we’ll use for the analysis. I first have create_dyadyears() create an undirected dyad dataset for the years 1816 to 2010. I then add dyad-level information about MIDs and a measure of MID peace spells. I also add data from the National Military Capabilities dataset which has for each country in a dyad a measure of its relative military capabilities. This is captured using the CINC score. CINC stands for the Composite Index of National Capability, and it can take a value between 0 and 1. You can write ?cow_nmc to see a description of the variables in the data and how the CINC score is constructed. Once the data is populated with variables, I then use filter_prd() to filter the data down to so-called “politically relevant” dyads. These are pairs of countries that have the most reasonable chance of fighting each other. Filtering the data in this way helps to ensure that we don’t have a bunch of country-pairs in our analysis where there is no feasible chance of a conflict breaking out. Basically, only pairs where at least one country is a major power or else the countries are in close proximity are kept in the data.

## setup
library(tidyverse)
library(peacesciencer)
library(coolorrr)
set_theme()
set_palette(
  binary = c("steelblue", "red4")
)

## undirected dyad-year dataset, 1816-2010
create_dyadyears(
  directed = F,
  subset_years = 1816:2010
) |>
  ## populate with data
  add_gml_mids() |>
  add_spells() |>
  add_nmc() |>
  ## only include politically relevant dyads
  filter_prd() -> Data
Joining with `by = join_by(ccode1, ccode2, year)`
Dyadic data are non-directed and initiation variables make no sense in this
context.
Joining with `by = join_by(ccode1, ccode2, year)`
add_gml_mids() IMPORTANT MESSAGE: By default, this function whittles
dispute-year data into dyad-year data by first selecting on unique onsets.
Thereafter, where duplicates remain, it whittles dispute-year data into
dyad-year data in the following order: 1) retaining highest `fatality`, 2)
retaining highest `hostlev`, 3) retaining highest estimated `mindur`, 4)
retaining highest estimated `maxdur`, 5) retaining reciprocated over
non-reciprocated observations, 6) retaining the observation with the lowest
start month, and, where duplicates still remained (and they don't), 7) forcibly
dropping all duplicates for observations that are otherwise very similar. See:
http://svmiller.com/peacesciencer/articles/coerce-dispute-year-dyad-year.html
Warning in xtfrm.data.frame(x): cannot xtfrm data frames
Joining with `by = join_by(orig_order)`
Joining with `by = join_by(ccode1, ccode2, year)`

Now that we have our data constructed, the next step is to figure out how to quantify a future shift in power for each pair of countries in a given year. In a recent study, Shirkey (2020) uses the following strategy for measuring shifts in power (warning, some MATH is coming!).

A shift in power is quantified as \(1 - k\) where for a pair of states A and B at year \(t\) and year \(t + 1\):

\[ k^* = \frac{\text{CINC}_{At} \times \text{CINC}_{Bt+ 1}}{\text{CINC}_{At+1} \times \text{CINC}_{Bt}} \]

such that

\[ k = \begin{cases} k^* \quad \text{if } k^* \leqslant 1 \\ \frac{1}{k^*} \quad \text{if } k^* > 1 \end{cases} \]

By subtracting \(k\) from 1, this approach yields a measure between 0 and 1 where 0 means no future shift in power takes place from year \(t\) to \(t+ 1\), and where increasing values mean that a shift does indeed take place between these years in greater and greater magnitude.

We can create a simple R function that implement the above approach. The below code does this and saves the function as an object called power_shift():

## create function to measure change in the BoP
power_shift <- function(x, y, xlead, ylead) {
  val <- (x * ylead) / (xlead * y)
  val <- ifelse(val > 1, 1 / val, val)
  1 - val
}

With this function, we can now take information about the relative power of different countries and add a column to our data that quantifies the extent to which a shift in power occurs between two years. The below code does this.

## apply the function to the data
Data |>
  group_by(ccode1, ccode2) |>
  mutate(
    across(
      c(cinc1, cinc2),
      ~ lead(.x, order_by = year),
      .names = "{.col}_lead"
    )
  ) |>
  ungroup() |>
  mutate(
    cinc_change = power_shift(
      cinc1, cinc2, cinc1_lead, cinc2_lead
    )
  ) -> Data

The variable cinc_change gives us a measure between 0 and 1 where higher values indicate that a larger shift in power occurs between a pair of countries from one year to the next.

Below I produce a histogram of this new measure so that we can see the range of values the shift in power takes in the data. As you can see, large swings in power are rare. The average shift is on the order of 0.08 with a median change of 0.05.

ggplot(Data) +
  aes(x = cinc_change) +
  geom_density(color = "black", fill = "gray") +
  labs(
    x = NULL,
    y = NULL,
    title = "BoP Change (CINC)"
  )
Warning: Removed 2114 rows containing non-finite values (`stat_density()`).

11.3 Analysis

To test the hypothesis that a future shift in power increases the likelihood of MID onset, we’ll estimate a logit model of the following form:

\[ \text{logit}(\text{MID onset}_{it} = 1) = \beta_0 + \beta_1 (1 - k_{it+ 1}) + \beta_2 s_{it} + \beta_3 s_{it}^2 + \beta_4 s_{it}^3 \]

The quantity \(1 - k_{it+1}\) tells us the shift in power for a pair of countries, denoted by \(i\), that will occur in the next year (year \(t +1\)). The outcome is whether a MID between the pair of countries starts in the year before the shift occurs. This specification lets us see not only whether a change in power leads to conflict but also whether an upcoming change leads to a conflict as the logic of commitment problems predicts. The model is, as usual, rounded off with a cubic peace spells trend.

The below code estimates the model specified above using logitmfx() from the {mfx} package. In estimating the model, robust inference is done with clustering by dyad. The estimates are saved as an object called model_fit.

## open {mfx}
library(mfx)
Warning: package 'mfx' was built under R version 4.2.3
Loading required package: sandwich
Loading required package: lmtest
Loading required package: zoo

Attaching package: 'zoo'
The following objects are masked from 'package:base':

    as.Date, as.Date.numeric
Loading required package: MASS
Warning: package 'MASS' was built under R version 4.2.3

Attaching package: 'MASS'
The following object is masked from 'package:dplyr':

    select
Loading required package: betareg
Warning: package 'betareg' was built under R version 4.2.3
## add dyad column to the data
Data |>
  mutate(
    dyad = paste0(ccode1, ccode2)
  ) -> Data

## fit model with cinc_change
logitmfx(
  gmlmidonset ~ cinc_change +
    gmlmidspell + I(gmlmidspell^2) + I(gmlmidspell^3),
  data = Data,
  robust = T,
  clustervar1 = "dyad"
) -> model_fit

The below creates a coefficient plot that summarizes the estimates from the model. The results are clear. There is a statistically significant and positive relationship between a shift in the BoP between a pair of countries and the likelihood of MID onset. In terms of magnitude, however, the relationship is not substantial. The reported marginal effect tells us how much, on average, the % likelihood of MID onset changes if the measure of power shift were to go from 0 to 1. As we noted in the previous Data section, such a sizable change in power is rare. In practical terms, what this tells us is that a shift in the BoP is a positive predictor of conflict onset, but the practical difference it makes is negligible.

## visualize the output
model_fit |>
  broom::tidy() |>
  mutate(
    lo = estimate - 1.96 * std.error,
    hi = estimate + 1.96 * std.error
  ) |>
  ggplot() +
  aes(
    x = estimate,
    xmin = lo,
    xmax = hi,
    y = reorder(term, desc(term))
  ) +
  geom_pointrange() +  
  geom_vline(
    xintercept = 0,
    linetype = 2
  ) +
  labs(
    x = "Change in % Likelihood of MID Onset",
    y = NULL,
    title = "Logit Model Estimates"
  ) +
  scale_x_continuous(
    labels = scales::percent
  ) +
  scale_y_discrete(
    labels = c(
      expression(s[i][t]^3),
      expression(s[i][t]^2),
      expression(s[i][t]),
      expression(1 - k[i][t+1])
    )
  )

11.4 Conclusion

Commitment problems can increase the likelihood of war. If one side cannot be trusted to agree to the terms of an agreement in the future, a bargain that both sides prefer to war will be hard to sustain. This usually happens as a result of anticipated major shift in the BoP between two sides of a bargain. Today’s bargain, which would be mutually beneficial today for both sides, will not be tomorrow’s, and the side that stands to lose power and suffer a worse bargain in the future has an incentive to intervene militarily to prevent this from happening.

The analysis demonstrated above supports this claim. The larger the shift in the BoP the next year increases the likelihood of MID onset the previous year. While the relationship is small, it is statistically significant.

As we’ve seen so far, changes to the BoP are just one among many factors that can lead to war. In the next chapter, we’ll consider a final reason for war: Misperceptions.