<theme> List of 9
$ axis.text.x : <ggplot2::element_text>
..@ family : NULL
..@ face : chr "bold"
..@ italic : chr NA
..@ fontweight : num NA
..@ fontwidth : num NA
..@ colour : NULL
..@ size : num 10
..@ hjust : NULL
..@ vjust : NULL
..@ angle : NULL
..@ lineheight : NULL
..@ margin : NULL
..@ debug : NULL
..@ inherit.blank: logi FALSE
$ axis.text.y : <ggplot2::element_text>
..@ family : NULL
..@ face : NULL
..@ italic : chr NA
..@ fontweight : num NA
..@ fontwidth : num NA
..@ colour : NULL
..@ size : num 10
..@ hjust : NULL
..@ vjust : NULL
..@ angle : NULL
..@ lineheight : NULL
..@ margin : NULL
..@ debug : NULL
..@ inherit.blank: logi FALSE
$ legend.position: chr "right"
$ panel.spacing : 'simpleUnit' num 2lines
..- attr(*, "unit")= int 3
$ panel.grid : <ggplot2::element_blank>
$ plot.title : <ggplot2::element_text>
..@ family : NULL
..@ face : chr "bold"
..@ italic : chr NA
..@ fontweight : num NA
..@ fontwidth : num NA
..@ colour : NULL
..@ size : num 16
..@ hjust : num 0.5
..@ vjust : NULL
..@ angle : NULL
..@ lineheight : NULL
..@ margin : NULL
..@ debug : NULL
..@ inherit.blank: logi FALSE
$ plot.subtitle : <ggplot2::element_text>
..@ family : NULL
..@ face : NULL
..@ italic : chr NA
..@ fontweight : num NA
..@ fontwidth : num NA
..@ colour : chr "grey40"
..@ size : num 10
..@ hjust : num 0.5
..@ vjust : NULL
..@ angle : NULL
..@ lineheight : NULL
..@ margin : NULL
..@ debug : NULL
..@ inherit.blank: logi FALSE
$ plot.caption : <ggplot2::element_text>
..@ family : NULL
..@ face : NULL
..@ italic : chr NA
..@ fontweight : num NA
..@ fontwidth : num NA
..@ colour : chr "grey60"
..@ size : num 8
..@ hjust : NULL
..@ vjust : NULL
..@ angle : NULL
..@ lineheight : NULL
..@ margin : NULL
..@ debug : NULL
..@ inherit.blank: logi FALSE
$ strip.text : <ggplot2::element_text>
..@ family : NULL
..@ face : chr "bold"
..@ italic : chr NA
..@ fontweight : num NA
..@ fontwidth : num NA
..@ colour : NULL
..@ size : num 13
..@ hjust : NULL
..@ vjust : NULL
..@ angle : NULL
..@ lineheight : NULL
..@ margin : NULL
..@ debug : NULL
..@ inherit.blank: logi FALSE
@ complete: logi FALSE
@ validate: logi TRUE
Predicting the Outcome of Armed Conflict
Raymond Santiago Flores | STAT 3280 | Spring 2026
Introduction
With global conflict and instability on the rise, information increases as well. The focus of this project is to visualize regional trends and present the analysis in an accessible way to inform a range of individuals. To do this, I used historical records from the Uppsala Conflict Data Program and the Peace Research Institute Oslo (UCDP/PRIO) Armed Conflict Dataset. The UCPD/PRIO database incorporates several datasets that were merged to explore aspects of armed conflict’s progression. This includes datasets covering recorded deaths, peace agreements, and conflict records. Together, these sources can form a web of recorded information. To apply this information, a random forest machine learning model was employed to predict and visualize the results of armed conflict.
Hotspots, 1946-2024
Armed conflict is not random - it clusters geographically, intensifies in waves, and shifts over time. The map below shows all active conflicts in the UCDP dataset from 1946 to 2024. Each circle represents a country with at least one active conflict in that year; size reflects the number of concurrent conflicts, and color describes the conflict severity - dark red for war-level violence, blue for minor conflict.
Use the year control to animate through time and to observe trends. A prime example is the end of the Cold War in 1991, which restructured the global conflict landscape, leading to a surge in intrastate wars concentrated in Africa, the Middle East, and Asia. This geographic and temporal context sets the stage for the core question this project investigates: given the factors of a conflict, can we predict how it ends?
Geography tells us where conflict happens — but external involvement shapes how it ends. Conflicts that receive foreign support terminate differently than those that do not, with externally backed wars more likely to end in ceasefire or ambiguous outcomes than in decisive resolution.
These structural drivers — ideology, geography, and religion — shape not just why conflicts begin, but how they escalate. The following section examines the ideological and religious roots of rebel movements across four decades.
Conflict Issues Heatmap
Beyond ideology, conflict intensity has shifted dramatically over time. The end of the Cold War in 1991 marked a turning point — extrasystemic and interstate conflicts declined while intrastate wars surged, often reaching war-level intensity.
Escalation Patterns
While most conflicts fade through low activity or unclear outcomes, external involvement dramatically extends their duration and deadliness. The interactive scatter below allows you to explore individual conflicts by duration, deaths, and support status.