package 'geobr' successfully unpacked and MD5 sums checked
package 'ggplot2' successfully unpacked and MD5 sums checked
package 'dplyr' successfully unpacked and MD5 sums checked
package 'spdep' successfully unpacked and MD5 sums checked
package 'gt' successfully unpacked and MD5 sums checked
package 'readxl' successfully unpacked and MD5 sums checked
package 'RColorBrewer' successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\x7459944\AppData\Local\Temp\Rtmpg5J5h9\downloaded_packages
Análise Espacial da Cobertura Vacinal
Tutorial Transformação Digital nº 8
Neste tutorial, exploramos a cobertura vacinal nos municípios de Minas Gerais.
Contato: transformacao.digital@fjp.mg.gov.br
1 Análise Exploratória Espacial
# Leitura do mapa de MG
muni <- read_municipality(code_muni = "MG", year = 2020, showProgress = FALSE) %>%
rename(ibge7 = 1)
# Leitura dos dados
cobertura_vacinal <- read_excel("cobertura_2019.xlsx") %>%
janitor::clean_names()
# Juntar bases de dados
df <- left_join(muni, cobertura_vacinal)Índice de Moran e Autocorrelação Espacial
O Índice de Moran é uma medida estatística que quantifica a autocorrelação espacial em um conjunto de dados, indicando se os valores de uma variável estão espacialmente relacionados.
A matriz ( W ) define a conectividade espacial entre as unidades, mapeando relações de vizinhança e ponderando a influência de cada vizinho em uma unidade. Essa ponderação pode ser baseada em critérios como distância, contiguidade, conectividade de rede ou características socioeconômicas.
No mapa abaixo, apresentamos a cobertura vacinal contra a poliomielite. Alguns municípios têm uma taxa de vacinação muito alta, o que pode indicar deslocamento de moradores de municípios vizinhos.
# Definir intervalos de faixas
faixas <- seq(0, 400, by = 50)
# Agrupar a cobertura vacinal em faixas
df$faixa_cobertura <- cut(df$cobertura_vacinal_contra_poliomielite_em_menores_de_1_ano, breaks = faixas, include.lowest = TRUE)
# Plotar o mapa
ggplot(df) +
geom_sf(aes(fill = faixa_cobertura), color = "black", size = 0.1) +
scale_fill_brewer(palette = "Paired", name = "Cobertura Vacinal (%)") +
labs(title = "Cobertura Vacinal contra Poliomielite em Menores de 1 Ano",
subtitle = "IMRS",
caption = "Fonte: FJP") +
theme_void()Para testar esta hipótese, vamos estabelecer uma matriz de vizinhança.
# Criar matriz de vizinhança tipo rainha
mg_rainha <- poly2nb(df$geom, queen = TRUE)
rainha_listw <- nb2listw(mg_rainha, style = "W")# Criar matriz de vizinhança tipo 4
mg_tipo4 <- poly2nb(df$geom, queen = FALSE)
tipo4_listw <- nb2listw(mg_tipo4, style = "W")Segundo (Anselin 1988) , uma matriz de pesos espaciais (( W )) é uma ferramenta fundamental na análise espacial que representa a estrutura espacial de um conjunto de dados. Ela quantifica a influência espacial entre as unidades de análise (regiões, pontos, etc.) em um estudo.
A fórmula do Índice de Moran é:
[ I = ]
Onde:
- ( n ) é o número de unidades espaciais.
- ( W ) é o peso espacial total.
- ( x_i ) e ( x_j ) são os valores da variável de interesse nas unidades ( i ) e ( j ), respectivamente.
- ( {x} ) é a média dos valores da variável de interesse.
- ( w_{ij} ) é o peso espacial entre as unidades ( i ) e ( j ).
O Índice de Moran Local (( I_i )) quantifica a autocorrelação espacial local de cada unidade de análise. Ele é útil para identificar clusters espaciais, detectar outliers e avaliar a heterogeneidade espacial.
Interpretação do ( I_i ):
- Valores positivos e significativos indicam clusters espaciais.
- Valores negativos e significativos indicam outliers espaciais.
- Valores próximos de zero sugerem falta de autocorrelação espacial significativa.
# Índice de Moran
moran.test(x = df$cobertura_vacinal_de_triplice_viral_da_populacao_de_1_ano_de_idade, listw = rainha_listw)
Moran I test under randomisation
data: df$cobertura_vacinal_de_triplice_viral_da_populacao_de_1_ano_de_idade
weights: rainha_listw
Moran I statistic standard deviate = 0.72909, p-value = 0.233
alternative hypothesis: greater
sample estimates:
Moran I statistic Expectation Variance
0.0142088041 -0.0011737089 0.0004451355
A estatística de Moran ( I ) (0.0631) indica o grau de associação espacial entre as observações. Valores positivos sugerem autocorrelação espacial positiva, enquanto valores negativos indicam autocorrelação negativa. O valor de 0.0631 indica uma autocorrelação positiva, sugerindo que municípios com altas taxas de cobertura vacinal estão próximos uns dos outros.
# Índice de Moran local
locm <- localmoran(df$cobertura_vacinal_de_triplice_viral_da_populacao_de_1_ano_de_idade, listw = rainha_listw)
# Adicionar resultados ao conjunto de dados original
df$spib02 <- scale(df$cobertura_vacinal_de_triplice_viral_da_populacao_de_1_ano_de_idade) %>% as.vector()
df$lag_spib02 <- lag.listw(rainha_listw, df$spib02)# Mapeamento do LISA
breaks <- seq(1, 5, 1)
labels <- c("alto-alto", "baixo-baixo", "alto-baixo", "baixo-alto", "não signif.")
colors <- c("red", "blue", "lightpink", "skyblue2", "white")
# Ajustar np para o comprimento de observações em df
np <- rep(colors, length.out = nrow(df))
# Converter para objeto sf
sf_df <- st_as_sf(df)
# Adicionar cores correspondentes à geometria
sf_df$colors <- npOs tipos de clusters no Índice de Moran Local (( I_i )) têm as seguintes interpretações:
Alto-Alto:
- Unidade com valor alto e vizinhos também com valores altos.
- Indica concentração positiva de características.
Alto-Baixo:
- Unidade com valor alto e vizinhos com valores baixos.
- Destaca-se por um valor muito mais alto do que seus vizinhos.
Baixo-Alto:
- Unidade com valor baixo e vizinhos com valores altos.
- Destaca-se por um valor muito mais baixo do que seus vizinhos.
Não Signif.:
- Sem autocorrelação espacial significativa.
ggplot(sf_df) +
geom_sf(aes(fill = colors)) +
scale_fill_manual(values = colors, name = "Cluster", labels = labels) +
theme_void() +
labs(title = "I de Moran local Vacinação") +
theme(legend.position = "top")Interpretação dos Resultados:
Os resultados do ( I_i ) ajudam a:
- Identificar clusters e outliers espaciais.
- Avaliar a heterogeneidade espacial.
- Comparar diferentes configurações espaciais.
- Combinar com outras medidas de autocorrelação espacial.
2 Referências
Mendez C. (2020). Spatial regression analysis in R. R Studio/RPubs. Disponível em: https://rpubs.com/quarcs-lab/tutorial-spatial-regression