1 Introducción

En 2022, Paraguay concluyó el Censo Agropecuario Nacional (CAN 2022), una operación estadística que actualiza—por primera vez en 14 años—el inventario de fincas, cultivos, sistemas de producción y uso del suelo en los 218 distritos del país. El microdato completo, liberado por el Ministerio de Agricultura y Ganadería a través de su geo-portal institucional, representa más de 210 000 registros censales con detalle a nivel de finca, constituyendo la base empírica más robusta para la formulación de políticas agro-ambientales en la última década.

El objetivo de este análisis es doble:

Integración espacial: vincular los microdatos del CAN 2022 con la cartografía distrital oficial (GADM v4) mediante una llave numérica única—DSTO_PROC—para garantizar correspondencia uno-a-uno sin ambigüedades de nombres o tildes.

Exploración temática inicial

Estructura de tenencia: clasificación de la conducción de la finca (productor individual, productor asociado o entidad colectiva).

Cobertura de bosque nativo: estimación de la proporción de superficie con montes naturales dentro de cada distrito.

La entrega combina técnicas de tidy data y análisis geoespacial en R (dplyr, sf, tmap), produciendo un heat-map nacional que evidencia los contrastes en la conservación forestal, y un panel descriptivo sobre la forma de gestión de las explotaciones. Estos resultados preliminares buscan ilustrar cómo la unión de microdatos censales y SIG facilita diagnósticos territoriales precisos, insumos clave para iniciativas de ordenamiento, sostenibilidad y planificación sectorial.

2 Fuente de datos

¿De dónde vienen los datos? Fuente primaria: Microdatos del Censo Agropecuario Nacional 2022 publicados por el Ministerio de Agricultura y Ganadería (MAG).

Se descargan desde su geo‐portal oficial: https://portal.gis.mag.gov.py/arcgis/apps/sites/#/geoportal/pages/microdatos

Complementariamente utilizo la cartografía administrativa de GADM v4 (nivel 2, distritos).

Cobertura: 218 distritos, ~210 000 fincas agropecuarias.

3 Precesamiento de datos

3.1 Librerias necesarias

#install.packages("maps", "tmaptools", "tmap")
library("maps")
library("tmaptools")
#library("rgdal")
#library("OpenStreetMap")
library("sf")
library("raster")
library("dplyr")
library("spData")
library("tmap")    # for static and interactive maps
library("leaflet") # for interactive maps
library("ggplot2") # tidyverse data visualization package
#library("spDataLarge")

3.2 Carga de los datos

# can<- read_dta("G:/Mi unidad/CAN2022/BASE_CAN2022_DATOS_GENERALES_P2.dta")
# names(can)
# 
# # 3. Guardar como CSV
# write_csv(
#   can,
#   "G:/Mi unidad/CAN2022/BASE_CAN2022_DATOS_GENERALES_P2.csv"
# )
# cargar la base 
library(readr)

can <- read_delim(
  "G:/Mi unidad/CAN2022/BASE_CAN2022_DATOS_GENERALES_P2.csv",
  delim = ",",
  show_col_types = FALSE
)
names(can)
##   [1] "ID_FCA_ALEATORIO" "CLASIFICANEW"     "DPTO_PROC"       
##   [4] "DSTO_PROC"        "tipoi"            "tipofinca"       
##   [7] "p5000"            "menores_total"    "mayores_total"   
##  [10] "p7001_sn"         "p7021p"           "p7021p_nosabe"   
##  [13] "p7033p"           "p7033p_nosabe"    "p7221t"          
##  [16] "p7221t_nosabe"    "p7223t"           "p7223t_nosabe"   
##  [19] "p8000_1"          "p8000_3"          "p9001"           
##  [22] "p9000_total"      "p10001"           "p10002"          
##  [25] "p10003"           "p10004"           "p10005"          
##  [28] "p10006"           "p10007"           "p10008"          
##  [31] "p10009"           "p10000_total"     "p12000_sn"       
##  [34] "p12000_total"     "p12000b_total"    "p13300_total"    
##  [37] "p14000_sn"        "p14000_total"     "p15000_sn"       
##  [40] "p15000_total"     "p16000_sn"        "p16000_total"    
##  [43] "p18000_sn"        "p18002"           "XP18003_1"       
##  [46] "XP18003_2"        "XP18003_3"        "p18003_esp"      
##  [49] "p18003_0"         "p18003_1"         "p18003_2"        
##  [52] "p18003_3"         "p19100_sn"        "p19101"          
##  [55] "p19102"           "p19103"           "p19104"          
##  [58] "p19105"           "p19106"           "p19107"          
##  [61] "p19108"           "p19109"           "p19110"          
##  [64] "p19111"           "p19112"           "p19119"          
##  [67] "p19121"           "p19122"           "p19123"          
##  [70] "p19123_nosabe"    "xp19124_1"        "xp19124_2"       
##  [73] "xp19124_3"        "xp19124_4"        "p19125_1"        
##  [76] "p19131"           "p19132"           "p19133"          
##  [79] "p19135_1_sn"      "p19136_sn"        "p19139_sn"       
##  [82] "p19140_sn"        "p19300_sn"        "p19303_total"    
##  [85] "raza_oveja_total" "p19400_sn"        "p19405_total"    
##  [88] "raza_cabra_total" "p19500_sn"        "p19509_total"    
##  [91] "p19700_sn"        "p19701"           "p19710"          
##  [94] "p19800_sn"        "p19802"           "p19802_nosabe"   
##  [97] "p210051_sn"       "p21010_sn"        "p21011_sn"       
## [100] "p21013_sn"        "p21014_sn"        "p21016_sn"       
## [103] "p21017_sn"        "p21018_sn"        "p21018_1"        
## [106] "XP21018_2_1"      "XP21018_2_2"      "XP21018_2_3"     
## [109] "XP21018_2_4"      "p22000_sn"        "p23100_sn"       
## [112] "XP23101_1"        "XP23101_2"        "XP23101_3"       
## [115] "XP23101_4"        "XP23101_5"        "XP23101_6"       
## [118] "XP23101_7"        "XP23102_1_1"      "XP23102_1_2"     
## [121] "XP23102_1_3"      "XP23102_1_4"      "XP23102_1_5"     
## [124] "XP23102_1_6"      "XP23102_1_7"      "XP23102_1_8"     
## [127] "XP23102_1_9"      "XP23102_1_10"     "XP23102_1_11"    
## [130] "XP23102_1_12"     "XP23102_3_1"      "XP23102_3_2"     
## [133] "XP23102_3_3"      "XP23102_3_4"      "XP23102_3_5"     
## [136] "XP23102_3_6"      "XP23102_3_7"      "XP23102_3_8"     
## [139] "XP23102_3_9"      "XP23102_3_10"     "XP23102_3_11"    
## [142] "XP23102_3_12"     "p23150_sn"        "p23200_sn"       
## [145] "XP23201_1"        "XP23201_2"        "XP23201_3"       
## [148] "XP23201_4"        "XP23201_5"        "XP23201_6"       
## [151] "XP23202_1_1"      "XP23202_1_2"      "XP23202_1_3"     
## [154] "XP23202_1_4"      "XP23202_1_5"      "XP23202_1_6"     
## [157] "XP23202_1_7"      "XP23202_31"       "XP23202_32"      
## [160] "XP23202_33"       "XP23202_34"       "XP23202_35"      
## [163] "XP23202_36"       "XP23202_37"       "p23250_sn"       
## [166] "XP23251_1"        "XP23251_2"        "XP23251_3"       
## [169] "XP23251_4"        "XP23251_5"        "XP23251_6"       
## [172] "XP23252_11"       "XP23252_12"       "XP23252_13"      
## [175] "XP23252_14"       "XP23252_15"       "XP23252_16"      
## [178] "XP23252_17"       "XP23252_31"       "XP23252_32"      
## [181] "XP23252_33"       "XP23252_34"       "XP23252_35"      
## [184] "XP23252_36"       "p23300_sn"        "p24000_1_sn"     
## [187] "p24000_2_sn"      "p24000_3_sn"      "p24000_4_sn"     
## [190] "p24000_5_sn"      "p24000_13_sn"     "p26002_sn"       
## [193] "p26101_sn"        "p26102_sn"        "p26103_sn"       
## [196] "p27000_sn"        "p28100_sn"        "XP28100_1"       
## [199] "XP28100_2"        "XP28100_3"        "XP28100_4"       
## [202] "XP28100_5"        "XP28100_6"        "XP28100_7"       
## [205] "XP28100_9"        "p28200_sn"        "XP29000_1"       
## [208] "XP29000_2"        "XP29000_3"        "XP29000_4"       
## [211] "XP29000_5"        "XP29000_6"        "XP29000_9"       
## [214] "p29000_esp"       "p30000_sn"        "p30000_1"        
## [217] "SEMBRAMANUAL"     "PULVEMOCHILA"     "PULVEMOTO"       
## [220] "ARADOS"           "MOTOCULTOR"       "MOTOSIERRA"      
## [223] "CARRETA"          "PICADORA"         "TRACTOR"         
## [226] "SEMBRADIRECTA"    "PULVEARRASTRE"    "COSEAUTOMOTRIZ"  
## [229] "ACOPLADOS"        "CAMIONES"         "AERONAVES"       
## [232] "TRACTORGPS"       "SEMBRASENSOR"     "PULVECONTROL"    
## [235] "COSECHASENSOR"    "DRONES"

3.3 Seleccionar variables de interés

Identificador de la finca: ID_FCA_ALEATORIO Departamento: “DPTO_PROC”
Distrito: “DSTO_PROC”
Tipo de finca:“tipoi”

camposseleccionados=c("ID_FCA_ALEATORIO", "DPTO_PROC", "DSTO_PROC", "tipofinca","p10004", "p8000_1" )

can <- read_delim(
  "G:/Mi unidad/CAN2022/BASE_CAN2022_DATOS_GENERALES_P2.csv",
  delim = ",",
  col_select =camposseleccionados,
  show_col_types = FALSE
)

3.3.1 Etiquetar cada distrito

# Vector key → nombre de distrito para los 218 distritos (códigos DSTO_PROC)


dept_map <- c(
  `0`  = "Asunción",
  `1`  = "Concepción",
  `2`  = "San Pedro",
  `3`  = "Cordillera",
  `4`  = "Guairá",
  `5`  = "Caaguazú",
  `6`  = "Caazapá",
  `7`  = "Itapúa",
  `8`  = "Misiones",
  `9`  = "Paraguarí",
  `10` = "Alto Paraná",
  `11` = "Central",
  `12` = "Ñeembucú",
  `13` = "Amambay",
  `14` = "Canindeyú",
  `15` = "Presidente Hayes",
  `16` = "Boquerón",
  `17` = "Alto Paraguay"
)


distrito_labels <- c(
  # ── Capital ────────────────────────────────────────────
  `0`   = "Asunción",
  
  # ── Concepción (10x) ───────────────────────────────────
  `101` = "Concepción",
  `102` = "Belén",
  `103` = "Horqueta",
  `104` = "Loreto",
  `105` = "San Carlos del Apa",
  `106` = "San Lázaro",
  `107` = "Yby Ya'u",
  `108` = "Azote'y",
  `109` = "Sargento José Félix López",
  `110` = "San Alfredo",
  `111` = "Paso Barreto",
  `112` = "Arroyito",
  `113` = "Paso Horqueta",
  
  # ── San Pedro (20x) ───────────────────────────────────
  `201` = "San Pedro del Ycuamandyyú",
  `202` = "Antequera",
  `203` = "Choré",
  `204` = "General Elizardo Aquino",
  `205` = "Itacurubí del Rosario",
  `206` = "Lima",
  `207` = "Nueva Germania",
  `208` = "San Estanislao",
  `209` = "San Pablo",
  `210` = "Tacuatí",
  `211` = "Unión",
  `212` = "25 de Diciembre",
  `213` = "Villa del Rosario",
  `214` = "General Francisco Isidoro Resquín",
  `215` = "Yataity del Norte",
  `216` = "Guajayví",
  `217` = "Capiibary",
  `218` = "Santa Rosa del Aguaray",
  `219` = "Yrybucuá",
  `220` = "Liberación",
  `221` = "San Vicente Pancholo",
  `222` = "San José del Rosario",
  
  # ── Cordillera (30x) ──────────────────────────────────
  `301` = "Caacupé",
  `302` = "Altos",
  `303` = "Arroyos y Esteros",
  `304` = "Atyrá",
  `305` = "Caraguatay",
  `306` = "Emboscada",
  `307` = "Eusebio Ayala",
  `308` = "Isla Pucú",
  `309` = "Itacurubí de la Cordillera",
  `310` = "Juan de Mena",
  `311` = "Loma Grande",
  `312` = "Mbocayaty del Yhaguy",
  `313` = "Nueva Colombia",
  `314` = "Piribebuy",
  `315` = "Primero de Marzo",
  `316` = "San Bernardino",
  `317` = "Santa Elena",
  `318` = "Tobatí",
  `319` = "Valenzuela",
  `320` = "San José Obrero",
  
  # ── Guairá (40x) ──────────────────────────────────────
  `401` = "Villarrica",
  `402` = "Borja",
  `403` = "Capitán Mauricio José Troche",
  `404` = "Coronel Martínez",
  `405` = "Félix Pérez Cardozo",
  `406` = "General Eugenio A. Garay",
  `407` = "Independencia",
  `408` = "Itapé",
  `409` = "Iturbe",
  `410` = "José Fassardi",
  `411` = "Mbocayaty",
  `412` = "Natalicio Talavera",
  `413` = "Ñumí",
  `414` = "San Salvador",
  `415` = "Yataity",
  `416` = "Doctor Botrell",
  `417` = "Paso Yobai",
  `418` = "Tebicuary",
  
  # ── Caaguazú (50x) ────────────────────────────────────
  `501` = "Coronel Oviedo",
  `502` = "Caaguazú",
  `503` = "Carayaó",
  `504` = "Doctor Cecilio Báez",
  `505` = "Santa Rosa del Mbutuy",
  `506` = "Doctor Juan Manuel Frutos",
  `507` = "Repatriación",
  `508` = "Nueva Londres",
  `509` = "San Joaquín",
  `510` = "San José de los Arroyos",
  `511` = "Yhú",
  `512` = "Doctor J. Eulogio Estigarribia",
  `513` = "R.I. 3 Corrales",
  `514` = "Raúl Arsenio Oviedo",
  `515` = "José Domingo Ocampos",
  `516` = "Mariscal Francisco Solano López",
  `517` = "La Pastora",
  `518` = "3 de Febrero",
  `519` = "Simón Bolívar",
  `520` = "Vaquería",
  `521` = "Tembiaporá",
  `522` = "Nueva Toledo",
  
  # ── Caazapá (60x) ─────────────────────────────────────
  `601` = "Caazapá",
  `602` = "Abai",
  `603` = "Buena Vista",
  `604` = "Doctor Moisés S. Bertoni",
  `605` = "General Higinio Morínigo",
  `606` = "Maciel",
  `607` = "San Juan Nepomuceno",
  `608` = "Tavaí",
  `609` = "Yegros",
  `610` = "Yuty",
  `611` = "3 de Mayo",
  
  # ── Itapúa (70x) ──────────────────────────────────────
  `701` = "Encarnación",
  `702` = "Bella Vista",
  `703` = "Cambyretá",
  `704` = "Capitán Meza",
  `705` = "Capitán Miranda",
  `706` = "Nueva Alborada",
  `707` = "Carmen del Paraná",
  `708` = "Coronel Bogado",
  `709` = "Carlos Antonio López",
  `710` = "Natalio",
  `711` = "Fram",
  `712` = "General Artigas",
  `713` = "General Delgado",
  `714` = "Hohenau",
  `715` = "Jesús",
  `716` = "José Leandro Oviedo",
  `717` = "Obligado",
  `718` = "Mayor Julio Dionisio Otaño",
  `719` = "San Cosme y Damián",
  `720` = "San Pedro del Paraná",
  `721` = "San Rafael del Paraná",
  `722` = "Trinidad",
  `723` = "Edelira",
  `724` = "Tomás Romero Pereira",
  `725` = "Alto Vera",
  `726` = "La Paz",
  `727` = "Yatytay",
  `728` = "San Juan del Paraná",
  `729` = "Pirapó",
  `730` = "Itapúa Poty",
  
  # ── Misiones (80x) ────────────────────────────────────
  `801` = "San Juan Bautista de las Misiones",
  `802` = "Ayolas",
  `803` = "San Ignacio",
  `804` = "San Miguel",
  `805` = "San Patricio",
  `806` = "Santa María",
  `807` = "Santa Rosa",
  `808` = "Santiago",
  `809` = "Villa Florida",
  `810` = "Yabebyry",
  
  # ── Paraguarí (90x) ───────────────────────────────────
  `901` = "Paraguarí",
  `902` = "Acahay",
  `903` = "Caapucú",
  `904` = "Caballero",
  `905` = "Carapeguá",
  `906` = "Escobar",
  `907` = "La Colmena",
  `908` = "Mbuyapey",
  `909` = "Pirayú",
  `910` = "Quiindy",
  `911` = "Quyquyhó",
  `912` = "Roque González de Santa Cruz",
  `913` = "Sapucái",
  `914` = "Tebicuary-mi",
  `915` = "Yaguarón",
  `916` = "Ybycuí",
  `917` = "Ybytymi",
  `918` = "María Antonia",
  
  # ── Alto Paraná (100x) ────────────────────────────────
  `1001` = "Ciudad del Este",
  `1002` = "Presidente Franco",
  `1003` = "Domingo Martínez de Irala",
  `1004` = "Doctor Juan León Mallorquín",
  `1005` = "Hernandarias",
  `1006` = "Itakyry",
  `1007` = "Juan E. O'Leary",
  `1008` = "Ñacunday",
  `1009` = "Yguazú",
  `1010` = "Los Cedrales",
  `1011` = "Minga Guazú",
  `1012` = "San Cristóbal",
  `1013` = "Santa Rita",
  `1014` = "Naranjal",
  `1015` = "Santa Rosa del Monday",
  `1016` = "Minga Porã",
  `1017` = "Mbaracayú",
  `1018` = "San Alberto",
  `1019` = "Iruña",
  `1020` = "Santa Fe del Paraná",
  `1021` = "Tavapy",
  `1022` = "Doctor Raúl Peña",
  
  # ── Central (110x) ────────────────────────────────────
  `1101` = "Areguá",
  `1102` = "Capiatá",
  `1103` = "Fernando de la Mora",
  `1104` = "Guarambaré",
  `1105` = "Itá",
  `1106` = "Itauguá",
  `1107` = "Lambaré",
  `1108` = "Limpio",
  `1109` = "Luque",
  `1110` = "Mariano Roque Alonso",
  `1111` = "Nueva Italia",
  `1112` = "Ñemby",
  `1113` = "San Antonio",
  `1114` = "San Lorenzo",
  `1115` = "Villa Elisa",
  `1116` = "Villeta",
  `1117` = "Ypacaraí",
  `1118` = "Ypané",
  `1119` = "J. Augusto Saldívar",
  
  # ── Ñeembucú (120x) ───────────────────────────────────
  `1201` = "Pilar",
  `1202` = "Alberdi",
  `1203` = "Cerrito",
  `1204` = "Desmochados",
  `1205` = "General José Eduvigis Díaz",
  `1206` = "Guazú-Cuá",
  `1207` = "Humaitá",
  `1208` = "Isla Umbú",
  `1209` = "Laureles",
  `1210` = "Mayor José de Jesús Martínez",
  `1211` = "Paso de la Patria",
  `1212` = "San Juan Bautista de Ñeembucú",
  `1213` = "Tacuaras",
  `1214` = "Villa Franca",
  `1215` = "Villa Oliva",
  `1216` = "Villalbín",
  
  # ── Amambay (130x) ───────────────────────────────────
  `1301` = "Pedro Juan Caballero",
  `1302` = "Bella Vista",
  `1303` = "Capitán Bado",
  `1304` = "Zanja Pytá",
  `1305` = "Karapaí",
  `1306` = "Cerro Corá",
  
  # ── Canindeyú (140x) ─────────────────────────────────
  `1401` = "Salto del Guairá",
  `1402` = "Corpus Christi",
  `1403` = "Curuguaty",
  `1404` = "Ygatimí",
  `1405` = "Itanará",
  `1406` = "Ypejhú",
  `1407` = "Francisco Caballero Álvarez",
  `1408` = "Katueté",
  `1409` = "La Paloma del Espíritu Santo",
  `1410` = "Nueva Esperanza",
  `1411` = "Yasy Cañy",
  `1412` = "Ybyrarobana",
  `1413` = "Yby Pytá",
  `1414` = "Maracaná",
  `1415` = "Puerto Adela",
  `1416` = "Laurel",
  
  # ── Presidente Hayes (150x) ───────────────────────────
  `1502` = "Benjamín Aceval",
  `1503` = "Puerto Pinasco",
  `1504` = "Villa Hayes",
  `1505` = "Nanawa",
  `1506` = "José Falcón",
  `1507` = "Teniente 1.º Manuel Irala Fernández",
  `1508` = "Teniente Esteban Martínez",
  `1509` = "General José María Bruguez",
  `1510` = "Campo Aceval",
  
  # ── Boquerón (160x) ──────────────────────────────────
  `1602` = "Mariscal José Félix Estigarribia",
  `1604` = "Filadelfia",
  `1605` = "Loma Plata",
  `1606` = "Boquerón",
  
  # ── Alto Paraguay (170x) ─────────────────────────────
  `1701` = "Fuerte Olimpo",
  `1702` = "Puerto Casado",
  `1704` = "Bahía Negra",
  `1705` = "Carmelo Peralta"
)


# 5. Asignar etiqueta a cada fila según DSTO_PROC
can <- can %>%
  mutate(
    DSTO_PROC = as.integer(DSTO_PROC),  # asegurarse de tipo entero
    distrito_nombre = recode(DSTO_PROC, !!!distrito_labels)
  )


can <- can %>%
  mutate(
    DPTO_PROC    = as.integer(DPTO_PROC),
    depto_nombre = recode(as.character(DPTO_PROC), !!!dept_map)
  )
# 6. Verificar que todas las etiquetas estén asignadas

cbind(table(can$depto_nombre))
##                   [,1]
## Alto Paraguay      968
## Alto Paraná      11725
## Amambay           2604
## Boquerón          2029
## Caaguazú         30825
## Caazapá          14065
## Canindeyú        11570
## Central           2872
## Concepción       12083
## Cordillera       15539
## Guairá           13044
## Itapúa           24470
## Misiones          5696
## Ñeembucú          5618
## Paraguarí        13973
## Presidente Hayes  3273
## San Pedro        39480

4 Resultados

4.1 Estadísticas descriptivas de algunos rubros

4.1.1 Tipo de finca

1.¿La finca es manejada por un solo productor/a? 2.¿o es manejada por dos o más productores asociados de hecho (como socio)? 3. Otros (Empresa, Estado, Comunidad Religiosa, Cooperativa, etc.)

# 4. Recodificar tipoi en tipofinca_label
can <- can %>%
  mutate(
    tipofinca = as.integer(tipofinca),  # asegurar tipo entero
    tipofinca_label = recode(
      tipofinca,
      `1` = "Manejada por un solo productor/a",
      `2` = "Manejada por dos o más productores",
      `3` = "Otros (Empresa, Estado, etc.)"
    )
  )

cbind(table(can$tipofinca_label))
##                                      [,1]
## Manejada por dos o más productores   6699
## Manejada por un solo productor/a   199978
## Otros (Empresa, Estado, etc.)        3157
# 4. Calcular recuento y porcentaje por tipo de finca
df_pct <- can %>%
  count(tipofinca_label) %>%
  mutate(pct = n / sum(n) * 100,
         pct_label = sprintf("%.1f%%", pct))
df_pct
## # A tibble: 3 × 4
##   tipofinca_label                         n   pct pct_label
##   <chr>                               <int> <dbl> <chr>    
## 1 Manejada por dos o más productores   6699  3.19 3.2%     
## 2 Manejada por un solo productor/a   199978 95.3  95.3%    
## 3 Otros (Empresa, Estado, etc.)        3157  1.50 1.5%
# 5. Gráfico circular (pie chart)
ggplot(df_pct, aes(x = "", y = pct, fill = tipofinca_label)) +
  geom_col(width = 1, color = "white") +
  coord_polar(theta = "y", start = 0) +
  geom_text(aes(label = pct_label),
            position = position_stack(vjust = 0.5),
            size = 4) +
  labs(
    title = "Distribución porcentual de fincas por tipo",
    fill  = "Tipo de finca"
  ) +
  theme_void(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    legend.position = "right"
  )

4.1.2 Superficie de tierra que maneja en hectáreas: total

8000_1 ¿Qué superficie de la tierra MANEJA en total (INCLUIR todas las superficies de las PARCELAS SEPARADAS, pero SIN INCLUIR aquella tierra que alquila a otra persona)? p8000_1

str(can$p8000_1)
##  num [1:209834] 2010 2 7.4 1 10 1 10 2 0.5 6 ...
summary(can$p8000_1)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     0.0     2.0     5.0   100.9    12.3 49500.0

4.1.3 Superficie de tierra que maneja: montes naturales en hectáreas

10000_4 ¿Qué superficie de tierra tiene con montes naturales?____ha

summary(can$p10004)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##     0.00     0.00     0.00    23.61     1.00 26096.00
library(dplyr)

# 1. Resumen estadístico de superficie manejada por departamento
area_depto <- can %>%
  group_by(DPTO_PROC, depto_nombre) %>%
  summarise(
    mean_superficie = mean(p8000_1, na.rm = TRUE),
    median_superficie = median(p8000_1, na.rm = TRUE),
    n_fincas = n(),
    .groups = "drop"
  ) %>%
  arrange(desc(mean_superficie))

# 2. Mostrar la tabla
area_depto
## # A tibble: 17 × 5
##    DPTO_PROC depto_nombre     mean_superficie median_superficie n_fincas
##        <int> <chr>                      <dbl>             <dbl>    <int>
##  1        17 Alto Paraguay             3849.              510        968
##  2        16 Boquerón                  1616.              340       2029
##  3        15 Presidente Hayes          1554.              100       3273
##  4        13 Amambay                    328.               15       2604
##  5        12 Ñeembucú                   121.               15       5618
##  6         8 Misiones                    95.4               6       5696
##  7         1 Concepción                  76.9               8      12083
##  8        10 Alto Paraná                 75.4               8      11725
##  9        14 Canindeyú                   71.0              10      11570
## 10         7 Itapúa                      38.6               6.9    24470
## 11         9 Paraguarí                   36.6               3      13973
## 12         6 Caazapá                     35.9               5      14065
## 13         2 San Pedro                   29.5               5      39480
## 14         5 Caaguazú                    24.6               5      30825
## 15         3 Cordillera                  17.3               3      15539
## 16         4 Guairá                      14.6               3      13044
## 17        11 Central                     10.2               1       2872

4.1.4 Proporción de bosques naturales por distrito en San Pedro, respecto a la superficie total manejadas

can$porcbosquesnat=can$p10004/can$p8000_1
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.3.3
library(dplyr)
# tabla de porcbosquesnat por cada departamento , oredenado de mayor a menor

tabla_dept <- can %>%
  group_by(DPTO_PROC, depto_nombre) %>% 
  summarise(
    mean_porcbosques = mean(porcbosquesnat, na.rm = TRUE),
    n_fincas         = n(),
    .groups = "drop"
  ) %>%
  arrange(desc(mean_porcbosques))

# Mostrar la tabla completa
# imprime todas las filas

kable(tabla_dept)
DPTO_PROC depto_nombre mean_porcbosques n_fincas
17 Alto Paraguay 0.3025367 968
16 Boquerón 0.2583499 2029
15 Presidente Hayes 0.1962933 3273
3 Cordillera 0.0968266 15539
7 Itapúa 0.0862719 24470
6 Caazapá 0.0851304 14065
13 Amambay 0.0835870 2604
1 Concepción 0.0759639 12083
10 Alto Paraná 0.0742863 11725
9 Paraguarí 0.0678487 13973
5 Caaguazú 0.0641544 30825
14 Canindeyú 0.0639906 11570
2 San Pedro 0.0586954 39480
4 Guairá 0.0536424 13044
8 Misiones 0.0503941 5696
12 Ñeembucú 0.0495954 5618
11 Central 0.0413898 2872

La tabla resume, para cada uno de los 17 departamentos de Paraguay, la proporción media de superficie de cada finca dedicada a bosques naturales (mean_porcbosques) junto al número de fincas censadas (n_fincas), ordenados de mayor a menor cobertura forestal:

Puntos clave de la interpretación:

  1. Región Occidental/Chaco

    • Alto Paraguay (30.3 %), Boquerón (25.8 %) y Presidente Hayes (19.6 %) presentan las mayores proporciones de bosque natural, reflejo de la menor presión agrícola y la continuidad de los bosques chaqueños.
  2. Región Oriental

    • A partir de Cordillera (9.7 %) e Itapúa (8.6 %), la cobertura media cae por debajo del 10 %.
    • Departamentos con alta densidad de fincas como Caaguazú (30 825 fincas) y San Pedro (39 480 fincas) muestran coberturas medias menores al 6.5 %, evidenciando el predominio de uso agropecuario intensivo.
  3. Departamentos con menor cobertura

    • Central (4.1 %), Ñeembucú (5.0 %) y Misiones (5.0 %) registran los valores más bajos, coincidiendo con áreas de mayor fragmentación urbana y agrícola.
  4. Relación cobertura – número de fincas

    • No siempre los departamentos con mayor número de fincas tienen menor bosque; por ejemplo, Itapúa y Caazapá combinan relativamente alta densidad de fincas (14–24 000) con ~8–9 % de bosque, muy por encima del promedio nacional (~6 %).
  5. Heterogeneidad interna

    • Aunque aquí se promedia a nivel departamental, dentro de cada departamento existen distritos con extremos muy disímiles, por lo que es recomendable complementar este diagnóstico con análisis distrital detallado.

En conjunto, el ejercicio confirma un gradiente marcadamente descendente de la cobertura forestal al pasar del Chaco (altura >20 %) a la Región Oriental (4–10 %), información esencial para diseñar estrategias regionales de conservación y manejo sostenible del suelo.

py <- st_read("paraguay/gadm40_PRY_2.shp")
## Reading layer `gadm40_PRY_2' from data source 
##   `G:\Mi unidad\CAN2022\paraguay\gadm40_PRY_2.shp' using driver `ESRI Shapefile'
## Simple feature collection with 218 features and 12 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -62.64652 ymin: -27.60586 xmax: -54.25863 ymax: -19.29137
## Geodetic CRS:  WGS 84
py$refer <- rnorm(218,0,1)

#View(py)

4.2 Mapa de calor del porcentaje promedio de bosques naturales en las fincas rurales por departamentos

library(sf)
library(dplyr)
library(tmap)

# 1. Agrupar geometría a nivel departamental (NAME_1)
py_depto <- py %>%
  group_by(NAME_1) %>%
  summarise(geometry = st_union(geometry), .groups = "drop")

# 2. Unir la estadística de bosques por departamento
py_depto <- py_depto %>%
  left_join(
    tabla_dept,
    by = c("NAME_1" = "depto_nombre")
  )

# 3. Dibujar heatmap departamental
tmap_mode("plot")
tm_shape(py_depto) +
  tm_polygons(
    col      = "mean_porcbosques",
    palette  = "Greens",
    title    = "Bosque natural (%)\n(promedio)",
    border.col = "grey30",
    border.alpha = 0.4,
    textNA = "Sin dato"
  ) +
  tm_layout(
    main.title          = "Cobertura promedio de bosque natural\npor departamento",
    main.title.position = "center",
    legend.outside      = TRUE,
    frame              = FALSE
  )

4.3 Mapa de calor del porcentaje promedio de bosques naturales en las fincas rurales por distritos

# Librerías necesarias
library(sf)
library(dplyr)
library(tmap)

# 1. Resumir la proporción promedio de bosques por distrito
bosques_distrito <- can %>%
  group_by(distrito_nombre) %>%
  summarise(
    mean_porcbosques = mean(porcbosquesnat, na.rm = FALSE)
  )
bosques_distrito
## # A tibble: 244 × 2
##    distrito_nombre mean_porcbosques
##    <chr>                      <dbl>
##  1 25 de Diciembre          0.129  
##  2 3 de Febrero             0.0446 
##  3 3 de Mayo                0.101  
##  4 Abai                     0.0707 
##  5 Acahay                   0.0434 
##  6 Alberdi                  0.0750 
##  7 Alto Vera                0.108  
##  8 Altos                    0.134  
##  9 Antequera                0.0121 
## 10 Areguá                   0.00990
## # ℹ 234 more rows
library(stringi)

# 2. Normalizar nombres en el resumen de bosques
bosques_distrito <- bosques_distrito %>%
  mutate(
    join_name = distrito_nombre %>%
      stringi::stri_trans_general("Latin-ASCII") %>%  # elimina tildes
      toupper()                                   # mayúsculas
                                   # trim de espacios
  )

# 3. Normalizar nombres en el objeto espacial San Pedro
py <- py %>%
  mutate(
    join_name = NAME_2 %>%
      stringi::stri_trans_general("Latin-ASCII") %>%
      toupper()

  )
# 3. Vincular el resumen estadístico al objeto espacial
#    Unimos por el nombre del distrito (NAME_2 en el shapefile vs distrito_nombre)
pybosques <- py %>%
  left_join(bosques_distrito,
            by = c("join_name" = "join_name"))
library(dplyr)
library(sf)
library(tmap)

# 1. Sustituir los NA por 0
pybosques <- pybosques %>%                     # objeto sf con mean_porcbosques
  mutate(
    mean_porcbosques = tidyr::replace_na(mean_porcbosques, 0)
  )

# 2. Calcular centroides (ya con el dato imputado)
centroides <- st_centroid(pybosques)

# 3. Dibujar el heat-map
tmap_mode("plot")

tm_shape(pybosques) +
  tm_polygons(
    col      = "mean_porcbosques",
    palette  = "Greens",
    title    = "Bosques naturales\n(%, promedio)",
    border.alpha = 0.5
  ) +
  tm_shape(centroides) 

  tm_layout(
    main.title          = "Proporción promedio de bosques naturales\npor distrito",
    main.title.position = "center",
    legend.outside      = TRUE
  )

En este choropleth de Paraguay, cada distrito está coloreado según el porcentaje medio de su superficie dedicada a bosques naturales, clasificado en cortes de 5 puntos porcentuales:

  1. Chaco Occidental y Alto Paraguay (departamentos Boquerón, Alto Paraguay y Presidente Hayes) presentan los valores más altos, con varios distritos en el rango 30–35 % (tonos verdes oscuros). Esto refleja la persistencia de grandes remanentes forestales de bosque chaqueño y vegetación ribereña.
  1. Chaco Central (Concepción y parte norte de San Pedro) muestra rangos intermedios, entre 15–25 % (verdes medios), lo cual indica un equilibrio entre actividades agropecuarias y áreas naturales.
  1. Región Oriental (al este del río Paraguay) exhibe mayor heterogeneidad:
  • En la franja central (Cordillera, Central, parte de Paraguarí) predominan valores bajos, 0–5 % o 5–10 % (tonos muy claros), coincidiendo con zonas de alta densidad de población y agricultura intensiva.
  • Algunos distritos de Misiones y Alto Paraná evidencian porcentajes moderados, 10–15 % o 15–20 %, asociados a remanentes de bosque en áreas protegidas y linderos de ríos.
  1. Los polígonos en gris (“Missing”) corresponden a entidades no previstas en el censo de fincas (por ejemplo, cuerpos de agua o áreas sin datos) y no deben interpretarse como ausencia de bosque.

En conjunto, el mapa evidencia un claro gradiente de cobertura forestal: * Mayor en el Chaco, donde la presión agrícola es menor y la vegetación nativa se mantiene relativamente intacta. * Menor en la Región Oriental, donde la expansión de la frontera agrícola y urbana ha reducido drásticamente los bosques originales, salvo en corredores y áreas protegidas. Este patrón espacial subraya la necesidad de políticas diferenciadas de conservación y uso sostenible del suelo, priorizando tanto la protección de remanentes en la región Oriental como la gestión responsable de los bosques del Chaco.

5 Conclusiones

Estructura de tenencia predominante Más del 97 % de las explotaciones rurales en Paraguay son manejadas por un único productor o productora, lo cual refuerza la importancia de los programas de apoyo directo al agricultor familiar para mejorar la productividad y sostenibilidad.

Baja cobertura forestal promedio A nivel nacional, la proporción media de superficie bajo bosques naturales en la finca es cercana al 6 %. Esto refleja una profunda transformación del paisaje original en buena parte del país.

Gradiente espacial muy marcado

Región Oriental (departamentos Central, Cordillera, Paraguarí, Guairá, Caaguazú) presenta porcentajes promedio inferiores al 10 %, con distritos punta de baja cobertura (< 5 %) en áreas de agricultura intensiva y expansión urbana.

Chaco (Presidente Hayes, Alto Paraguay, Boquerón) mantiene remanentes significativos de bosque chaqueño (30–35 % en varios distritos), aunque con presiones crecientes de ganadería extensiva y tala.

Heterogeneidad intra‐departamental Incluso dentro de un mismo departamento, existen distritos con contrastes de 0 % hasta > 25 % de cobertura forestal, lo que demanda intervenciones focalizadas a escala local.

Calidad y robustez del enlace espacial La implementación de una llave numérica única (dstocode) demostró ser fiable para casar sin ambigüedades los microdatos censales con la cartografía distrital oficial, evitando errores de coincidencia de texto.

6 Recomendaciones

Políticas diferenciadas por región Diseñar y priorizar estrategias distintas en la Región Oriental (enfocadas en restauración y agroforestería) frente al Chaco (orientadas a manejo sostenible y control de deforestación).

Incentivos para agroforestería y conservación

Establecer líneas de crédito verdes y certificaciones para productores que mantengan o amplíen la cobertura de bosque natural.

Apoyar técnicas de silvopastura que integren árboles nativos en sistemas ganaderos.

Monitoreo continuo y evaluación espacial Integrar los microdatos censales con imágenes satelitales e índices de vegetación (NDVI) para llevar un seguimiento periódico de la cobertura forestal y detectar rápidamente deforestación ilegal.

Corredores de conectividad en la Región Oriental Identificar distritos críticos con < 5 % de cobertura y promover proyectos de reforestación y restauración de corredores biológicos, especialmente en cuencas compartidas entre distritos.

Fortalecimiento institucional y transferencia de tecnología SIG Capacitar a equipos técnicos regionales en el uso de R, sf y tmap para que puedan replicar y actualizar esta metodología con los datos de continuidad (encuestas posteriores, inventarios forestales).

Participación y sensibilización de comunidades locales Incorporar las organizaciones de productores en el diseño de las acciones de conservación, reconociendo sus saberes tradicionales y generando beneficios directos (ingresos adicionales por eco‐servicios).