## Loading required package: Rcpp
## Type 'citation("pROC")' for a citation.
## 
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
## 
##     cov, smooth, var
## rgdal: version: 1.3-4, (SVN revision 766)
##  Geospatial Data Abstraction Library extensions to R successfully loaded
##  Loaded GDAL runtime: GDAL 2.2.3, released 2017/11/20
##  Path to GDAL shared files: /usr/share/gdal/2.2
##  GDAL binary built with GEOS: TRUE 
##  Loaded PROJ.4 runtime: Rel. 4.9.3, 15 August 2016, [PJ_VERSION: 493]
##  Path to PROJ.4 shared files: (autodetected)
##  Linking to sp version: 1.3-1

1 Modelos Lógisticos

1.1 Regressão Logistica Múltipla Multinomial

A Regressão Logística Múltipla Multinomial é uma técnica usada exclusivamente para predição de variáveis categóricas como classes de solos. É um método paramétrico que permitem predizer a probabilidade de ocorrência de uma variável resposta, considerando os valores de uma série de variáveis independentes que podem ser qualitativas ou quantitativas. A função logistica é representada por:
Equação da Regressão Logística

(#fig:figure_logit)Equação da Regressão Logística

onde logitj é o logaritmo natural da razão entre a probabilidade πj(x) de uma dada observação do solo pertencer à j-ésima categoria, condicionada aos valores das variáveis preditoras contidos no vetor x, e a probabilidade πk(x) daquela observação do solo pertencer à categoria k tomada como referência (Agresti, 2002). O intercepto do modelo logit ajustado para a j-ésima categoria é dado por αj, enquanto β’j é um vetor com os coeficientes ajustados para cada uma das p variáveis preditoras cujos valores estão contidos no vetor x.

1.1.1 Dentre as principais vantagens (Potencialidades) tem-se:

Dentre as vantagens da técnica RLMM tem-se o fato dela ser muito mais flexível que a regressão linear, pois não tem nenhuma exigência para sua aplicação a respeito da distribuição da variável resposta como acontece com a regressão linear que exige normalidade dos resíduos. Da mesma forma não exige que a variável explicativa e a variável resposta tenham correlação linear, medidas em mesma escala ou homogeneidade de variância (Chatterjee and Hadi, 2006; Debella-Gilo and Etzelmüller, 2009).

Assim como a regressão linear múltipla não exige grande capacidade computacional comparando-se a exigência computacional de modelos não paramétricos, que normalmente são mais complexos e ainda é possível fazer as estimativas dos parâmetros. Para Debella-Gilo and Etzelmüller (2009) uma das grandes vantagens da regressão logística é possibilidade de interpretação direta dos coeficientes como medidas de associação ao passo que em modelos não paramétricos isso não é possível.

1.1.2 Dentre as principais desvantagens (Limitações) tem-se:

Para Hengl et al. (2007) o uso de RLMM é mais trabalhoso, exigindo mais trabalho operacional na geração dos modelos. Outra grande limitação se deve ao fato de que a RLMM não considera as autocorrelações entre os dados durante a estimação dos parâmetros dos modelos. Hengl et al. (2007) ainda sugere que no caso de fraca correlação das variáveis preditoras com algumas classes, as classes mais frequentes vão dominar as predições finais.

Para Caten et al. (2011) a RLMM mostrou-se sensível à proporção relativa das amostras utilizadas para gerar os modelos, indicando que aplicações sistemáticas de RLMM ao mapeamento digital de solos deverão considerar o agrupamento (associação ou inclusão) das classes de solo pouco representativas. Ainda sugerem que estudos nessa linha de pesquisa deverão propor qual o limite mínimo (treshold) de proporção relativa entre as classes de solo para que elas possam ser preditas adequadamente. Os mesmos autores sugerem que limitação da RLMM é uma relativa complexidade para a interpretação dos parâmetros estatísticos dos modelos logísticos gerados. Para Hengl et al. (2007) e Kempen et al. (2009) um dos problemas de aplicação da técnica de RLMM é que não são verificados efeitos de multicolinearidade entre os dados na fase de ajuste dos modelos, sendo essa a maior limitação desses modelos, quando aplicados à predição de classes de solos.

1.2 Ajustando modelos de Regressão RLMM

### carregando os dados
dados <- read.dbf("../data/Treino.dbf")
names(dados)
##  [1] "Classe"    "POINT_X"   "POINT_Y"   "Elevation" "Slope"    
##  [6] "Curvat"    "Cti"       "Eucdist"   "Litologia" "NDVI"     
## [11] "Clay"      "Iron"      "LS_Factor" "RSP"       "Valley"   
## [16] "VDCN"      "ID"
summary(dados)
##      Classe       POINT_X          POINT_Y          Elevation      
##  GXM    :317   Min.   :702439   Min.   :7488723   Min.   :  0.457  
##  RL     :311   1st Qu.:714259   1st Qu.:7497932   1st Qu.: 14.061  
##  LVA    :309   Median :726086   Median :7505152   Median : 43.470  
##  PVA    :305   Mean   :723501   Mean   :7505568   Mean   :207.569  
##  RY     :303   3rd Qu.:733797   3rd Qu.:7513064   3rd Qu.:342.467  
##  GSJ    :293   Max.   :745645   Max.   :7522389   Max.   :968.234  
##  (Other):862                                                       
##      Slope             Curvat               Cti            Eucdist       
##  Min.   :  0.000   Min.   :-5.372800   Min.   : 3.645   Min.   :   0.00  
##  1st Qu.:  1.896   1st Qu.:-0.092944   1st Qu.: 5.570   1st Qu.:  84.85  
##  Median : 15.874   Median : 0.004454   Median : 6.959   Median : 180.00  
##  Mean   : 21.888   Mean   : 0.036155   Mean   : 7.405   Mean   : 228.16  
##  3rd Qu.: 38.281   3rd Qu.: 0.147691   3rd Qu.: 8.745   3rd Qu.: 323.46  
##  Max.   :162.844   Max.   : 2.770300   Max.   :19.425   Max.   :1116.47  
##                                                                          
##    Litologia          NDVI               Clay            Iron       
##  Min.   :1.000   Min.   :-0.79310   Min.   :0.500   Min.   :0.4074  
##  1st Qu.:1.000   1st Qu.: 0.07356   1st Qu.:1.661   1st Qu.:0.5576  
##  Median :2.000   Median : 0.22115   Median :1.860   Median :0.6612  
##  Mean   :1.976   Mean   : 0.18260   Mean   :1.841   Mean   :0.6930  
##  3rd Qu.:3.000   3rd Qu.: 0.32673   3rd Qu.:2.042   3rd Qu.:0.7942  
##  Max.   :3.000   Max.   : 0.61062   Max.   :2.920   Max.   :1.5213  
##                                                                     
##    LS_Factor           RSP              Valley            VDCN        
##  Min.   : 0.000   Min.   :0.00000   Min.   :  0.00   Min.   :  0.000  
##  1st Qu.: 0.296   1st Qu.:0.03316   1st Qu.: 27.75   1st Qu.:  2.021  
##  Median : 4.636   Median :0.14471   Median : 69.69   Median : 10.520  
##  Mean   : 8.873   Mean   :0.26761   Mean   :122.16   Mean   : 46.535  
##  3rd Qu.:14.086   3rd Qu.:0.47193   3rd Qu.:193.50   3rd Qu.: 59.289  
##  Max.   :93.463   Max.   :1.00000   Max.   :588.02   Max.   :372.226  
##                                                                       
##        ID      
##  Min.   :   1  
##  1st Qu.:1118  
##  Median :2279  
##  Mean   :2258  
##  3rd Qu.:3390  
##  Max.   :4498  
## 
#save.image("rlmm.RData")
### Geracao do Modelo ###
Modelo <- multinom(Classe ~ Elevation+Slope+Curvat+Cti+Eucdist+Litologia+NDVI+Clay+Iron+LS_Factor+RSP+Valley+VDCN, data=dados)
## # weights:  135 (112 variable)
## initial  value 5932.506359 
## iter  10 value 4384.727605
## iter  20 value 4021.309320
## iter  30 value 3466.376725
## iter  40 value 3252.668276
## iter  50 value 2908.432220
## iter  60 value 2597.802824
## iter  70 value 1889.815212
## iter  80 value 1596.627629
## iter  90 value 1463.295683
## iter 100 value 1394.310564
## final  value 1394.310564 
## stopped after 100 iterations
### Estrutura do Modelo ###
summary(Modelo) # mostra a estrutura do modelo
## Call:
## multinom(formula = Classe ~ Elevation + Slope + Curvat + Cti + 
##     Eucdist + Litologia + NDVI + Clay + Iron + LS_Factor + RSP + 
##     Valley + VDCN, data = dados)
## 
## Coefficients:
##     (Intercept)    Elevation        Slope     Curvat         Cti
## GSJ    6.966977  0.025709200 -0.002742172 -1.0576252  0.28640595
## GXM   22.125346 -0.006432683 -0.245239872  7.1973452 -0.52452725
## LA     6.682202 -0.001332318  0.074744239  0.1834208 -0.06954918
## LVA   13.831138 -0.019567869  0.040392300  0.5296011 -0.53719216
## PA     6.161904 -0.018802779 -0.045283822  1.2222926 -0.07363018
## PVA  -20.699758 -0.012726244 -0.069010472 -1.0926606 -0.94915590
## RL   -29.025601  0.004495680 -0.077150255 -2.4922882  0.19641747
## RY     6.572310 -0.019878844 -0.173021896  4.8532528 -0.17184698
##          Eucdist Litologia        NDVI       Clay       Iron    LS_Factor
## GSJ -0.004449251  6.244723 -13.4439283  5.3263512 -32.626764 -0.012505680
## GXM -0.001674961  4.263550  -0.4982236 -3.5717852  -8.383547  0.275958374
## LA  -0.000798287  1.833096  -2.1225747 -0.6019943  -5.293153 -0.270243335
## LVA -0.006232710  1.937146  -2.8745123 -1.1794895  -8.159967 -0.195706847
## PA  -0.001078334  3.571258  -0.6902634 -1.2310410  -2.227376  0.054514685
## PVA -0.001133581  8.367300  12.8203426 -0.5855575   5.265847  0.115857387
## RL   0.002079349  2.917900   7.9447208  1.0231381   4.738061 -0.007330977
## RY  -0.016650912  3.674067   2.4269264 -0.2337736  -1.140553  0.198010975
##            RSP       Valley        VDCN
## GSJ   5.265335 -0.143177526 -0.04174907
## GXM -36.846783 -0.087558776  0.10750087
## LA   10.480946 -0.004274411 -0.06165788
## LVA   6.855439 -0.005135355  0.03646504
## PA   -6.718238 -0.026555928  0.08287428
## PVA  11.362316  0.022477864  0.10336666
## RL   -8.887638  0.028788194  0.15767478
## RY   -9.258222 -0.028934474  0.05357098
## 
## Std. Errors:
##     (Intercept)    Elevation      Slope    Curvat       Cti     Eucdist
## GSJ   0.2829915 0.0050336410 0.08189152 1.4103932 0.1756765 0.002343102
## GXM   0.3598551 0.0159259108 0.07736475 0.4634256 0.1471233 0.001569444
## LA    1.1642366 0.0008439781 0.03141886 0.3642175 0.1100801 0.001312981
## LVA   0.8365129 0.0026878076 0.05209599 0.4641414 0.1809988 0.001536019
## PA    1.1880972 0.0053493001 0.06472511 0.5741281 0.1392327 0.001455800
## PVA   0.4778883 0.0027125406 0.04894585 0.8394543 0.2600437 0.002429078
## RL    0.4385543 0.0014870570 0.02326319 0.5704959 0.1389852 0.001989996
## RY    0.7127243 0.0103002371 0.09650827 0.8765917 0.1442206 0.002062918
##     Litologia      NDVI      Clay      Iron  LS_Factor       RSP
## GSJ 0.6642754 0.5421080 0.6527890 0.2876483 0.10035168 1.0444389
## GXM 0.6319131 0.9520597 0.7303110 0.9941984 0.18525234 0.1512965
## LA  0.5127443 0.9480801 0.5929283 0.7567286 0.07256160 0.7788152
## LVA 0.5513003 0.6796225 0.5310628 0.7151208 0.13240894 0.8819051
## PA  0.5253511 0.9337094 0.6895280 0.8408151 0.16000513 0.5734167
## PVA 0.6269351 0.6606997 0.8215294 1.1425197 0.09672698 0.6302041
## RL  1.0068899 0.5898934 0.6990140 0.9917030 0.03748627 0.1044934
## RY  0.5582059 0.9960233 0.6465321 0.8529470 0.26285035 0.1079451
##          Valley        VDCN
## GSJ 0.018421145 0.024126445
## GXM 0.006322976 0.033751216
## LA  0.001350364 0.009465483
## LVA 0.001955716 0.012066329
## PA  0.004241152 0.015730172
## PVA 0.003116803 0.012031791
## RL  0.003163846 0.013166960
## RY  0.005482849 0.028992277
## 
## Residual Deviance: 2788.621 
## AIC: 3012.621
#fitted(Modelo)
#### predicao dos dados de entrada (treino) ###
estim_rlmm <- predict(Modelo, type=c("prob"))
head(estim_rlmm )
##          CX          GSJ          GXM         LA          LVA           PA
## 1 0.8193282 1.312361e-12 9.488410e-11 0.16659875 3.210057e-05 5.544778e-06
## 2 0.6804692 4.823462e-12 1.558116e-10 0.28877094 7.658263e-05 5.036085e-06
## 3 0.5691021 3.329838e-13 1.665493e-09 0.40821457 3.544927e-04 6.365111e-06
## 4 0.8926814 2.639540e-13 1.167895e-11 0.09401403 5.917689e-06 5.789025e-06
## 5 0.7703279 1.829473e-13 6.214824e-12 0.19861507 3.903817e-05 4.449742e-06
## 6 0.7838003 4.290755e-14 2.023679e-10 0.19801401 5.037187e-05 7.945831e-06
##            PVA         RL           RY
## 1 5.619760e-05 0.01397918 4.829489e-08
## 2 1.310093e-04 0.03054704 1.453035e-07
## 3 7.880353e-04 0.02153304 1.403128e-06
## 4 1.818207e-06 0.01329103 1.169400e-08
## 5 4.122386e-05 0.03097235 8.292364e-09
## 6 3.175438e-05 0.01809527 3.601464e-07
estim_rlmm2 <- vector("integer", length = nrow(estim_rlmm))
for(i in 1:nrow(estim_rlmm)){ 
  estim_rlmm2[i] <- which.max (estim_rlmm[i,])
}
head(estim_rlmm2)
## [1] 1 1 1 1 1 1
estim_rlmm3=cbind(dados,estim_rlmm2) # juntar os dataframes de "dados" e "estim_dt"
names(estim_rlmm3)
##  [1] "Classe"      "POINT_X"     "POINT_Y"     "Elevation"   "Slope"      
##  [6] "Curvat"      "Cti"         "Eucdist"     "Litologia"   "NDVI"       
## [11] "Clay"        "Iron"        "LS_Factor"   "RSP"         "Valley"     
## [16] "VDCN"        "ID"          "estim_rlmm2"
summary(estim_rlmm3)
##      Classe       POINT_X          POINT_Y          Elevation      
##  GXM    :317   Min.   :702439   Min.   :7488723   Min.   :  0.457  
##  RL     :311   1st Qu.:714259   1st Qu.:7497932   1st Qu.: 14.061  
##  LVA    :309   Median :726086   Median :7505152   Median : 43.470  
##  PVA    :305   Mean   :723501   Mean   :7505568   Mean   :207.569  
##  RY     :303   3rd Qu.:733797   3rd Qu.:7513064   3rd Qu.:342.467  
##  GSJ    :293   Max.   :745645   Max.   :7522389   Max.   :968.234  
##  (Other):862                                                       
##      Slope             Curvat               Cti            Eucdist       
##  Min.   :  0.000   Min.   :-5.372800   Min.   : 3.645   Min.   :   0.00  
##  1st Qu.:  1.896   1st Qu.:-0.092944   1st Qu.: 5.570   1st Qu.:  84.85  
##  Median : 15.874   Median : 0.004454   Median : 6.959   Median : 180.00  
##  Mean   : 21.888   Mean   : 0.036155   Mean   : 7.405   Mean   : 228.16  
##  3rd Qu.: 38.281   3rd Qu.: 0.147691   3rd Qu.: 8.745   3rd Qu.: 323.46  
##  Max.   :162.844   Max.   : 2.770300   Max.   :19.425   Max.   :1116.47  
##                                                                          
##    Litologia          NDVI               Clay            Iron       
##  Min.   :1.000   Min.   :-0.79310   Min.   :0.500   Min.   :0.4074  
##  1st Qu.:1.000   1st Qu.: 0.07356   1st Qu.:1.661   1st Qu.:0.5576  
##  Median :2.000   Median : 0.22115   Median :1.860   Median :0.6612  
##  Mean   :1.976   Mean   : 0.18260   Mean   :1.841   Mean   :0.6930  
##  3rd Qu.:3.000   3rd Qu.: 0.32673   3rd Qu.:2.042   3rd Qu.:0.7942  
##  Max.   :3.000   Max.   : 0.61062   Max.   :2.920   Max.   :1.5213  
##                                                                     
##    LS_Factor           RSP              Valley            VDCN        
##  Min.   : 0.000   Min.   :0.00000   Min.   :  0.00   Min.   :  0.000  
##  1st Qu.: 0.296   1st Qu.:0.03316   1st Qu.: 27.75   1st Qu.:  2.021  
##  Median : 4.636   Median :0.14471   Median : 69.69   Median : 10.520  
##  Mean   : 8.873   Mean   :0.26761   Mean   :122.16   Mean   : 46.535  
##  3rd Qu.:14.086   3rd Qu.:0.47193   3rd Qu.:193.50   3rd Qu.: 59.289  
##  Max.   :93.463   Max.   :1.00000   Max.   :588.02   Max.   :372.226  
##                                                                       
##        ID        estim_rlmm2   
##  Min.   :   1   Min.   :1.000  
##  1st Qu.:1118   1st Qu.:3.000  
##  Median :2279   Median :5.000  
##  Mean   :2258   Mean   :5.111  
##  3rd Qu.:3390   3rd Qu.:7.000  
##  Max.   :4498   Max.   :9.000  
## 
#save.image("rlmm.RData")

### Função para cálculo do índice Kappa
kappa_func <- function(pred, obs){
  conf_matriz <- table(pred, obs)
  V <- rowSums(conf_matriz)
  H <- colSums(conf_matriz)
  N <- sum(conf_matriz)
  VH <- sum(V * H)
  q <- VH/N
  d <- sum(diag(conf_matriz))
  kappa <- (d - q)/(N - q)
  kappa
}
kappa_func(estim_rlmm2, dados$Classe)
## [1] 0.7599181
summary(dados$Classe)
##  CX GSJ GXM  LA LVA  PA PVA  RL  RY 
## 284 293 317 285 309 293 305 311 303
# Matriz de confusao usando os dados de treino #
matriz_Treino <- confusionMatrix(estim_rlmm2, dados$Classe)
matriz_Treino
##        predictions
## targets   1   2   3   4   5   6   7   8   9
##       1 192   0   0  68   0   0   0   9   0
##       2   0 285   5   0   0   2   0   0   3
##       3   0   7 249   1   0  49   0   0  12
##       4  58   0   0 128  49  24  16   0   1
##       5   8   0   0  55 252  12   0   0   3
##       6   0   0  30  26   5 166   0   0  23
##       7   2   0   0   5   3   1 289   0   0
##       8  24   0   0   0   0   0   0 302   0
##       9   0   1  33   2   0  39   0   0 261
write.csv2 (matriz_Treino, file="../res/tab/matriz_treino.csv")
#save.image("rlmm.RData")
### predicao dos dados de entrada (teste) ###
teste <- read.dbf("../data/Teste.dbf")
names(teste)
##  [1] "Classe"    "POINT_X"   "POINT_Y"   "Elevation" "Slope"    
##  [6] "Curvat"    "Cti"       "Eucdist"   "Litologia" "NDVI"     
## [11] "Clay"      "Iron"      "LS_Factor" "RSP"       "Valley"   
## [16] "VDCN"      "ID"
estim_t <- predict(Modelo, teste, type=c("prob"))
estim_t2 <- vector("integer", length = nrow(estim_t))
for(i in 1:nrow(estim_t)){ 
  estim_t2[i] <- which.max (estim_t[i,])
}
head(estim_t2)
## [1] 5 4 9 5 2 1
estim_t3=cbind(teste,estim_t2) # juntar os dataframes de "dados" e "estim"
names(estim_t3)
##  [1] "Classe"    "POINT_X"   "POINT_Y"   "Elevation" "Slope"    
##  [6] "Curvat"    "Cti"       "Eucdist"   "Litologia" "NDVI"     
## [11] "Clay"      "Iron"      "LS_Factor" "RSP"       "Valley"   
## [16] "VDCN"      "ID"        "estim_t2"
summary(estim_t3)
##      Classe       POINT_X          POINT_Y          Elevation      
##  CX     :216   Min.   :702469   Min.   :7488723   Min.   :  0.605  
##  LA     :215   1st Qu.:712063   1st Qu.:7497972   1st Qu.: 15.032  
##  GSJ    :207   Median :725470   Median :7505257   Median : 49.912  
##  PA     :207   Mean   :723434   Mean   :7505725   Mean   :206.922  
##  RY     :197   3rd Qu.:733934   3rd Qu.:7513336   3rd Qu.:339.514  
##  PVA    :195   Max.   :745645   Max.   :7522359   Max.   :956.642  
##  (Other):563                                                       
##      Slope             Curvat               Cti            Eucdist       
##  Min.   :  0.000   Min.   :-1.936980   Min.   : 3.754   Min.   :   0.00  
##  1st Qu.:  1.764   1st Qu.:-0.083101   1st Qu.: 5.577   1st Qu.:  84.85  
##  Median : 18.074   Median : 0.003575   Median : 6.939   Median : 174.93  
##  Mean   : 21.505   Mean   : 0.039552   Mean   : 7.423   Mean   : 220.28  
##  3rd Qu.: 37.358   3rd Qu.: 0.146469   3rd Qu.: 8.774   3rd Qu.: 313.21  
##  Max.   :101.186   Max.   : 1.951210   Max.   :18.851   Max.   :1106.75  
##                                                                          
##    Litologia          NDVI               Clay            Iron       
##  Min.   :1.000   Min.   :-0.56923   Min.   :0.300   Min.   :0.4182  
##  1st Qu.:1.000   1st Qu.: 0.07543   1st Qu.:1.667   1st Qu.:0.5574  
##  Median :2.000   Median : 0.21839   Median :1.863   Median :0.6562  
##  Mean   :1.947   Mean   : 0.18532   Mean   :1.843   Mean   :0.6923  
##  3rd Qu.:3.000   3rd Qu.: 0.32565   3rd Qu.:2.038   3rd Qu.:0.7971  
##  Max.   :3.000   Max.   : 0.57025   Max.   :2.667   Max.   :1.3708  
##                                                                     
##    LS_Factor            RSP              Valley            VDCN        
##  Min.   : 0.0000   Min.   :0.00000   Min.   :  0.00   Min.   :  0.000  
##  1st Qu.: 0.2772   1st Qu.:0.03076   1st Qu.: 28.84   1st Qu.:  2.034  
##  Median : 5.5517   Median :0.14237   Median : 74.01   Median : 10.151  
##  Mean   : 8.9720   Mean   :0.26081   Mean   :126.95   Mean   : 43.660  
##  3rd Qu.:13.7140   3rd Qu.:0.47579   3rd Qu.:212.77   3rd Qu.: 53.574  
##  Max.   :93.0733   Max.   :1.00000   Max.   :585.86   Max.   :372.523  
##                                                                        
##        ID          estim_t2    
##  Min.   :   4   Min.   :1.000  
##  1st Qu.:1133   1st Qu.:3.000  
##  Median :2216   Median :5.000  
##  Mean   :2239   Mean   :4.979  
##  3rd Qu.:3352   3rd Qu.:7.000  
##  Max.   :4500   Max.   :9.000  
## 
kappa_func(estim_t2, teste$Classe)
## [1] 0.7243855
#save.image("rlmm.RData")

# matriz de confusao de Teste
matriz_Teste <- confusionMatrix(estim_t2, estim_t3$Classe)
matriz_Teste
##        predictions
## targets   1   2   3   4   5   6   7   8   9
##       1 147   0   0  51   4   1   1  14   0
##       2   0 203   5   0   0   3   1   0   4
##       3   0   4 133   0   0  30   0   0  11
##       4  32   0   0 101  19  28  12   1   0
##       5   5   0   0  51 164  10   0   0   5
##       6   0   0  21   5   3  96   0   0  17
##       7   3   0   0   5   1   0 181   0   0
##       8  29   0   0   0   0   0   0 174   0
##       9   0   0  24   2   0  39   0   0 160
write.csv2 (matriz_Teste, file="../res/tab/matriz_teste.csv")
#save.image("rlmm.RData")
### Fazer o mapa a partir da Regressão Logística ###
grid <- read.dbf("../data/Pontos.dbf")
names(grid)
##  [1] "Elevation" "Slope"     "Curvat"    "Cti"       "Eucdist"  
##  [6] "Litologia" "NDVI"      "Clay"      "Iron"      "LS_Factor"
## [11] "RSP"       "Valley"    "VDCN"      "POINT_X"   "POINT_Y"
mapa <- predict(Modelo, grid, type=c("prob")) # probabilidade
mapa2 <- vector("integer", length = nrow(mapa))
for(i in 1:nrow(mapa)){ 
  mapa2[i] <- which.max (mapa[i,])
}
head(mapa2)
## [1] 8 8 8 8 8 8
mapa3=cbind(grid, mapa2)

# Transformar o objeto "mapa2" de DataFrame para SpatialPixelsDataFrame
names(mapa3)
##  [1] "Elevation" "Slope"     "Curvat"    "Cti"       "Eucdist"  
##  [6] "Litologia" "NDVI"      "Clay"      "Iron"      "LS_Factor"
## [11] "RSP"       "Valley"    "VDCN"      "POINT_X"   "POINT_Y"  
## [16] "mapa2"
gridded(mapa3) <- ~POINT_X+POINT_Y
names(mapa3)
##  [1] "Elevation" "Slope"     "Curvat"    "Cti"       "Eucdist"  
##  [6] "Litologia" "NDVI"      "Clay"      "Iron"      "LS_Factor"
## [11] "RSP"       "Valley"    "VDCN"      "mapa2"
#### PACOTES ESPACIAIS PARA EXPORTAR ###
writeGDAL(mapa3[,14], "../res/fig/classes_rlmm.sdat", drivername="SAGA",mvFlag=-99999)

#### Plotando o mapa com as classes ###
# install.packages("rgdal")
mapa4 <- predict(Modelo, grid, type=c("class")) # classes
mapa4=cbind(grid, mapa4)
mapa4=mapa4[14:16]
gridded(mapa4) <- ~POINT_X+POINT_Y
names(mapa4)
## [1] "mapa4"
spplot(mapa4)

# save.image("rlmm.RData"))

2 Bonus

2.1 Calculando a propagação espacial da incerteza

Uma das formas, talvez a mais comum, de avaliar a incerteza na predição espacial de dados categóricos, exemplo classes de solo, é a entropia de Shannon. Para o cálculo da entropia a probabilidade de ocorrência de cada uma das k classes da variável categórica aleatória C em uma grade regular de pontos foi usada para determinação da incerteza da predição espacial de C em uma determinada localização espacial s.

Equação da Entropia de Shannon

(#fig:figure_entropy)Equação da Entropia de Shannon

onde (ci, s) é a probabilidade estimada de que a variável aleatória C, na localização s, tome o valor ci entre os k valores possíveis (Agresti, 2002; Kempen et al., 2009). O uso do logaritmo com base k escala o valor de H(s) entre 0 e 1, onde 0 significa nenhuma incerteza condicional - uma das k categorias tem probabilidade de ocorrência igual a 1, e 1 significa incerteza condicional máxima - todas k categorias têm igual probabilidade de ocorrência.

## [1] "entropy"

3 A era das máquinas começou

Máquina aprendendo

Figure 3.1: Máquina aprendendo

Referências

Agresti, A., 2002. Categorical data analysis. Gainesville.

Caten, A. ten, Dalmolin, R.S.D., Pedron, F.A., Mendonça-Santos, M. de L., 2011. Regressões logísticas múltiplas: fatores que influenciam sua aplicação na predição de classes de solos. Revista Brasileira de Ciência do Solo 35, 53–62.

Chatterjee, S., Hadi, A.S., 2006. Regression analysis by example, 4th ed. John Willey; Sons, Hoboken, New Jersey.

Debella-Gilo, M., Etzelmüller, B., 2009. Spatial prediction of soil classes using digital terrain analysis and multinomial logistic regression modeling integrated in GIS : Examples from Vestfold County, Norway. Catena 77, 8–18. https://doi.org/10.1016/j.catena.2008.12.001

Hengl, T., Toomanian, N., Reuter, H.I., Malakouti, M.J., 2007. Methods to interpolate soil categorical variables from profile observations : Lessons from Iran. Geoderma 140, 417–427. https://doi.org/10.1016/j.geoderma.2007.04.022

Kempen, B., Brus, D.J., Heuvelink, G.B.M., Stoorvogel, J.J., 2009. Updating the 1:50,000 Dutch soil map using legacy soil data: a multinomial logistic regression approach. Geoderma 151, 311–326. https://doi.org/10.1016/j.geoderma.2009.04.023