Open marcoajh opened 6 years ago
Texto aquí
En este mapa se muestra la agrupación de los AGEB de la Ciudad de México por medio del método de k-means
En desarrollo
Ciudad de México
xMín 348621.68 yMín 2054434.61 xMáx 644398.35 yMáx 2344228.00
Proceso en R
Se efectuó un análisis de componentes principales con las siguientes variables:
Biofísicas:
Socioeconómicas:
#Se carga la base de datos
datos<-read.csv("matriz2.csv", header=TRUE, sep=",")
#datos$AGEB <- as.numeric(seq(1:11))
#Cambiar datos de factor a número
datos$precip <- as.numeric(datos$precip)
#datos$OCUP_VIV <- as.numeric(datos$OCUP_VIV)
#datos$precip <- as.numeric(datos$precip)
#datos$V_S_AGUA <- as.numeric(datos$V_S_AGUA)
#datos_cov <- prcomp(na.omit(datos),scale=TRUE)
datos_cov <- prcomp(datos,scale=TRUE)
names(datos_cov)
#Se calcula el eigenvalor
eig <- (datos_cov$sdev)^2
#Se calcula la varianza en porcentage del eigenvalor
varianza <- (eig*100)/sum(eig)
#Se calcula la varianza acumulativa
cumvar <- cumsum(varianza)
eig.todo <- data.frame(eig=eig,varianza=varianza,cumvarianza=cumvar)
head(eig.todo)
#Se grafica
barplot(eig.todo[,2],names.arg=1:nrow(eig.todo),
main="Varianza",
xlab="Componente principal",
ylab="Porcentaje de varianza",
col="blue")
lines(x=1:nrow(eig.todo),
eig.todo[,2],
type="b", pch=19,
col="red")
Análisis de componentes principales
install.packages("factoextra")
library("factoextra")
var <- get_pca_var(datos_cov)
var$coord[,1:8]
#Correlación entre variables y el componente principal
var_cor_fun <- function(var.loadings,comp.sdev){var.loadings*comp.sdev}
#Correlación
loadings <- datos_cov$rotation
sdev <- datos_cov$sdev
var.coord <- var.cor <- t(apply(loadings,1,var_cor_fun,sdev))
var.coord[,1:8]
#Se grafica
a <- seq(0,2*pi,length=100)
plot(cos(a),sin(a),type="l",col="gray",
xlab="PC1", ylab="PC2")
abline(h=0, v=0, lty=2)
arrows(0,0,var.coord[,1],var.coord[,2],
length=0.1,angle=15,code=2)
text(var.coord,labels=rownames(var.coord),cex=1, adj=1)
fviz_pca_var(datos_cov,col.var="contrib")+
scale_color_gradient2 (low="white", mid="blue", high="red", midpoint=10)+
theme_minimal()
Determinación del número de grupos para dividir el conjunto de AGEB, metodo de K-means
#Estandarización de variables
datos.stand <- scale(datos[-1])
#Se grafica
wssplot <- function(data, nc=15, seed=1234){
wss <- (nrow(data)-1)*sum(apply(data,2,var))
for (i in 2:nc){
set.seed(seed)
wss[i] <- sum(kmeans(data, centers=i)$withinss)}
plot(1:nc, wss, type="b", xlab="Número de clusters",
ylab="Suma de cuadrados intra cluster")}
wssplot(datos.stand,nc=15)
De la gráfica anterior se obtuvo el valor de 9 para definir el número de grupos
Proceso en QGis
Se usó una capa vectorial de los AGEB con los datos del archivo matriz2.csv y se clasificó en ocho grupos usando el plugin Attirbute based clustering
Vector
Polígonos
Universal Transversa de Mercator
WGS 84 / UTM zone 14N
Greenwich
World Geodetic System 1984
WGS84
Nombre del campo | AGEB_ID |
---|---|
Tipo | Entero |
Unidades | |
Descripción | Identificador numérico para cada AGEB |
Observaciones | Texto |
Nombre del campo | grupos |
---|---|
Tipo | Entero |
Unidades | |
Descripción | Grupo al que pertenece cada AGEB |
Observaciones |
kmeans clustering based in eight attributes (urban coverage, total anual rainfall, elevation, subsidence, population, dwellings whitout piped water, habitants per dwelling and income index) Version 1 Ubicación de la capa: /MEGADAPT_Integracion/Layers/Final