Não foi possível enviar o arquivo. Será algum problema com as permissões?
Índices em Curitiba

Índices em Curitiba

Instalando os pacotes (se necessário)

install.packages(c("maptools", "sp", "spdep", "classInt", "RColorBrewer"), dep=T)

Carregando pacotes necessários

require(maptools)     ## funções para importação/expostação e manipulação de mapas e dados geográficos    
gpclibPermit()        ## função para habilitar licença de uso
require(sp)           ## (classes) para representação de dados espaciais no R 
require(spdep)        ## funções análises de dados de áreas
require(classInt)     ## rotinas para faclitar a divisão de dados em classes por vários critérios
require(RColorBrewer) ## usada aqui para criar palhetas de cores nas visualizações em mapas

Salvando configuração padrão de gráficos

par.ori <- par(no.readonly=TRUE)

Índices em Bairros de Curitiba

Primeiro voce deve copiar os 3 arquivos bairros.* para sua pasta de trabalho.
Lendo dados tipo shapefiles.

ctba <- readShapePoly("dados/bairros.shp", IDvar="CODE")
plot(ctba)
 
head(ctba@data)
ctba@data$NOME <- as.character(ctba@data$NOME)
 
## mudança de codificação de caracteres (só use se necessário, 
## depende do sistema operacional e do enconding do sistema)
## Veja os nomes dos unicípios e se os acentos aparecem corretamente
#Encoding(ctba@data$NOME)
#Encoding(ctba@data$NOME) <- "latin1"
#ctba@data$NOME <- enc2native(ctba@data$NOME)
#head(ctba@data)

Lendo agroa a tabela de atributos

tb <- read.csv("dados/tabe.csv", enc="latin1")
head(tb) ## ops nao importou corretamente assim!
 
## vamos importar de outra forma:
tb <- read.table("dados/tabe.csv", sep=";", head=T, enc="latin1")
head(tb)
str(tb)

Os dados de diferentes origens não necessariamente estão na mesma ordem.
É necessário checar e reordenar se necessário

ind <- match(ctba@data$CODE, tb$CODE)
ind
 
tb <- tb[ind,]
row.names(tb) <- ctba$CODE
 
ctba <- spCbind(ctba, tb)
 
names(ctba)
head(ctba@data)

Visualizando um mapa do atributo: Segurança

#INT <- classIntervals(ctba$Segurança, n=5, style="quantile")
INT <- classIntervals(ctba$Segurança, style="fixed", fixedBreaks=c(0, 20, 40, 60, 80, 100))
CORES.5 <- c(rev(brewer.pal(3, "Blues")), brewer.pal(3, "Reds"))[-1]  ## tirando uma cor no final
COL <- findColours(INT, CORES.5)
 
plot(ctba, col=COL)
title("Segurança")
 
TB <- attr(COL, "table")
legtext <- paste(names(TB))  #, " (", TB, ")", sep="")
legend("bottomright", fill=attr(COL, "palette"), legend=legtext, bty="n")

Calculando vizinhanças (segundo um critério de vizinhança – note que há outros!!!)

ctba.nb1 <- poly2nb(ctba)
args(poly2nb)
## OBS: outros tipos de vizinhanças podem ser calculados:
##      - mudando argumentos de poly2nb
##      - usando outras funções de vizinhança tal como:  dnearneigh() and knearneigh()

Algumas análises

## Moran global
moran.test(ctba$Segurança, listw=nb2listw(ctba.nb1))
args(moran.test)
 
moran.mc(ctba$Segurança, listw=nb2listw(ctba.nb1), nsim=99)
args(moran.mc)
 
## Uma alternativa ao Moran: estatística de Geary
geary.test(ctba$Segurança, listw=nb2listw(ctba.nb1))
 
 
## Moran na presença de covariáveis (substituir 1 por covariaveis abaixo)
## faz Moran em resíduos
lm.morantest(lm(ctba$Segurança ~1), listw=nb2listw(ctba.nb1))
lm.morantest.exact(lm(ctba$Segurança ~1), listw=nb2listw(ctba.nb1))
 
 
## Moran local (um tipo de LISA - Local Indicator of Spatial Association)
ctba.mloc <- localmoran(ctba$Segurança, listw=nb2listw(ctba.nb1, style="C"))
ctba.mloc
 
## Fazendo um mapa dos índices de Moran local
head(ctba.mloc)
range(ctba.mloc[,1])
INT <- classIntervals(ctba.mloc[,1], style="fixed", fixedBreaks=seq(-1, 2.5, by=0.5))
CORES.7 <- c(rev(brewer.pal(3, "Blues")), brewer.pal(4, "Reds"))
COL <- findColours(INT, CORES.7)
 
plot(ctba, col=COL)
title("I de Moran Local para Segurança")
 
TB <- attr(COL, "table")
legtext <- paste(names(TB))  #, " (", TB, ")", sep="")
legend("bottomright", fill=attr(COL, "palette"), legend=legtext, bty="n") #, cex=0.9, y.inter=0.8)
 
## uma visualização com outro tipo de fatiamento (por quantis)
INT <- classIntervals(ctba$Segurança, n=7, style="quantile", dataPrecision=2)
#INT <- classIntervals(ctba$Segurança, n=5, style="sd")
CORES.7 <- c(rev(brewer.pal(3, "Blues")), brewer.pal(4, "Reds"))
COL <- findColours(INT, CORES.7)
plot(ctba, col=COL)
title("I de Moran Local para Segurança")
 
TB <- attr(COL, "table")
legtext <- paste(names(TB))  #, " (", TB, ")", sep="")
legend("bottomright", fill=attr(COL, "palette"), legend=legtext, bty="n") #, cex=0.9, y.inter=0.8)
 
 
## Poderia-se fazer tb um mapa dos índices de Moran local padronizados!
 
 
## Mapa das probabilidades (significâncias do I de Moral local)
head(ctba.mloc)
INT <- classIntervals(ctba.mloc[,5], style="fixed", fixedBreaks=c(0, 0.001, 0.01, 0.05, 0.10, 0.20, 1))
CORES.6 <- c(rev(brewer.pal(5, "Reds")), brewer.pal(5, "Blues"))
COL <- findColours(INT, CORES.6)
 
plot(ctba, col=COL)
title("p-valores do I de Moran Local para Segurança")
 
TB <- attr(COL, "table")
legtext <- paste(names(TB))  #, " (", TB, ")", sep="")
legend("bottomright", fill=attr(COL, "palette"), legend=legtext, bty="n", cex=0.9, y.inter=0.8)
 
 
##  LISA Map (+/+) , (-,-), (+,-), (-,+)
 
## calculando a médias dos atributos locais (padronizados) com os dos vizinhos 
head(ctba.mloc)
## montando matrix W de vizinhança
ctba.nb1.mat <- nb2mat(ctba.nb1)
 
## Segurança Padronizada
Segurança_SD <- scale(ctba$Segurança)
## Cálculo da média da Segurança Padronizada nos vizinhos
Segurança_W <- ctba.nb1.mat %*% Segurança_SD
 
## Diagrama de espalhamento de Moran
plot(Segurança_SD, Segurança_W)
abline(v=0, h=0)
 
## Montando o mapa do espalhamento de Moran
Q <- ifelse((Segurança_SD>=0 & Segurança_W >=0), 1, 0)
Q[(Segurança_SD<0 & Segurança_W < 0)] <- 2
Q[(Segurança_SD>=0 & Segurança_W < 0)] <- 3
Q[(Segurança_SD<0 & Segurança_W >= 0)] <- 4
table(Q)
 
 
CORES.4 <- c("blue", "green" , "red", "yellow")
plot(ctba, col=CORES.4[Q])
title("Mapa LISA")
legend("bottomright", c("Q(+/+)", "Q(-/-)", "Q(+/-)", "Q(-/+)"), fill=CORES.4)
 
 
## Fazer análises para outras variáveis destes dados!!! table
 
 
## OBS:
## Para dados não contínuos (e normais) modificações e alternativas são usadas!!!


QR Code
QR Code cursos:mct:exemplo6 (generated for current page)