Disputas 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:
- Base de datos: Necesitamos la información de conflictos armados sistematizada en una base de datos. Esta base de datos es la Militarized Interstate Disputes (v5.0) (Palmer et al. 2020), que proporciona información sobre conflictos en los cuales uno o más estados amenazan, muestran o utilizan la fuerza contra uno o más estados, entre 1816 y 2014.
- Coordenadas: La localización de cada disputa militarizada se encuentra en la base de datos de Militarized Interstate Dispute Locations (v2.1) (Braithwaite 2010; Bezerra and Braithwaite 2019).
- Descripción de los conflictos: También necesitamos información general, más cualitativa, sobre los conflictos que ha habido en el mundo. Encontraremos esta información cualitativa sobre los conflictos de la base de datos en los archivos adjuntos de la base de datos y en el libro International Conflicts, 1816-2010: Militarized Interstate Dispute Narratives (Gibler 2018), disponible en la biblioteca de UOC.
- Herramientas de mapeo: En esta actividad crearemos un mapa con la ayuda de los paquete de R
dplyr
yggplot2
.
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")
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).
- 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
- 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 disputa militarizada
Los datos por disputa militarizada se encuentran en el archivo MIDA 5.0.csv. A continuación, convertimos el archivo en el objeto de R mida
. En la Tabla 1 vemos el resultado de teclear head(mida, 10)
en la consola.
mida <- read_csv("MIDA 5.0.csv") #tenéis que tener cargado el paquete readr
head(mida, 10)
dispnum | stday | stmon | styear | endday | endmon | endyear | outcome | settle | fatality | fatalpre | maxdur | mindur | hiact | hostlev | recip | numa | numb | ongo2014 | version |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | -9 | 7 | 1902 | 24 | 1 | 1903 | 6 | 1 | 0 | 0 | 208 | 178 | 7 | 3 | 0 | 1 | 1 | 0 | 5 |
3 | 2 | 5 | 1913 | 25 | 10 | 1913 | 4 | 3 | 0 | 0 | 177 | 177 | 8 | 3 | 0 | 1 | 1 | 0 | 5 |
4 | 15 | 5 | 1946 | 13 | 11 | 1946 | 5 | 3 | 2 | -9 | 183 | 183 | 16 | 4 | 1 | 1 | 1 | 0 | 5 |
7 | 13 | 10 | 1951 | 26 | 1 | 1952 | 1 | 3 | 2 | -9 | 106 | 106 | 17 | 4 | 1 | 1 | 1 | 0 | 5 |
8 | -9 | 7 | 1856 | 14 | 3 | 1857 | 1 | 2 | 6 | -9 | 257 | 227 | 20 | 5 | 1 | 1 | 1 | 0 | 5 |
9 | 29 | 12 | 1889 | 10 | 1 | 1890 | 6 | 1 | 0 | 0 | 13 | 13 | 7 | 3 | 0 | 1 | 1 | 0 | 5 |
11 | 11 | 3 | 1938 | 12 | 3 | 1938 | 4 | 1 | 0 | 0 | 2 | 2 | 14 | 4 | 0 | 1 | 1 | 0 | 5 |
12 | 11 | 3 | 1938 | 30 | 9 | 1938 | 4 | 1 | 0 | 0 | 204 | 204 | 16 | 4 | 1 | 1 | 5 | 0 | 5 |
13 | 6 | 4 | 1863 | 17 | 8 | 1863 | 1 | 2 | -9 | -9 | 134 | 134 | 15 | 4 | 0 | 3 | 1 | 0 | 5 |
14 | 15 | 10 | 1895 | 31 | 12 | 1895 | 4 | 3 | 0 | 0 | 78 | 78 | 7 | 3 | 0 | 1 | 1 | 0 | 5 |
Ejercicio 1: Explora el marco de datos con head(mida)
y glimpse(mida)
. Si tecleas head(mida)
te mostará las primeras seis observaciones, en cambio, glimpse(mida)
te permitirá ver el marco de datos de forma vertical. Responde las siguientes preguntas, ayudándote también del libro que encontrás dentro del archivo MID 5.0 Codebook.pdf (páginas 2-4) 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 se originó la disputa?
- Fíjate que en muchas celdas aparece el valor
-9
¿Sabrías explicar qué significa? - ¿Qué diferentes resultados puede tener una disputa según la variable
outcome
? - Busca en el libro de códigos el significado de las variables
fatality
yhostlev
. - La variable
dispnum
se refiere al código que recibe una disputa militarizada. Selecciona una de las primeras disputas que aparecen en el marco de datos y consulta más información al libro disponible en el aula International Conflicts, 1816-2010: Militarized Interstate Dispute Narratives (tendrás que buscar el código de las disputa). 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/data-sets/MIDLOC/midloc_2-1.zip/@@download/file/MIDLOC_2.1.zip", "MIDLOC_2.1.zip")
unzip("MIDLOC_2.1.zip")
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.
- 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.
- 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 disputa militarizada, utilizaremos el archivos MIDLOCA_2.1.csv. A continuación, convertimos el archivo en el objeto de R midloca
. En la Tabla 2 vemos el resultado de teclear head(midloca)
en la consola.
midloca <- read_csv("MIDLOCA_2.1.csv") #tenéis que tener cargado el paquete readr
head(midloca)
year | dispnum | midloc2_location | midloc2_measuringpoint | midloc2_xlongitude | midloc2_ylatitude | midloc2_precision | midloc2_howobtained | midloc2_precision_comment | midloc2_general_comment | priogrid_cell | midloc11_location | midloc11_midlocmeasuringpoint | midloc11_latitude | midloc11_longitude | midloc11_precision |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1902 | 2 | Canada-United States (Alaska [ADM1]) Border | Midpoint of shared (subnational) border | -138.6700 | 59.8283 | 5 | ArcGIS and GADM | Point along a line | NA | 215363 | Alaska-Canadian border | Juneau, Alaska | 58.5092 | -134.6890 | 4 |
1913 | 3 | Austria-Yugoslavia Border | Midpoint of shared (national) border | 14.9110 | 46.6223 | 5 | ArcGIS and cShapes | Point along a line | Uses 1955 data | 196950 | Austria’s border with Serbia | Belgrade, Yug | 44.8119 | 20.4656 | 4 |
1946 | 4 | Straits of Corfu | Straits of Corfu | 19.9700 | 39.7700 | 3 | latlong.net | Strait | NA | 186880 | Corfu Channel | Kerkira, GRC | 39.62 | 19.9197 | 4 |
1951 | 7 | Suez Canal | Timsah Lake | 32.2909 | 30.5735 | 5 | latlong.net | Point along a line | NA | 173945 | Suez canal zone | Suez canal, UAR | 29.9167 | 32.5500 | 4 |
1856 | 8 | Tehran, Iran | Tehran, Iran | 51.3890 | 35.6892 | 8 | latlong.net | Capital | NA | 181183 | Iran | Tehran, IRN | 35.6719 | 51.4244 | 5 |
1889 | 9 | Mozambique Territorial Waters | Centroid of territorial waters | 36.9704 | -18.1918 | 3 | ArcGIS and Marine Regions | Territorial waters | NA | 103394 | Waters off Mozambique | Maputo | -25.9653 | 32.5892 | 4 |
Ejercicio 2: Examina el marco de datos midloca
mediante las funciones head()
y glimpse()
. Si tecleas head(midloca)
te mostará las primeras seis observaciones, en cambio, glimpse(midloca)
te permitirá ver el marco de datos de forma vertical. Responde a las siguientes preguntas, ayudándote también del libro de códigos que encontrarás dentro del archivo MIDLOCA_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?
- ¿Cuál es el significado de la variable
midloc2_precision
?¿Y lamidloc2_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 elegidoterrain-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 midloca
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 midloca 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 = midloca)) + #¿Dónde se encuentran las coordenadas?
geom_point(alpha = 0.3, col = "blue") #definimos transparencia al 40% y color azul
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 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 la disputa militarizada utilizaremos el marco de datos midajoin
, que creamos a partir de los objetos mida
y midloca
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 settle
o fatality
. Las primeras observaciones de midajoin
se muestran en la Tabla 3. Fijaos que ahora tenemos las coordenadas e información de la disputa en un mismo marco de datos.
midajoin <- mida %>%
left_join(midloca, by = c("dispnum")) %>%
select(dispnum, location = midloc2_location, measuringpoint = midloc2_measuringpoint,
lon = midloc2_xlongitude, lat = midloc2_ylatitude, styear, endyear,
settle, hostlev, fatality, fatalpre, maxdur, mindur, recip, numa, numb) %>%
mutate(settle = case_when(settle == 1 ~ "Negotiated",
settle == 2 ~ "Imposed",
settle == 3 ~ "None",
settle == 4 ~ "Unclear",
TRUE ~ "Missing"),
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"))
dispnum | location | measuringpoint | lon | lat | styear | endyear | settle | hostlev | fatality | fatalpre | maxdur | mindur | recip | numa | numb |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | Canada-United States (Alaska [ADM1]) Border | Midpoint of shared (subnational) border | -138.67000 | 59.8283 | 1902 | 1903 | Negotiated | Display of force | None | 0 | 208 | 178 | 0 | 1 | 1 |
3 | Austria-Yugoslavia Border | Midpoint of shared (national) border | 14.91100 | 46.6223 | 1913 | 1913 | None | Display of force | None | 0 | 177 | 177 | 0 | 1 | 1 |
4 | Straits of Corfu | Straits of Corfu | 19.97000 | 39.7700 | 1946 | 1946 | None | Use of force | 26-100 | -9 | 183 | 183 | 1 | 1 | 1 |
7 | Suez Canal | Timsah Lake | 32.29090 | 30.5735 | 1951 | 1952 | None | Use of force | 26-100 | -9 | 106 | 106 | 1 | 1 | 1 |
8 | Tehran, Iran | Tehran, Iran | 51.38900 | 35.6892 | 1856 | 1857 | Imposed | NA | More than 999 | -9 | 257 | 227 | 1 | 1 | 1 |
9 | Mozambique Territorial Waters | Centroid of territorial waters | 36.97040 | -18.1918 | 1889 | 1890 | Negotiated | Display of force | None | 0 | 13 | 13 | 0 | 1 | 1 |
11 | Austria-Germany Border | Midpoint of shared (national) border | 9.59932 | 47.5319 | 1938 | 1938 | Negotiated | Use of force | None | 0 | 2 | 2 | 0 | 1 | 1 |
12 | Czechoslovakia-Germany Border | Midpoint of shared (national) border | 12.67840 | 50.4139 | 1938 | 1938 | Negotiated | Use of force | None | 0 | 204 | 204 | 1 | 1 | 5 |
A continuación, creamos el mapa mida_map
y ubicamos los conflictos que tienen como número de disputa (dispnum
) 3, 4 y 7. 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
mida_map <- get_stamenmap(bbox = c(top = 75,
left = -170, right = 170,
bottom = -58),
zoom = 2, #indicamos la resolución del mapa
maptype = "terrain-background")
#Introducimos los datos de midloca en el mapamundi
mida_map %>%
ggmap(base_layer = ggplot(aes(x = lon, y = lat,
col = fatality, #elige settle, hostlev o fatality
size = styear), #elige fatalpre, maxdur o mindur
data = filter(midajoin, dispnum %in% c(3,4,7)))) +
geom_point(alpha = 0.5)
Crea tu propio mapa: Modifica el código anterior para crear tu propio mapa:
- Elige como mínimo dos disputas militarizadas de la sección Hemisferio Occidental del libro International Conflicts, 1816-2010: Militarized Interstate Dispute Narratives (Gibler 2018).
- Puedes ver la información de la disputa en la base de datos introduciendo el número de disputa con el siguiente código:
View(filter(midajoin, dispnum == XXXX))
- 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
mida_map
para focalizar la atención en la zona del mundo donde tengas los conflictos que has seleccionado. Cambia, si lo prefieres, el tipo de mapa (por ejemplo, “watercolor” o “toner-hybrid”. Puedes consultar els tipo de mapa tecleando?get_stamenmap
). - Haz una descripción del mapa. Ayúdate de las narrativas del 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.
Referencias
Encontrarás más información metodológica sobre la base de datos en el documento Dispute Coding Manual.pdf, que se encuentra dentro del archivo MID5.zip↩︎
Para más información de como utilizar ggmaps podéis consultar ggmap: Spatial Visualization with ggplot2 (Kahle and Wickham 2013).↩︎