Incidentes interestatales

El objetivo de esta actividad es representar los datos de un conflicto en un mapa. Los datos que utilizaremos se encuentran en la página web de Correlates of War (COW), uno de los centros de investigación internacionales especializado en la investigación de conflictos armados. Para realizar la actividad, necesitamos los siguientes elementos:

Estos son los paquetes de R que necesitamos cargar para poder desarrollar correctamente la actividad:

#recordad que los paquetes tienen que estar previamente instalados
library(dplyr)
library(readr)
library(ggplot2)
library(ggmap)

La base de datos

La base de datos Militarized Interstate Disputes (v5.0) (Palmer et al. 2020) contiene información detallada sobre conflictos en que uno o más estados amenazan, muestran o utilizan la fuerza contra uno o más estados, entre 1816 y 2014. Para acceder a la base de datos, tendremos que descargar el archivo MID 5 Data and Supporting Materials.zip y descomprimir el zip. Si aplicáis el código siguiente os situará todos los archivos en el directorio de trabajo.

download.file("https://correlatesofwar.org/wp-content/uploads/MID-5-Data-and-Supporting-Materials.zip", "MID5.zip")
unzip("MID5.zip")

DESCARGA: Si no os funciona el código de descarga, descargad el archivo zip manualmente, localizad el archivo en vuestro directorio de trabajo y cambiad el nombre por MID5.zip y descomprimidlo. Si os pone los archivos descomprimidos en una subcarpeta, tomad todos los archivos de la subcarpeta y colocádlos al directorio de trabajo (para que no os quede ninguna subcarpeta).

De todos los archivos que hemos descomprimido, de momento nos interesamos en los dos archivos .csv donde tenemos los datos por disputa militarizada (MIDA 5.0.csv) y por incidente (MIDI 5.0.csv).

  1. Datos por disputa militarizada: El archivo MIDA 5.0.csv contiene información de disputas militarizadas producidas entre 1816 y 2010. La unidad de análisis es el inicio de la disputa militarizada
  2. Datos por incidente de la disputa militarizada: El archivo MIDI 5.0.csv contiene información de disputas militarizadas producidas entre 1930 y 2010. La unidad de análisis es el incidente de la disputa militarizada.

Datos por incidente

Los datos por incidente se encuentran en el archivo MIDI 5.0.csv. A continuación, convertimos el archivo en el objeto de R midi. En la Tabla 1 vemos el resultado de teclear head(midi, 10) en la consola.

midi <- read_csv("MIDI 5.0.csv") #tenéis que tener cargado el paquete readr
head(midi, 10)
Table 1: Base de datos MIDI v5.0
dispnumincidnumstdaystmonstyearenddayendmonendyeardurationtbifatalityfatalpreactionhostlevnumaversion
3551355101018101993181019931-9001215
355135510022111199224919961404-90013495
355135510041411993-911993-916007315
355135510011671992167199211290073135
3551355100915199311119931851700013415
35513551003-911993-911993-9-9007335
3551355100812419931241993119007335
355135510063219933219931250015415
3551355100530119933011993140015415
3551355100728219932821993143001215

Ejercicio 1: Explora el marco de datos con head() y glimpse(). Si tecleas head(midi) te mostará las primeras seis observaciones, en cambio, glimpse(midi) te permitirá ver el marco de datos de forma vertical. Responde las siguientes preguntas, ayudándote también del libro de códigos que encontrarás dentro del archivo MID 5.0 Codebook.pdf (páginas 8-9) que has descomprimido. Consulta como utilizar un libro de códigos en este enlace1

  • ¿Cuántas observaciones y cuántas variables tiene el marco de datos?¿Cuál es su unidad de análisis?
  • ¿Cuáles son las variables que nos permiten saber el día, mes y año que finalizó el incidente?
  • Fíjate que en muchas celdas aparece el valor -9 ¿Sabrías explicar qué significa?
  • ¿Cuántas categorías diferentes puede tener una disputa según la variable fatality? ¿Tenemos forma de obtener los datos de manera más concreta?
  • Busca en el libro de códigos el significado de las variables tbi, action, hostlev y numa.
  • ¿Qué significa la variable dispnum? Busca en el libro disponible en el aula International Conflicts, 1816-2010: Militarized Interstate Dispute Narratives (deberás buscar el código de la disputa) la disputa que tiene como código 3551. Descríbela brevemente.

Las coordenadas

Las coordenadas nos indican el lugar exacto de un mapa donde asociamos determinada información. Como sabéis, en un mapa del mundo necesitamos saber la longitud (eje horizontal) y la latitud (eje vertical). Las coordenadas de cada incidente las encontramos en otra base de datos de COW, la Militarized Interstate Dispute Locations (v2.1) (Bezerra and Braithwaite 2019). Para descargar los datos, tendremos que aplicar el código que se nos muestra a continuación, en el cual descargamos el archivo MIDLOC_2.1.zip al directorio de trabajo y lo descomprimimos.

download.file("https://correlatesofwar.org/wp-content/uploads/MIDLOC_2.1.zip", "MIDLOC_2.1.zip")
unzip("MIDLOC_2.1.zip")

DESCARGA: Si no os funciona el código de descarga, descargamos el archivo zip manualmente, ubicadlo a vuestro directorio de trabajo y cambiadle el nombre por MID5.zip y descomprimidlo. Si os pone los archivos descomprimidos en una subcarpeta, coged todos los archivos de la subcarpeta y ubicadlos al directorio de trabajo (de manera que no os quede a la subcarpeta).

Cuando abrimos el archivo zip se nos ubica a nuestro directorio de trabajo dos archivos .csv con datos de geolocalización: MIDLOCA_2.1.csv y MIDLOCI_2.1.csv.

  1. MIDLOC-A v2.1: Contiene información de disputas militarizadas producidas entre 1816 y 2010. La unidad de análisis es el inicio de la disputa militarizada. Por lo tanto, la geolocalización muestra el lugar del inicio de la disputa, aunque luego se hayan podido producir incidentes en otros lugares.
  2. MIDLOC-I v2.1: Contiene información de disputas militarizadas producidas entre 1993 y 2010. La unidad de análisis es el incidente de la disputa militarizada. Por lo tanto, la geolocalización muestra el lugar de cada incidente. Una disputa militarizada puede tener varios incidentes, entre ellos el incidente que inició la disputa.

Si nos interesan los datos por incidente de la disputa militarizada, utilizaremos el archivo MIDLOCI_2.1.csv. Acontinuación, convertimos el archivo en el objeto de R midloci. En la Tabla 2 vemos el resultado de teclear head(midloci) en la consola.

midloci <- read_csv("MIDLOCI_2.1.csv") #tenéis que tener cargado el paquete readr
head(midloci)
Table 2: Base de datos MIDLOC-I v2.1
yeardispnumincidnummidloc2_locationmidloc2_measuringpointmidloc2_xlongitudemidloc2_ylatitudemidloc2_precisiononsetmidloc2_howobtainedmidloc2_precision_commentmidloc2_general_commentpriogrid_cellmidloc11_locationmidloc11_midlocmeasuringpointmidloc11_latitudemidloc11_longitudemidloc11_precision
199540054005001Belonia, IndiaBelonia, India91.467623.2505011latlong.netPrecise location textNA163263Belonia subdivision of South Tripura; banks of Muhari River bordering India andBelonia23.2591.5003
199340234023001NAHsinshe120.983024.8500011MIDLOC1.1Precise location textNA165482NAhsinshe24.85120.9831
200041574156001Corentyne River MouthVassen Island-57.14925.7930621IslandNANA137766In the disputed waters at the mouth of the Corentyne River between SUR and GUY.corentyne river5.95-57.1004
200041574156002Corentyne RiverMidpoint of river-57.90963.8617250ArcGIS and Natural Earth DataPoint along a lineNA134885Villages on the GUY side of the Corentyne River.corentyne river5.95-57.1004
200041574156003Corentyne RiverMidpoint of river-57.90963.8617250ArcGIS and Natural Earth DataPoint along a lineNA134885Along the Corentyne River which forms the border between GUY and SUR.corentyne river5.95-57.1004
200041574156004Guyana-Suriname BorderMidpoint of shared (national) border-57.85523.7580350ArcGIS and cShapesPoint along a lineNA134885Along the border between GUY and SUR.corentyne river5.95-57.1004

Ejercicio 2: Examina el marco de datos midloci mediante las funciones head() y glimpse(). Si tecleas head(midloci) verás las primeras seis observaciones y glimpse(midloci) te permetirá observar el marco de datos en formato vertical. Responde a las siguientes preguntas, ayudándote también del libro de códigos que encontrarás dentro del archivo MIDLOCI_2.1 Codebook.pdf que has descomprimido:

  • ¿Cuál es la unidad de análisis del marco de datos?
  • ¿En qué columnas se encuentran las coordenadas?
  • ¿Qué significa la variable onset?
  • ¿Cuál es el significado de la variable midloc2_precision?¿Y la midloc2_precision_comment?

Descripción de los conflictos

Es muy importante, al comenzar este apartado, asegurarse de haber comprendido el significado de la columna dispnum, que hemos visto en el apartado anterior. La descripción de todas las disputas militarizadas de la base de datos Militarized Interstate Disputes se encuentran en el libro International Conflicts, 1816-2010: Militarized Interstate Dispute Narratives, disponible en el aula y en la biblioteca de la UOC. Este libro está organizado en dos partes:

  • Introducción: Contiene una definición de disputa militarizada y información de como el libro está organizado.
  • Disputas militarizadas: A partir de la página 4 se describen varios detalles de 2.212 disputas militarizadas entre 1816 y 2010. Fijáos que cada disputa tiene un código asociado. Por ejemplo, la primera disputa que aparece en la página 4 es la número 2.968, que corresponderá con dispnum de la MID dataset.

También, podéis consultar la descripción de las disputas militarizadas más recientes de 1993 en tres archivos que se encuentran dentro del archivo MID5.zip: MID_Narratives 1993-2001.pdf, MID_Narratives 2002-2010.pdf y MID Narratives 2011-2014.pdf.

Ejercicio 3: Haz una ojeada al libro International Conflicts, 1816-2010: Militarized Interstate Dispute Narratives y responde a las siguientes preguntas:

  • ¿Cuál es la definición de disputa?
  • ¿Qué es una narrativa? ¿Qué es una díada?
  • En el segundo apartado del libro ¿Cómo están ordenados los conflictos?

Herramientas de mapeo

Una vez tenemos la información necesaria y las coordenadas de esta información, solo nos queda ubicar todos los elementos en un mapa. En esta parte utilizaremos distintas herrramientas de mapeo del programario R:

  • El mapa base lo crearemos con el paquete ggmap.
  • La información la trataremos con dplyr y la colocaremos al mapa con ggplot2

Mapa base

De momento crearemos el mapamundi world_map que nos permita visualizar la distribución de todas las observaciones de la base de datos MIDLOC-A, según sus coordenadas. Dentro del paquete ggmap2, utilizaremos la función get_stamenmap() para acceder a los mapas. Dentro de las funciones indicaremos:

  • Los límites del mapa.
  • La resolución con zoom.
  • El tipo de mapa que queremos visualizar con maptype. Hemos elegido terrain-background como opción por defecto. Consultad otros tipos de mapa con: ?get_stamenmap.
#Con la función get_stamenmap creamos un mapamundi
world_map <- get_stamenmap(bbox = c(top = 75,
                                    left = -170, right = 170,
                                    bottom = -58),
                                    zoom = 2, #indicamos la resolución del mapa
                                    maptype = "terrain-background")

Si queréis visualizar el objeto que acabáis de crear solo debéis utilizar la función ggmap() como se indica a continuación.

ggmap(world_map)

Información del mapa

Ahora ya tenemos el mapa, las coordenadas y la información. Solo nos queda juntar todos estos elementos con el mapa. Haremos una primera prueba con las herramientas del paquete ggplot2, que nos permiten ubicar las observaciones del objeto midloci en el mapa que acabamos de crear. Para esto, indicaremos las coordenadas horizontales (midloc2_xlongitude) y verticales (midloc2_ylatitude), así como algunos atributos, como el color y la trasparencia de los puntos. El resultado es el mapa que observamos en la Figura 1

#Introducimos los datos de midloci al mapamundi
world_map %>% #mapa base
  ggmap(base_layer = ggplot(aes(x = midloc2_xlongitude, #¿Qué variable ponemos en el eje de las x?
                                y = midloc2_ylatitude), #¿Qué variable ponemos en el eje de las y?
                          data = midloci)) + #¿Dónde se encuentran las coordenadas?
  geom_point(alpha = 0.3, col = "blue") #definimos transparencia al 40% y color azul
Disputas militarizadas interestatales en el mundo (1816-2020)

Figure 1: Disputas militarizadas interestatales en el mundo (1816-2020)

Ejercicio 4: Observad el mapa de la Figura 1 y responde a las siguientes preguntas:

  • ¿Cuáles son las coordenadas que marcan los límites izquierdo, derecho, superior e inferior del mapa?
  • ¿Dónde se encuentran más concentrados los conflictos interestatales?
  • ¿En qué zonas del mundo ha habido menos conflictos interestatales?
  • ¿Qué país se encuentra situado en la longitud -100 y latitud 25?
  • ¿Qué isla se encuentra situada aproximadamente en la longitud 50 y latitud -25?
  • ¿A qué longitud y latitud se encuentra aproximadamente España?

Visualizar incidentes de disputas militarizadas

A continuación, vamos a mostrar un ejemplo de como visualizar uno o varios conflictos según si utilizamos como unidad de análisis la disputa militarizada o el incidente de la disputa militarizada.

Si tomamos como unidad de análisis el incidente de la disputa militarizada utilizaremos el marco de datos midijoin, que creamos a partir de los objetos midi y midloci con el código que se muestra a continuación. Este código une los dos objetos y también recodifica algunas variables que hemos tratado anteriormente, como fatality o hostlev. Las primeras observaciones de midijoin se muestran en la Tabla 3. Fijaos que ahora tenemos las coordenadas e información del incidente en un mismo marco de datos.

midijoin <- midi %>%
  inner_join(midloci, by = c("incidnum", "dispnum")) %>%
  select(dispnum, incidnum, location = midloc2_location, measuringpoint = midloc2_measuringpoint,
         lon = midloc2_xlongitude, lat = midloc2_ylatitude,
         styear, endyear, duration, tbi, fatalpre, fatality, hostlev, numa) %>%
  mutate(fatality = case_when(fatality == 0 ~ "None",
                              fatality == 1 ~ "1-25",
                              fatality == 2 ~ "26-100",
                              fatality == 3 ~ "101-250",
                              fatality == 4 ~ "251-500",
                              fatality == 5 ~ "501-999",
                              fatality == 6 ~ "More than 999",
                              TRUE ~ "Missing"),
         hostlev = case_when(hostlev == 1 ~ "No militarized action",
                             hostlev == 2 ~ "Threat to use force",
                             hostlev == 3 ~ "Display of force",
                             hostlev == 4 ~ "Use of force",
                             hostlev == 4 ~ "War"))
Table 3: Unión de MIDLOC-I i MIDI
dispnumincidnumlocationmeasuringpointlonlatstyearendyeardurationtbifatalprefatalityhostlevnuma
35513551010UnspecifiedNANANA199319931-90NoneThreat to use force1
35513551002UnspecifiedNANANA199219961404-90NoneUse of force9
35513551004Adriatic SeaAdriatic Sea17.290341.855119931993-9160NoneDisplay of force1
35513551001Yugoslavia Territorial WatersCentroid of territorial waters18.913642.04861992199211290NoneDisplay of force13
35513551009Yugoslavia Territorial WatersCentroid of territorial waters18.913642.0486199319931851700NoneUse of force1
35513551003Yugoslavia Territorial WatersCentroid of territorial waters18.913642.048619931993-9-90NoneDisplay of force3
35513551008BosniaCentroid of ADM017.786544.1681199319931190NoneDisplay of force3
35513551006Danube RiverMidpoint of river20.325945.0941199319931250NoneUse of force1

A continuación, creamos el mapa midi_map y ubicamos las disputas del conflicto que tiene como número de disputa (dispnum) 3551. Hemos ubicado algunas variables en el mapa y hemos puesto la transparencia de los puntos (alpha) a 0.5

#Con la función get_stamenmap creamos un mapamundi
midi_map <- get_stamenmap(bbox = c(top = 75,
                                    left = -170, right = 170,
                                    bottom = -58),
                                    zoom = 2, #indicamos la resolución del mapa
                                    maptype = "toner-lite")

#Introducimos los datos de midloci al mapamundi
midi_map %>% 
  ggmap(base_layer = ggplot(aes(x = lon, y = lat,
                                col = hostlev, size = tbi), 
  data = filter(midijoin, dispnum == 3551))) + 
  geom_point(alpha = 0.4) 
Conflicto de Yugoslavia 1992-1993

Figure 2: Conflicto de Yugoslavia 1992-1993

ZOOM: Fíjate que el mapa de la Figura 2 tiene un zoom diferente al mapa que puedes generar con el código

Crea tu propio mapa: Modifica el código anterior para crear tu propio mapa:

  • Elige una disputa militarizada de la sección Hemisferio Occidental del libro International Conflicts, 1816-2010: Militarized Interstate Dispute Narratives (Gibler 2018) entre las disponibles en la base de datos midijoin. Encontrarás las disputas disponibles con el sigüiente código:
unique(midijoin$dispnum)
  • Elige la variable que representará el color y la variable que representará el tamaño de los puntos. Elige también la transparencia de los puntos.
  • Ajusta las coordenadas del objeto midi_map para focalizar la atención en la zona del mundo donde tengas el conflicto que has seleccionado. Cambia, si lo prefieres, el tipo de mapa (por ejemplo, “watercolor” o “toner-hybrid”. Podéis consultarlos todos tecleando ?get_stamenmap).
  • Haz una descripción del mapa. Ayúdate de la narrativa que encontrarás en el libro International Conflicts, 1816-2010: Militarized Interstate Dispute Narratives (Gibler 2018), de otra información complementaria que consideres oportuna y de la información que tienes en el libro de códigos y en la base de datos.

Ayúdate de los códigos siguientes:

  • ¿Qué incidente tiene una disputa concreta?
midijoin %>%
  filter(dispnum == 3551) %>% View
  • ¿Cuántos incidentes tiene una disputa concreta?
midijoin %>%
  filter(dispnum == 3551) %>%
  count()

Referencias

Bezerra, P., and A. Braithwaite. 2019. Codebook for the Militarized Interstate Dispute Location (MIDLOC-A/I) Dataset, v2.1.
Braithwaite, A. 2010. MIDLOC: Introducing the Militarized Interstate Dispute (MID) Location Dataset.” Journal of Peace Research 47 (1): 91–98.
Gibler, Douglas M. 2018. International Conflicts, 1816-2010: Militarized Interstate Dispute Narratives. Volume I. Lanham, MD: Rowman & Littlefield Publishers.
Kahle, David, and Hadley Wickham. 2013. ggmap: Spatial Visualization with ggplot2.” The R Journal 5 (1): 144–61.
Palmer, Glenn, Roseanne W. McManus, Vito D’Orazio, Michael R. Kenwick, Mikaela Karstens, Chase Bloch, Nick Dietrich, Kayla Kahn, Kellan Ritter, and Michael J. Soules. 2020. The MID5 Dataset, 2011-2014: Procedures, Coding Rules, and Description. Working Paper. https://correlatesofwar.org/data-sets/MIDs/mid-5-data-and-supporting-materials.zip/view.

  1. Encontrarás más información metodológica sobre la base de datos en el documento Incident Coding Manual.pdf, que se encuentra dentro del archivo MID5.zip↩︎

  2. Para más información de como utilizar ggmaps podéis consultar ggmap: Spatial Visualization with ggplot2 (Kahle and Wickham 2013).↩︎

Previous