11 Dados de Área III

11.1 Exemplo com os dados de dengue em Dourados/MS

Nesta aula serão utilizados os dados da monografia de Isis Rodrigues Reitman, apresentada ao Curso de Geografia da Faculdade de Ciências Humanas da Universidade Federal da Grande Douradosos/MS, em março de 2013. O título da monografia é “DISTRIBUIÇÃO ESPACIAL DOS CASOS DE DENGUE NO PERÍMETRO URBANO DE DOURADOS-MS E SUA RELAÇÃO COM OS FATORES SOCIOAMBIENTAIS E POLÍTICOS”

ATENÇÃO ATENÇÃO ATENÇÃO

Devido a maneira que o Windows acessa as url usando a internet é necessario mudar a opção default dele para que possa usar apropiadamenet os recursos https, ftps, etc… A linha abaixo deve ser utilizanda antes de usar as funções que acessam esse tipo de recurso.

Lendo a tabela da população por setor censitário e baixando os shapes files do contorno e por setor censitário de Dourados/MS

 [1] "contorno.dbf"         "contorno.sbn"         "contorno.sbx"         "contorno.shp"         "contorno.shx"         "dourados.zip"         "file23567ef49e7a"     "olinda.dbf"           "olinda.shp"           "olinda.shx"           "olinda.zip"           "Setor_UTM_SIRGAS.dbf" "Setor_UTM_SIRGAS.prj" "Setor_UTM_SIRGAS.sbn" "Setor_UTM_SIRGAS.sbx" "Setor_UTM_SIRGAS.shp" "Setor_UTM_SIRGAS.shx"

Fazendo um join com as tabelas com os setores censitários + popoulação

[1] "contorno.dbf"                                     "contorno.sbn"                                    
[3] "contorno.sbx"                                     "contorno.shp"                                    
[5] "contorno.shx"                                     "dourados.zip"                                    
[7] "Setor_UTM_SIRGAS.dbf"                             "Setor_UTM_SIRGAS.prj"                            
[9] "Setor_UTM_SIRGAS.sbn"                             "Setor_UTM_SIRGAS.sbx"                            
[11] "Setor_UTM_SIRGAS.shp"                             "Setor_UTM_SIRGAS.shx"                            
  • Lendo e plotando os casos de dengue georreferenciados em Dourados/MS

  • Lendo e plotando os os pontos de coleta de lixo georreferenciados em Dourados/MS

Como podemos observar, existem alguns pontos de coleta de lixo fora do contorno de Dourados/MS. Uma forma de ficarmos só com os pontos dentro do polígono é utilizando o comando st_intersection.

Verificando as paletas de cores.

Utilizando as informações dos casos (pontos) + do lixo (ponto) + população de cada setor censitário (mapa temático)

Iremos agora construir buffers de 500m de distância ao redor de cada ponto de coleta de lixo. Isso é interessante para verificar se os casos de dengue ocorrem em um raio de até 500m de distância dos pontos de coleta de lixo. Ou seja, a pergunta é, será que a distância dos pontos de coeta de lixo influenciam a ocorrência do caso de dengue ?

Buffers: São polígonos que contornam um objeto a uma determinada distância. Sua principal função é materializar os conceitos de “perto” e “longe”.

Represntando os casos e o lixo de forma interativa.

Plotando o mapa temático dos casos por setor censitário

Plotando o mapa temático dos pontos de coleta de lixo por setor censitário

Calculando a taxa de incidência e plotando o mapa temático dos pontos de coleta de lixo por setor censitário

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00    0.00    1.74    4.06    4.31   56.40 

11.2 Kernel por atributos

Vamos plotar o kernel por atributos referente a taxa de incidência de dengue em Dourados/MS.

Primeiramente é necessário dissolver os poligonos em formato sf para obter o contorno. Nesse caso queremos preservar o atributo AREA

Extraindo os centróidas dos polígonos em Dourados/MS.

Colocando os pontos no formato sp

Fazendo o kernel por atributo da taxa de detecção

Construindo a matriz de vizinhança para verificar a autocorrelação espacial.

Neighbour list object:
Number of regions: 284 
Number of nonzero links: 1726 
Percentage nonzero weights: 2.14 
Average number of links: 6.077 

Iremos precisar da coordenadas dos centróides

[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"

11.3 Matriz de Vizinhança

Iremos precisar da coordenadas dos centróides

[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"

11.5 Autocorrelação Espacial

Obtendo a correlação da taxa de incidência de dengue Dourados/MS


    Moran I test under randomisation

data:  setor.sf$tx  
weights: pesos.viz    

Moran I statistic standard deviate = 16, p-value <2e-16
alternative hypothesis: greater
sample estimates:
Moran I statistic       Expectation          Variance 
         0.524720         -0.003534          0.001129 

Plotando o correlograma

Spatial correlogram for setor.sf$tx 
method: Moran's I
         estimate expectation  variance standard deviate Pr(I) two sided    
1 (284)  0.524720   -0.003534  0.001129            15.72         < 2e-16 ***
2 (284)  0.237768   -0.003534  0.000485            10.95         < 2e-16 ***
3 (284)  0.095366   -0.003534  0.000284             5.87         4.3e-09 ***
4 (284) -0.020634   -0.003534  0.000197            -1.22           0.224    
5 (284) -0.075892   -0.003534  0.000167            -5.59         2.2e-08 ***
6 (284) -0.064484   -0.003534  0.000162            -4.79         1.6e-06 ***
7 (284) -0.027083   -0.003534  0.000167            -1.82           0.069 .  
8 (284) -0.027445   -0.003534  0.000183            -1.77           0.077 .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Mapeando os polígonos que tiveram os p-valores mais significativos no Moran Local.

Moran Local (Lisa Map) da taxa de incidência Dourados/MS

      Local Morans I Stand. dev. (N) Pr. (N) Saddlepoint Pr. (Sad) Expectation Variance Skewness Kurtosis Minimum Maximum      omega    sad.r    sad.u
1 1        -0.009885        -0.01575 0.50628    -0.03601   0.51436   -0.003534   0.1626 -0.05148    8.753  -57.75   56.75 -0.0001370 -0.01569 -0.01570
2 2         0.226981         0.46512 0.32092     0.70056   0.24179   -0.003534   0.2456 -0.04188    8.753  -70.87   69.87  0.0028119  0.44473  0.49832
3 3        -0.010911        -0.01830 0.50730    -0.04042   0.51612   -0.003534   0.1626 -0.05148    8.753  -57.75   56.75 -0.0001591 -0.01823 -0.01823
4 4         0.484676         1.31014 0.09507     1.43930   0.07503   -0.003534   0.1389 -0.05570    8.754  -53.41   52.41  0.0066304  1.08298  1.59298
5 5         0.018649         0.05953 0.47627     0.09384   0.46262   -0.003534   0.1389 -0.05570    8.754  -53.41   52.41  0.0005595  0.05930  0.05942
6 6         0.045043         0.13961 0.44448     0.22936   0.40930   -0.003534   0.1211 -0.05966    8.754  -49.91   48.91  0.0013876  0.13866  0.14041
7 7         0.107199         0.31825 0.37515     0.50632   0.30631   -0.003534   0.1211 -0.05966    8.754  -49.91   48.91  0.0029656  0.31095  0.33043
8 8         0.153965         0.42266 0.33627     0.64704   0.25880   -0.003534   0.1389 -0.05570    8.754  -53.41   52.41  0.0034865  0.40708  0.44885
9 9        -0.109294        -0.28382 0.61172    -0.46939   0.68060   -0.003534   0.1389 -0.05570    8.754  -53.41   52.41 -0.0024730 -0.27705 -0.29222
10 10      -0.147818        -0.32607 0.62781    -0.52794   0.70123   -0.003534   0.1958 -0.04691    8.753  -63.33   62.33 -0.0023467 -0.31667 -0.33858

11.6 Modelos Linear, CAR e GWR

Ajustando o modelo de regressão linear simples.


Call:
lm(formula = tx ~ lixo, data = setor.sf)

Residuals:
   Min     1Q Median     3Q    Max 
 -4.51  -4.11  -2.29   0.24  51.89 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)    4.510      0.489    9.22   <2e-16 ***
lixo          -0.396      0.195   -2.03    0.043 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 7.37 on 282 degrees of freedom
Multiple R-squared:  0.0144,    Adjusted R-squared:  0.011 
F-statistic: 4.13 on 1 and 282 DF,  p-value: 0.043

Checando os residuos para verificar a presença de autocorrelação.


    Moran I test under randomisation

data:  dourados.lm$lmresid  
weights: pesos.viz    

Moran I statistic standard deviate = 16, p-value <2e-16
alternative hypothesis: greater
sample estimates:
Moran I statistic       Expectation          Variance 
         0.520064         -0.003534          0.001130 

Ajustando o modelo CAR.


Call:spatialreg::errorsarlm(formula = formula, data = data, listw = listw,     na.action = na.action, Durbin = Durbin, etype = etype, method = method,     quiet = quiet, zero.policy = zero.policy, interval = interval,     tol.solve = tol.solve, trs = trs, control = control)

Residuals:
      Min        1Q    Median        3Q       Max 
-12.53213  -2.34032  -1.09686   0.82021  31.62992 

Type: error 
Coefficients: (asymptotic standard errors) 
            Estimate Std. Error z value Pr(>|z|)
(Intercept)  4.07199    1.54998  2.6271 0.008611
lixo        -0.25129    0.14814 -1.6963 0.089826

Lambda: 0.8063, LR test value: 168, p-value: < 2.22e-16
Asymptotic standard error: 0.04158
    z-value: 19.39, p-value: < 2.22e-16
Wald statistic: 376.1, p-value: < 2.22e-16

Log likelihood: -885.1 for error model
ML residual variance (sigma squared): 25.43, (sigma: 5.043)
Number of observations: 284 
Number of parameters estimated: 4 
AIC: 1778, (AIC for lm: 1944)

Checando os residuos para verificar a presença de autocorrelação.


    Moran I test under randomisation

data:  dourados.car$carresid  
weights: pesos.viz    

Moran I statistic standard deviate = 0.78, p-value = 0.2
alternative hypothesis: greater
sample estimates:
Moran I statistic       Expectation          Variance 
         0.023005         -0.003534          0.001147 

Ajustando o modelo GWR

Precisamos estimar a largura de banda “ideal” para o kernel

Adaptive q: 0.382 CV score: 14699 
Adaptive q: 0.618 CV score: 15071 
Adaptive q: 0.2361 CV score: 14205 
Adaptive q: 0.1459 CV score: 13337 
Adaptive q: 0.09017 CV score: 12151 
Adaptive q: 0.05573 CV score: 10996 
Adaptive q: 0.03444 CV score: 10093 
Adaptive q: 0.02129 CV score: 9759 
Adaptive q: 0.01316 CV score: 9296 
Adaptive q: 0.008131 CV score: 8997 
Adaptive q: 0.005025 CV score: 8989 
Adaptive q: 0.006388 CV score: 9000 
Adaptive q: 0.003106 CV score: 9843 
Adaptive q: 0.004292 CV score: 9068 
Adaptive q: 0.005546 CV score: 8977 
Adaptive q: 0.005868 CV score: 8981 
Adaptive q: 0.005586 CV score: 8977 
Adaptive q: 0.005505 CV score: 8977 
Adaptive q: 0.005546 CV score: 8977 
[1] 0.005546
Call:
gwr(formula = tx ~ lixo, data = setor.sf, coords = cbind(centroides.sp$X, 
    centroides.sp$Y), adapt = GWRbanda, hatmatrix = TRUE, se.fit = TRUE)
Kernel function: gwr.Gauss 
Adaptive quantile: 0.005546 (about 1 of 284 data points)
Summary of GWR coefficient estimates at data points:
                 Min.  1st Qu.   Median  3rd Qu.     Max. Global
X.Intercept.  -0.3250   1.4122   3.0992   5.3977  37.5813   4.51
lixo         -18.3217  -1.2222  -0.4009  -0.0615   1.5557  -0.40
Number of data points: 284 
Effective number of parameters (residual: 2traceS - traceS'S): 134.4 
Effective degrees of freedom (residual: 2traceS - traceS'S): 149.6 
Sigma (residual: 2traceS - traceS'S): 5.447 
Effective number of parameters (model: traceS): 100.5 
Effective degrees of freedom (model: traceS): 183.5 
Sigma (model: traceS): 4.918 
Sigma (ML): 3.953 
AICc (GWR p. 61, eq 2.33; p. 96, eq. 4.21): 1904 
AIC (GWR p. 96, eq. 4.22): 1687 
Residual sum of squares: 4438 
Quasi-global R2: 0.7141 

Colocando a saída do modelo dentro de um dataframe.

  sum.w X.Intercept.    lixo X.Intercept._se lixo_se    gwr.e  pred pred.se localR2 X.Intercept._se_EDF lixo_se_EDF pred.se.1 coord.x coord.y
1 4.630        6.490 -1.8955           2.412   1.718 -0.02159 2.699   2.477  0.6404               2.671       1.903     2.744  731406 7541547
2 3.935        7.884 -1.2811           2.504   1.630  1.98455 7.884   2.504  0.5043               2.774       1.806     2.774  730845 7541481
3 3.063        7.268 -1.5626           2.781   1.626 -1.85906 5.705   2.164  0.5288               3.080       1.801     2.398  730958 7541239
4 4.139        9.791 -1.1687           2.377   1.277  6.80957 8.623   1.794  0.4102               2.633       1.415     1.988  730487 7541437
5 5.541        4.586 -0.6840           2.091   1.186 -2.63011 3.902   1.525  0.6665               2.316       1.313     1.689  729874 7541446
6 6.323        3.184 -0.1699           1.908   1.104  0.02057 2.675   2.336  0.6642               2.113       1.223     2.588  729919 7541019

Verificando a distribuição dos coeficientes de regressão para a variável lixo

Verificando a distribuição dos localR2

Incorporando alguns parâmetros de saída do modelo na tabela olinda.sf

Definindo as paletes de cores para a construção dos mapas.

Mapa dos coeficientes de regressão para a variável lixo

Checando os residuos para verificar a presença de autocorrelação para o modelo GWR.


    Moran I test under randomisation

data:  results$residuos  
weights: pesos.viz    

Moran I statistic standard deviate = 1.5, p-value = 0.07
alternative hypothesis: greater
sample estimates:
Moran I statistic       Expectation          Variance 
         0.046817         -0.003534          0.001156 

Mapeando os coeficientes de regressão para a variável lixo por significancia através do teste de wald

Mapa dos coeficientes de determinação regionalizados (\(R^2\) local).

Verificando a distribuição dos preditos.

Mapeando os valores observados e preditos dos modelos ajustados

library(colorspace) # 

setor.sf$brks <- cut(setor.sf$tx, include.lowest=TRUE,  right=TRUE,
                     breaks=c(-4, 0, 2, 4, 10, 57), 
                     labels=c("0", "0 - 2", "2 - 4", "4 - 10", "> 10"))

tx.bruta <- ggplot(setor.sf) + 
  geom_sf(aes(fill = brks), color = 'black') +
  ggtitle("Taxa Bruta") + 
  scale_fill_discrete_sequential(palette ='Heat2',  
                                 c1=80,c2 =30,l1=30,l2=90,p1=0.2,p2=1.5,
                                 na.value = "grey75", 
                                 drop=FALSE,
                                 name='Taxa') +
  theme_void()



setor.sf$brks.lm <- cut(dourados.lm$fitted.values, lowest=TRUE,  right=TRUE,
                        breaks=c(-4, 0, 2, 4, 10, 57), 
                        labels=c("0", "0 - 2", "2 - 4", "4 - 10", "> 10"))


pred.lm <- ggplot(setor.sf) + 
  geom_sf(aes(fill = brks.lm), color = 'black') +
  ggtitle("Taxa Predita - LM") + 
  scale_fill_discrete_sequential(palette ='Heat2',  
                                 c1=80,c2 =30,l1=30,l2=90,p1=0.2,p2=1.5,
                                 na.value = "grey75", 
                                 drop=FALSE,
                                 name='Taxa') +
  theme_void()

setor.sf$brks.car <- cut(dourados.car$fitted.values, lowest=TRUE,  right=TRUE,
                         breaks=c(-4, 0, 2, 4, 10, 57), 
                         labels=c("0", "0 - 2", "2 - 4", "4 - 10", "> 10"))


pred.car <- ggplot(setor.sf) + 
  geom_sf(aes(fill = brks.car), color = 'black') +
  ggtitle("Taxa Predita - CAR") + 
  scale_fill_discrete_sequential(palette ='Heat2',  
                                 c1=80,c2 =30,l1=30,l2=90,p1=0.2,p2=1.5,
                                 na.value = "grey75", 
                                 drop=FALSE,
                                 name='Taxa') +
  theme_void()

setor.sf$brks.gwr <- cut(results$pred, lowest=TRUE,  right=TRUE,
                         breaks=c(-4, 0, 2, 4, 10, 57), 
                         labels=c("0", "0 - 2", "2 - 4", "4 - 10", "> 10"))


pred.gwr <- ggplot(setor.sf) + 
  geom_sf(aes(fill = brks.car), color = 'black') +
  ggtitle("Taxa Predita - GWR") + 
  scale_fill_discrete_sequential(palette ='Heat2',  
                                 c1=80,c2 =30,l1=30,l2=90,p1=0.2,p2=1.5,
                                 na.value = "grey75", 
                                 drop=FALSE,
                                 name='Taxa') +
  theme_void()

library(gridExtra)
grid.arrange(tx.bruta, pred.lm, pred.car, pred.gwr, ncol=2)

Verificando a distribuição dos resíduoas .

[1] -13.14  51.89

Mapeando os resíduos dos modelos ajustados

11.7 Bibliografia sugerida

Interactive Spatial Data Analysis by Trevor C. Bailey , Anthony C. Gatrell Routledge, 1995

Applied Spatial Statistics for Public Health Data; Lance A. Waller, Carol A. Gotway Wiley-Interscience 1St ed. 2004

Applied Spatial Data Analysis with R; Roger S. Bivand, Edzer Pebesma , Virgilio Gomez-Rubio Springer; Edição: 2nd ed. 2013