Ejercicio Básico con Tablas y Shapefiles en R

Encontrar la correlación existente entre una variable social extraída del SIGOT-IGAC (Sistemas de Información Geográfico para el Ordenamiento Territorial) entre dos tiempos de período distintos y frente lo urbano y lo rural, ello haciendo uso del lenguaje de programación R.
Desarrollo
Se escogió la variable tasa de alfabetismo, por ser un indicador importante a la hora de medir el nivel educativo básico de la población colombiana, este para el año 2005 cuya fuente es el Ministerio de Educación Nacional de Cali.
Se abrió ambos archivos en R bajo los siguientes comandos:

Nota: instalar las librerias rgdal y raster bajo el comando install.packages("rgdal") e install.packages("raster")

require(raster); require(rgdal)
path <- "E:/Academico/ADE/Ejercicio_SIGOT/_shp/"
alfab_urb <- shapefile(paste0(path,"Tasa de Alfabetismo Urbano (2005) Porcentaje.shp"))
alfab_rur <- shapefile(paste0(path, "Tasa de Alfabetismo Rural (2005) Porcentaje.shp"))

Ambos archivos se plotearon y se observó que todos los municipios tienen correspondencia entre sí (Fig. 1)

Luego se pasó a unir ambos archivos (sus tablas) como un data frame para poder hacer la correlación.
urbano_tabla <- as.data.frame(alfab_urb)
urbano_tabla_campos <-cbind (alfab_urb$SDE_dv_m_5, alfab_urb$dbo_V_Da_1)
rural_tabla <- as.data.frame(alfab_rur)
rural_tabla_campos <-cbind (alfab_rur$SDE_dv_m_5, alfab_rur$dbo_V_Da_1)

Convierto los campos que indican la tasa de alfabetismo a número, pues inicialmente estaban como texto.
#Urbano
urbano_num <- as.numeric(urbano_tabla_campos[,2])
urbano_num2 <- as.data.frame(urbano_num)
class(urbano_num2)
urbano_ok_ok <- cbind(urbano_tabla_campos[,1], urbano_num2)
class(urbano_ok_ok[,2])

#Rural
rural_num <- as.numeric(rural_tabla_campos[,2])
rural_num2 <- as.data.frame(rural_num)
rur_ok <- cbind(rural_tabla_campos[,1], rural_num2)
head(rur_ok)
class(rur_ok[,2])

Ahora procedemos a realizar la correlación entre la tasa de alfabetismo urbana y rural. Para ello primero unimos ambas tablas en una sola mediante el comando merge que es equivalente al BuscarV o al Vlookup de Excel.
tabla = merge(urbano_ok_ok, rur_ok, by="Municipio")
cor(tabla[,2], tabla[,3])
lm(tabla[,3] ~ tabla[,2])
plot(tabla[,3] ~ tabla[,2], xlab = "Zona Rural", ylab="Zona Urbana")
abline(lm(tabla[,3] ~ tabla[,2]))

La correlación da 0.6946, es decir que medianamente se correlaciona la tasa de alfabetización urbana con la rural en conjunto para los 41 municipios de Colombia. Aquí el modelo lineal:

Call:
lm(formula = tabla[, 3] ~ tabla[, 2])


Coefficients:
(Intercept)   tabla[, 2] 

   -166.400        2.659 

Comentarios

Entradas populares de este blog

Extracción por mascara en R

Convertir una tabla a shape en R

¿Cómo descargar información de GBIF usando R?