Paquetes y Dataset
Cargamos los paquetes necesarios:
library(tidyverse)
library(treemap)
library(readxl)
library(stringr)
library(knitr)
En esta ocasión utilizaremos el Valor Agregado Bruto por actividades económicas según departamento de Perú para el año 2016. Los datos, obtenidos del INEI, muestran los valores a precios constantes de 2007. Por su parte, la región de Lima incluye también la Provincia Constitucional del Callao.
Peru_vab_sectores <- read_excel("C:/Users/Usuario/Desktop/r_que_r/r_que_r/content/datasets/Peru_vab_sectores.xlsx")
head(Peru_vab_sectores)
## # A tibble: 6 x 13
## Departamentos `Agricultura, G~ `Pesca y Acuicu~ `Extracción de ~ Manufactura
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Amazonas 891535 434 88744 122537
## 2 Ancash 640755 259165 8723743 1578256
## 3 Apurímac 402859 461 3867222 94690
## 4 Arequipa 1662593 44181 10962201 3476996
## 5 Ayacucho 604838 958 1205183 384229
## 6 Cajamarca 1286478 802 2254607 699070
## # ... with 8 more variables: `Electricidad, Gas y Agua` <dbl>,
## # Construcción <dbl>, Comercio <dbl>, `Transporte, Almacen., Correo y
## # Mensajería` <dbl>, `Alojamiento y Restaurantes` <dbl>, `Telecom. y Otros
## # Serv. de Información` <dbl>, `Administración Pública y Defensa` <dbl>,
## # `Otros Servicios` <dbl>
Como vemos, el dataframe sobre el que vamos a trabajar presenta en la primera columna los nombres de los distintos departamentos o regiones del país. En las siguientes columnas se recoge información de las actividades económicas, habiendo en cada una de ellas información relativa a cada uno de los 12 grandes sectores productivos.
Para trabajar con este dataset nos interesa reorganizarla información mostrada. Para ello utilizaremos la función gather()
como vemos en el comando siguiente. De esta forma sintetizamos el dataframe en tres columnas, una para el nombre de los departamentos, otro para el sector económico y otro para el valor agregado bruto de cada sector en cada región.
Peru_sectores <- Peru_vab_sectores %>%
gather(key = "sector", value = "vab", 2:13)
head(Peru_sectores)
## # A tibble: 6 x 3
## Departamentos sector vab
## <chr> <chr> <dbl>
## 1 Amazonas Agricultura, Ganadería, Caza y Silvicultura 891535
## 2 Ancash Agricultura, Ganadería, Caza y Silvicultura 640755
## 3 Apurímac Agricultura, Ganadería, Caza y Silvicultura 402859
## 4 Arequipa Agricultura, Ganadería, Caza y Silvicultura 1662593
## 5 Ayacucho Agricultura, Ganadería, Caza y Silvicultura 604838
## 6 Cajamarca Agricultura, Ganadería, Caza y Silvicultura 1286478
Con la función unique()
podemos ver los sectores económicos que contiene nuestro dataset.
unique(Peru_sectores$sector)
## [1] "Agricultura, Ganadería, Caza y Silvicultura"
## [2] "Pesca y Acuicultura"
## [3] "Extracción de Petróleo, Gas y Minerales"
## [4] "Manufactura"
## [5] "Electricidad, Gas y Agua"
## [6] "Construcción"
## [7] "Comercio"
## [8] "Transporte, Almacen., Correo y Mensajería"
## [9] "Alojamiento y Restaurantes"
## [10] "Telecom. y Otros Serv. de Información"
## [11] "Administración Pública y Defensa"
## [12] "Otros Servicios"
El objetivo de los treemap es, en esencia, visualizar en un gráfico la participación de algunas observaciones sobre un agregado. En nuestro caso particular nos interesa identificar el peso de los sectores productivos sobre el VAB total de la economía peruana y de las respectivas economías regionales. Antes de proceder a realizar los gráficos podemos hacernos una serie de preguntas para profundizar en estos aspectos:
1. ¿Qué peso tiene cada una de las economías regionales sobre el valor agregado bruto total de la economía peruana?
a <- Peru_sectores %>%
group_by(Departamentos) %>%
summarise(vab_regional = sum(vab)) %>%
mutate(total= sum(vab_regional), porcentaje = 100*(vab_regional/total)) %>%
arrange(desc(porcentaje)) %>%
select(Departamentos, porcentaje)
## `summarise()` ungrouping output (override with `.groups` argument)
a$porcentaje <- formatC(a$porcentaje, format = "f", digits = 2)
kable(a)
Departamentos | porcentaje |
---|---|
Lima | 48.32 |
Arequipa | 6.52 |
Cusco | 4.79 |
La Libertad | 4.49 |
Piura | 4.18 |
Ancash | 4.03 |
Ica | 3.35 |
Junín | 3.14 |
Lambayeque | 2.43 |
Cajamarca | 2.32 |
Puno | 1.99 |
Moquegua | 1.90 |
Loreto | 1.65 |
Tacna | 1.43 |
Apurímac | 1.39 |
San Martín | 1.23 |
Pasco | 1.17 |
Huánuco | 1.17 |
Ayacucho | 1.13 |
Ucayali | 0.91 |
Huancavelica | 0.71 |
Amazonas | 0.61 |
Madre de Dios | 0.59 |
Tumbes | 0.55 |
Resulta evidente la gran concentración de la actividad productiva en la capital, Lima, donde en 2016 se concentra el 48,32% de la actividad productiva del país. Por el contrario otras regiones, véase Tumbes, Madre de Dios, Amazonas, Huancavelica o Ucayali, no representan ni el 1% cada una del total del VAB total de la economía peruana.
2. ¿Qué peso tiene cada sector sobre el valor agregado total de la economía peruana en su conjunto?
b <- Peru_sectores %>%
group_by(sector) %>%
summarise(vab_regional = sum(vab)) %>%
mutate(total= sum(vab_regional), porcentaje = 100*(vab_regional/total)) %>%
arrange(desc(porcentaje)) %>%
select(sector, porcentaje)
## `summarise()` ungrouping output (override with `.groups` argument)
b$porcentaje <- formatC(b$porcentaje, format = "f", digits = 2)
kable(b)
sector | porcentaje |
---|---|
Otros Servicios | 25.22 |
Manufactura | 14.59 |
Extracción de Petróleo, Gas y Minerales | 14.32 |
Comercio | 11.72 |
Construcción | 6.44 |
Transporte, Almacen., Correo y Mensajería | 6.01 |
Agricultura, Ganadería, Caza y Silvicultura | 5.69 |
Administración Pública y Defensa | 5.52 |
Telecom. y Otros Serv. de Información | 4.57 |
Alojamiento y Restaurantes | 3.51 |
Electricidad, Gas y Agua | 2.05 |
Pesca y Acuicultura | 0.36 |
Vemos que una cuarta parte del VAB total de la economía peruana corresponde al sector Otros Servicios, un 14,6% a la actividad manufacturera/industrial y un 14,3% a la actividad extractiva (petróleo, gas y minería). El sector que contribuye en menor medida al valor agregado bruto total del país es el sector pesquero (0,36%).
3. ¿Qué sectores a nivel regional contribuyen en mayor y en menor medida al VAB total de la economía peruana?
c <- Peru_sectores %>%
mutate(suma_total= sum(vab), porcentaje= 100*(vab/suma_total)) %>%
select(Departamentos, sector,porcentaje) %>%
arrange(desc(porcentaje))
c$porcentaje <- formatC(c$porcentaje, format = "f", digits = 4)
library(knitr)
# Los diez sectores a nivel regional que más contribuyen
knitr::kable(c %>%
head(n=10))
Departamentos | sector | porcentaje |
---|---|---|
Lima | Otros Servicios | 16.2317 |
Lima | Manufactura | 8.9247 |
Lima | Comercio | 6.3806 |
Lima | Transporte, Almacen., Correo y Mensajería | 3.3633 |
Lima | Telecom. y Otros Serv. de Información | 2.9291 |
Lima | Administración Pública y Defensa | 2.7299 |
Lima | Construcción | 2.5621 |
Arequipa | Extracción de Petróleo, Gas y Minerales | 2.4061 |
Cusco | Extracción de Petróleo, Gas y Minerales | 2.3587 |
Lima | Alojamiento y Restaurantes | 2.2963 |
# Los diez sectores a nivel regional que menos contribuyen
knitr::kable(c %>%
tail(n=10))
Departamentos | sector | porcentaje |
---|---|---|
Huancavelica | Pesca y Acuicultura | 0.0013 |
San Martín | Pesca y Acuicultura | 0.0009 |
Madre de Dios | Pesca y Acuicultura | 0.0003 |
Ayacucho | Pesca y Acuicultura | 0.0002 |
Cajamarca | Pesca y Acuicultura | 0.0002 |
Cusco | Pesca y Acuicultura | 0.0002 |
Huánuco | Pesca y Acuicultura | 0.0001 |
Apurímac | Pesca y Acuicultura | 0.0001 |
Amazonas | Pesca y Acuicultura | 0.0001 |
Pasco | Pesca y Acuicultura | 0.0001 |
El sector Otros Servicios en Lima contribuye al 16,2% del VAB peruano total mientras que la actividad pesquera en Pasco, Amazonas, Apurímac o Huánuco lo hacen un 0,0001%.
4. ¿Qué peso tiene cada sector sobre el VAB de cada región?
Si ordenamos las regiones por orden alfabético y de mayor a menor participación podemos identificar los sectores más importantes en cada región (ie. Agropecuario en Amazonas, Extractivo en Ancash, Apurímac o Arequipa, etc.) y el peso de cada actividad sobre la economía regional. No obstante, por motivos de espacio mostramos únicamente los primeros 12 valores del dataset creado (que corresponden a la región Amazonas).
d <- Peru_sectores %>%
group_by(Departamentos) %>%
mutate(suma_total= sum(vab), porcentaje= 100*(vab/suma_total)) %>%
select(Departamentos, sector, porcentaje) %>%
arrange(Departamentos, desc(porcentaje)) %>%
head(n=12)
d$porcentaje <- formatC(d$porcentaje, format = "f", digits = 2)
kable(d)
Departamentos | sector | porcentaje |
---|---|---|
Amazonas | Agricultura, Ganadería, Caza y Silvicultura | 32.03 |
Amazonas | Otros Servicios | 19.62 |
Amazonas | Comercio | 11.54 |
Amazonas | Construcción | 10.26 |
Amazonas | Administración Pública y Defensa | 10.06 |
Amazonas | Manufactura | 4.40 |
Amazonas | Transporte, Almacen., Correo y Mensajería | 4.28 |
Amazonas | Extracción de Petróleo, Gas y Minerales | 3.19 |
Amazonas | Telecom. y Otros Serv. de Información | 1.95 |
Amazonas | Alojamiento y Restaurantes | 1.47 |
Amazonas | Electricidad, Gas y Agua | 1.17 |
Amazonas | Pesca y Acuicultura | 0.02 |
Para observar la composición sectorial de una región en concreto, pongamos por ejemplo Ica, podríamos indicar el siguiente código:
d_b <- Peru_sectores %>%
group_by(Departamentos) %>%
mutate(suma_total= sum(vab), porcentaje= 100*(vab/suma_total)) %>%
select(Departamentos, sector, porcentaje) %>%
arrange(Departamentos, desc(porcentaje)) %>%
filter(Departamentos == "Ica")
d_b$porcentaje <- formatC(d_b$porcentaje, format = "f", digits = 2)
kable(d_b)
Departamentos | sector | porcentaje |
---|---|---|
Ica | Manufactura | 19.45 |
Ica | Extracción de Petróleo, Gas y Minerales | 15.76 |
Ica | Otros Servicios | 14.78 |
Ica | Agricultura, Ganadería, Caza y Silvicultura | 13.10 |
Ica | Construcción | 11.09 |
Ica | Comercio | 9.58 |
Ica | Transporte, Almacen., Correo y Mensajería | 6.49 |
Ica | Administración Pública y Defensa | 3.32 |
Ica | Telecom. y Otros Serv. de Información | 2.76 |
Ica | Alojamiento y Restaurantes | 1.57 |
Ica | Electricidad, Gas y Agua | 1.57 |
Ica | Pesca y Acuicultura | 0.55 |
5. ¿En qué medida contribuyen las regiones peruanas al VAB agregado de cada uno de los grandes sectores productivos?
Esta pregunta es similar a la anterior. No obstante, en lugar de querer identificar el peso de cada sector en cada región pretende identificar el peso de cada región en el agregado total de cada actividad productiva del país. Esto lo conseguimos realizando ligeros cambios al código inicial (de nuevo, por motivos de espacio, mostramos los primeros valores que corresponden, por estar ordenados de forma alfabética, a la Administración Pública y Defensa).
e <- Peru_sectores %>%
group_by(sector) %>%
mutate(suma_total= sum(vab), porcentaje= 100*(vab/suma_total)) %>%
select(sector, Departamentos,porcentaje) %>%
arrange(sector, desc(porcentaje)) %>%
head(n=10)
e$porcentaje <- formatC(e$porcentaje, format = "f", digits = 2)
kable(e)
sector | Departamentos | porcentaje |
---|---|---|
Administración Pública y Defensa | Lima | 49.46 |
Administración Pública y Defensa | Piura | 4.54 |
Administración Pública y Defensa | La Libertad | 3.95 |
Administración Pública y Defensa | Cajamarca | 3.48 |
Administración Pública y Defensa | Arequipa | 3.43 |
Administración Pública y Defensa | Ancash | 3.39 |
Administración Pública y Defensa | Junín | 3.29 |
Administración Pública y Defensa | Cusco | 3.18 |
Administración Pública y Defensa | Lambayeque | 3.04 |
Administración Pública y Defensa | Puno | 2.81 |
Al igual que hemos hecho previamente, podemos identificar la participación de cada región sobre una actividad productiva en concreto, por ejemplo la actividad extractiva, realizando algún pequeño cambio al código anterior.
e_b <- Peru_sectores %>%
group_by(sector) %>%
mutate(suma_total= sum(vab), porcentaje= 100*(vab/suma_total)) %>%
select(sector, Departamentos,porcentaje) %>%
arrange(sector, desc(porcentaje)) %>%
filter(sector == "Extracción de Petróleo, Gas y Minerales") %>%
head(n=10)
e_b$porcentaje <- formatC(e_b$porcentaje, format = "f", digits = 2)
kable(e_b)
sector | Departamentos | porcentaje |
---|---|---|
Extracción de Petróleo, Gas y Minerales | Arequipa | 16.80 |
Extracción de Petróleo, Gas y Minerales | Cusco | 16.47 |
Extracción de Petróleo, Gas y Minerales | Ancash | 13.37 |
Extracción de Petróleo, Gas y Minerales | Junín | 6.40 |
Extracción de Petróleo, Gas y Minerales | Apurímac | 5.93 |
Extracción de Petróleo, Gas y Minerales | Lima | 5.65 |
Extracción de Petróleo, Gas y Minerales | Pasco | 4.99 |
Extracción de Petróleo, Gas y Minerales | Moquegua | 3.86 |
Extracción de Petróleo, Gas y Minerales | Tacna | 3.77 |
Extracción de Petróleo, Gas y Minerales | Ica | 3.69 |
La tabla anterior indica claramente cuáles son las principales regiones productoras de minerales, petróleo o gas del Perú en 2016. Las regiones de Arequipa, Cusco y Ancash contribuyeron a más del 45% del valor agregado bruto de la actividad extractiva del país en el año 2016.
6. ¿Cuál es el sector en cada región que más contribuye al VAB nacional y al VAB de dicha región?
Si queremos identificar únicamente el sector en cada una de las regiones peruanas que más contribuye al VAB nacional podemos modificar el código utilizado en la pregunta 3 (mostramos solo las 10 primeras observaciones).
f <- Peru_sectores %>%
mutate(suma_total= sum(vab), porcentaje= 100*(vab/suma_total)) %>%
select(Departamentos, sector,porcentaje) %>%
arrange(desc(porcentaje)) %>%
group_by(Departamentos) %>%
top_n(1) %>%
head(n=10)
f$porcentaje <- formatC(f$porcentaje, format = "f", digits = 2)
kable(f)
Departamentos | sector | porcentaje |
---|---|---|
Lima | Otros Servicios | 16.23 |
Arequipa | Extracción de Petróleo, Gas y Minerales | 2.41 |
Cusco | Extracción de Petróleo, Gas y Minerales | 2.36 |
Ancash | Extracción de Petróleo, Gas y Minerales | 1.91 |
La Libertad | Otros Servicios | 0.96 |
Junín | Extracción de Petróleo, Gas y Minerales | 0.92 |
Apurímac | Extracción de Petróleo, Gas y Minerales | 0.85 |
Piura | Otros Servicios | 0.84 |
Moquegua | Manufactura | 0.82 |
Pasco | Extracción de Petróleo, Gas y Minerales | 0.72 |
Por su parte, si queremos identificar únicamente el sector de cada departamento que más contribuye al VAB de dicha región, comprobando de forma indirecta el grado de concentración productiva existente en las regiones peruanas, podemos también realizar alguna pequeña modificación al código previo (mostramos de nuevo solo las 10 primeras observaciones).
f_b <- Peru_sectores %>%
group_by(Departamentos) %>%
mutate(suma_total= sum(vab), porcentaje= 100*(vab/suma_total)) %>%
select(Departamentos, sector,porcentaje) %>%
arrange(desc(porcentaje)) %>%
top_n(1) %>%
head(n=10)
f_b$porcentaje <- formatC(f_b$porcentaje, format = "f", digits = 2)
kable(f_b)
Departamentos | sector | porcentaje |
---|---|---|
Pasco | Extracción de Petróleo, Gas y Minerales | 61.08 |
Apurímac | Extracción de Petróleo, Gas y Minerales | 60.91 |
Cusco | Extracción de Petróleo, Gas y Minerales | 49.23 |
Ancash | Extracción de Petróleo, Gas y Minerales | 47.50 |
Madre de Dios | Extracción de Petróleo, Gas y Minerales | 46.53 |
Moquegua | Manufactura | 43.38 |
Tacna | Extracción de Petróleo, Gas y Minerales | 37.76 |
Arequipa | Extracción de Petróleo, Gas y Minerales | 36.91 |
Lima | Otros Servicios | 33.59 |
Amazonas | Agricultura, Ganadería, Caza y Silvicultura | 32.03 |
Resulta patente la gran concentración productiva en la actividad extractiva existente en regiones como Pasco, Apurímac, Cusco, Ancash, Madre de Dios, Tacna o Arequipa. Moquegua registra una gran concentración de su actividad productiva en Manufactura, actividad que en dicha región está también fuertemente vinculada a la producción y refinado de minerales, principalmente cobre.
Treemap con el paquete treemap
No obstante, bien es sabido que una imagen vale más que mil palabras. Para ello una buena opción son los gráficos treemap que permiten visualizar el peso de cada región o de cada sector sobre el conjunto de la economía. Una forma sencilla de realizar gráficos treemap es mediante el paquete del mismo nombre.
tree_sectores <- treemap(
Peru_sectores,
index=c("sector","Departamentos"),
vSize="vab",
title = "VAB por actividades económicas según departamento en 2016.",
vColor="sector",
type="index",
palette = "Set3",
force.print.labels = F,
border.col = c("black", "white"),
border.lwds = c(3,2),
align.labels = list(
c("center","center"),
c("center", "top")
)
)
El gráfico muestra claramente que, como vimos, la actividad económica de mayor valor agregado bruto es el sector Otros Servicios, seguido por la Manufactura, el sector extractivo y la actividad comercial. La Pesca es, sin duda, el sector productivo de menor valor agregado bruto del país. Por su parte comprobamos que Lima, centro indiscutible de la economía del país, representa una gran parte del VAB total procedente del sector Otros Servicios, pero también en los sectores Manufactura, Comercio, Construcción entre otros.
Sin embargo, para visualizar más fácilmente la importancia de Lima sobre el VAB total podemos modificar ligeramente el código anterior para generar un treemap alternativo. De esta forma obtenemos una imagen más sugerente de la enorme concentración productiva que existe en Perú, donde domina enormemente la capital con respecto al resto de regiones del país. Asimismo, el nuevo treemap nos muestra claramente que la actividad extractiva, es decir, la extracción de petróleo, gas o la actividad minera, representa una parte muy importante del VAB total de algunas regiones peruanas, como por ejemplo Arequipa, Cusco, Ancash, Junín, Tacna, Apurímac o Pasco entre otras. Nótese además que la actividad extractiva tiende a ser una actividad caracterizada por su alto nivel de productividad pero, en el lado negativo, suele ser una actividad altamente intensiva en capital, es decir que es creadora de poco empleo y, por su parte, es una actividad potencialmente generadora de conflictos sociales y problemas medioambientales.
tree_regiones <- treemap(
Peru_sectores,
index=c("Departamentos", "sector"),
vSize="vab",
title = "VAB por actividades económicas según departamento en 2016.",
vColor="sector",
type="index",
palette = "Set2",
force.print.labels = F,
border.col = c("white", "black"),
border.lwds = c(4,1),
align.labels = list(
c("center","center"),
c("center", "top")
)
)
Treemap interactivo con d3treeR
Los gráficos anteriores nos permite hacernos una imagen general de qué sectores y regiones representan una mayor proporción con respecto al valor agregado bruto total de la economía peruana y cuáles tienen un menor peso en la economía en su conjunto. No obstante, estos gráficos estáticos no permiten ver de forma adecuada los valores más pequeños, los cuales quedan difuminados e invisibilizados con respecto a los de mayor peso debido a su menor participación relativa (en nuestro caso con respecto a otros sectores o regiones). Para solucionar esto podemos realizar treemaps dinámicos o interactivos, que nos permitan visualizar fácilmente todas las categorías incluidas en el treemap.
Para ello, el paquete {d3treeR} nos permite realizar de forma sencilla treemaps interactivos. Por ejemplo, en los siguientes comandos realizamos treemaps interactivos partiendo de los treemaps realizados en el punto previo.
El treemap inteactivo de tree_sectores
:
library(d3treeR)
d3tree(tree_sectores,
rootname = "VAB por actividades económicas según departamento en 2016. (valores a precios constantes de 2007)")
El treemap interactivo de tree_regiones
:
d3tree(tree_regiones,
rootname = "VAB por actividades económicas según departamento en 2016. (valores a precios constantes de 2007)")