Análise geoespacial

Este script executa uma análise exploratória de dados geoespaciais com base em dados contendo medições realizadas em diferentes profundidades. Para isso, são empregados pacotes específicos para a manipulação de dados espaciais e para a criação de visualizações gráficas. Os dados analisados foram extraídos do arquivo castro.txt e compreendem coordenadas geográficas, juntamente com valores registrados em diversas camadas de profundidade.

Pacotes Utilizados

library(moments)
library(akima)
library(geoR)
library(MASS)

Importando a Base de Dados para realização do estudo.

solo <- read.table("C:/Users/Denilson/Desktop/9° Periodo/Estatistica espacial/MATERIAL DE ESPACIAL/Atividades de estatística espacial/Atividade 3 - Processos continuos/Atividade 3 - Processos continuos/castro.txt", header = TRUE)
head(solo)
##        Lat     Lon X0.10 X10.15 X15.20 X20.25 X25.30 X30.35 X35.40       Xcd
## 1 608039.6 7250137  2.06   2.55   1.83   1.54   1.12   0.84   0.80 -49.93059
## 2 608063.1 7250146  2.03   1.58   2.21   2.36   2.61   2.44   1.76 -49.93036
## 3 608086.6 7250154  1.67   1.38   1.61   1.79   2.13   1.46   1.36 -49.93013
## 4 608007.6 7250152  1.23   1.02   0.96   1.19   1.39   1.45   0.76 -49.93091
## 5 608031.1 7250161  0.57   0.75   1.22   1.69   2.12   2.16   2.34 -49.93068
## 6 608054.6 7250169  1.67   1.60   1.20   1.75   1.70   1.58   1.21 -49.93045
##         Ycd
## 1 -24.85994
## 2 -24.85986
## 3 -24.85978
## 4 -24.85980
## 5 -24.85973
## 6 -24.85965

Estrutura e Resumo dos Dados

Nesta seção, exploramos a estrutura do dataset para compreender as variáveis e realizar uma análise inicial.

dim(solo)
## [1] 358  11
summary(solo[, 3:9])
##      X0.10           X10.15          X15.20          X20.25     
##  Min.   :0.560   Min.   :0.540   Min.   :0.360   Min.   :0.500  
##  1st Qu.:1.690   1st Qu.:1.500   1st Qu.:1.383   1st Qu.:1.320  
##  Median :1.950   Median :1.740   Median :1.605   Median :1.600  
##  Mean   :2.091   Mean   :1.822   Mean   :1.710   Mean   :1.713  
##  3rd Qu.:2.360   3rd Qu.:2.055   3rd Qu.:1.938   3rd Qu.:2.020  
##  Max.   :4.920   Max.   :3.900   Max.   :3.980   Max.   :3.860  
##      X25.30          X30.35          X35.40     
##  Min.   :0.490   Min.   :0.460   Min.   :0.400  
##  1st Qu.:1.363   1st Qu.:1.462   1st Qu.:1.330  
##  Median :1.695   Median :1.885   Median :1.890  
##  Mean   :1.786   Mean   :1.910   Mean   :1.924  
##  3rd Qu.:2.090   3rd Qu.:2.280   3rd Qu.:2.388  
##  Max.   :3.990   Max.   :3.930   Max.   :4.790

Análise Descritiva: Profundidade 25-30 cm

Para a análise descritiva, focaremos na profundidade de 25-30 cm, convertendo a base para um objeto geoespacial e gerando uma visualização inicial.

## Number of data points: 358 
## 
## Coordinates summary
##          Lat     Lon
## min 607546.1 7250137
## max 608125.0 7250863
## 
## Distance summary
##       min       max 
##  24.98484 728.01244 
## 
## Data summary
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## 0.490000 1.362500 1.695000 1.785726 2.090000 3.990000

plot(geosolo_1, low = TRUE)

  • Mapa de Pontos (Superior Esquerdo): Mostra a distribuição dos pontos de amostragem na área de estudo, com diferentes símbolos indicando grupos de medições. Os pontos estão bem distribuídos, cobrindo de forma uniforme a área.

  • Dispersão Vertical e Horizontal (Superior Direito e Inferior Esquerdo): Mostra como a variável 35-40 cm varia conforme a localização. Há variabilidade, sugerindo uma possível tendência espacial.

  • Histograma com Curva de Densidade (Inferior Direito): A curva de densidade sugere uma distribuição próxima do normal, mas com uma leve assimetria à direita e alguns possíveis outliers, indicando variabilidade nas medições.

Verificação dos Pressupostos

Nesta etapa, faremos a verificação dos pressupostos de normalidade e homogeneidade da variância, utilizando a transformação de Box-Cox para ajustar possíveis assimetrias e identificar a melhor transformação para a variável analisada. Em seguida, exploraremos a visualização espacial dos dados para verificar padrões e outliers.

O gráfico de log-verossimilhança sugere o valor ótimo de lambda para a transformação dos dados, próximo de zero. Isso indica que uma transformação logarítmica pode ser adequada para estabilizar a variância e aproximar os dados de uma distribuição normal.

Ajustando com Transformação Logarítmica

Verificando como ficou

Plotando os pontos

Box-Cox Plot: Após a transformação, o gráfico sugere um lambda ótimo próximo de 1, indicando que os dados agora estão próximos da normalidade. O intervalo de confiança inclui 1, o que dispensa transformações adicionais. Podemos prosseguir com a análise utilizando os dados ajustados.

Gráfica Geosolo: A transformação estabilizou a variabilidade e melhorou a normalidade dos dados, permitindo prosseguir com as análises espaciais.

Visualização Espacial (Quintis): A distribuição espacial dos pontos mostra clusters nas extremidades, refletindo variabilidade nas medições. As bolhas maiores e vermelhas indicam valores mais altos, sugerindo áreas de maior concentração ou possíveis anomalias.

Ajuste do Variograma e Definição de Modelos

Nesta etapa, iremos ajustar visualmente o variograma experimental e testar diferentes distâncias máximas. O objetivo é identificar a distância de influência e ajustar modelos teóricos ao variograma, facilitando a estimativa de parâmetros para predição espacial.

Aqui iremos Definir as Bordas e Plotando o Variograma

bord <- read.csv("C:/Users/Denilson/Desktop/9° Periodo/Estatistica espacial/ATIVIDADES DE ESPACIAL/Atividade 3/Processos continuos/borda.csv")
geosolo$borders <- with(bord, cbind(V1, V2))
points(geosolo, pt.div = "quintile", xlab = "leste", ylab = "norte")

## variog: computing omnidirectional variogram

Visualizando

Crescimento Inicial: A semivariança aumenta rapidamente para distâncias menores, indicando que há uma forte autocorrelação espacial entre pontos próximos.

Alcance (Range): O alcance é a distância em que o variograma atinge o platô. Aqui, ele ocorre em torno de 300 metros, representando a extensão da dependência espacial.

Ajuste Visual do Variograma (Eyefit)

Nesta seção, ajustamos visualmente o modelo teórico ao variograma experimental usando a função eyefit().

Testando Outras Distâncias Máximas

Para avaliar a robustez do ajuste, testamos outras distâncias máximas (500 e 550).

## variog: computing omnidirectional variogram

## variog: computing omnidirectional variogram

Os ajustes para distâncias maiores mantêm consistência nos parâmetros, indicando que a dependência espacial é capturada até cerca de 350 metros, com patamar próximo de 0,08 e efeito pepita visível. Estes resultados são sólidos para prosseguir com a modelagem e krigagem, dado que os parâmetros permanecem estáveis mesmo com diferentes distâncias máximas analisadas.

Análise Direcional: Nuvens de Pontos do Variograma

Utilizamos variog4() para explorar a variação da dependência espacial em diferentes direções. Esta análise identifica padrões na autocorrelação espacial, fundamentais para a modelagem e a krigagem.

## variog: computing variogram for direction = 0 degrees (0 radians)
##         tolerance angle = 22.5 degrees (0.393 radians)
## variog: computing variogram for direction = 45 degrees (0.785 radians)
##         tolerance angle = 22.5 degrees (0.393 radians)
## variog: computing variogram for direction = 90 degrees (1.571 radians)
##         tolerance angle = 22.5 degrees (0.393 radians)
## variog: computing variogram for direction = 135 degrees (2.356 radians)
##         tolerance angle = 22.5 degrees (0.393 radians)
## variog: computing omnidirectional variogram

Diferenças Entre Direções: O gráfico mostra os variogramas nas direções 0º, 45º, 90º e 135º, revelando variações significativas e confirmando a presença de anisotropia.

Direções Preferenciais: A direção 90º (leste-oeste) apresenta maior semivariança, indicando menor correlação espacial. Já a direção 0º (norte-sul) possui menor semivariança, sugerindo maior continuidade.

a modelagem deve considerar essas variações para melhorar a precisão das predições.

Estimação de Parâmetros e Modelos de Krigagem

Nesta etapa, ajustaremos diferentes modelos de variograma utilizando a função likfit(). O objetivo é comparar esses modelos (circular, exponencial, cauchy e gaussiano) e identificar o que melhor se adequa aos dados, com base nos critérios de AIC e BIC. Em seguida, aplicaremos a krigagem para fazer predições espaciais.

Ajuste dos Modelos de Variograma

ml1 <- likfit(geosolo, ini = c(0.05, 150), nug = 0.05, lam = 0, cov.model = "circular")
## kappa not used for the circular correlation function
## ---------------------------------------------------------------
## likfit: likelihood maximisation using the function optim.
## likfit: Use control() to pass additional
##          arguments for the maximisation function.
##         For further details see documentation for optim.
## likfit: It is highly advisable to run this function several
##         times with different initial values for the parameters.
## likfit: WARNING: This step can be time demanding!
## ---------------------------------------------------------------
## likfit: end of numerical maximisation.
ml2 <- likfit(geosolo, ini = c(0.05, 150), nug = 0.05, lam = 0, cov.model = "exponential")
## kappa not used for the exponential correlation function
## ---------------------------------------------------------------
## likfit: likelihood maximisation using the function optim.
## likfit: Use control() to pass additional
##          arguments for the maximisation function.
##         For further details see documentation for optim.
## likfit: It is highly advisable to run this function several
##         times with different initial values for the parameters.
## likfit: WARNING: This step can be time demanding!
## ---------------------------------------------------------------
## likfit: end of numerical maximisation.
ml3 <- likfit(geosolo, ini = c(0.05, 150), nug = 0.05, lam = 0, cov.model = "cauchy")
## ---------------------------------------------------------------
## likfit: likelihood maximisation using the function optim.
## likfit: Use control() to pass additional
##          arguments for the maximisation function.
##         For further details see documentation for optim.
## likfit: It is highly advisable to run this function several
##         times with different initial values for the parameters.
## likfit: WARNING: This step can be time demanding!
## ---------------------------------------------------------------
## likfit: end of numerical maximisation.
ml4 <- likfit(geosolo, ini = c(0.05, 110), nug = 0.05, lam = 0, cov.model = "gaussian")
## kappa not used for the gaussian correlation function
## ---------------------------------------------------------------
## likfit: likelihood maximisation using the function optim.
## likfit: Use control() to pass additional
##          arguments for the maximisation function.
##         For further details see documentation for optim.
## likfit: It is highly advisable to run this function several
##         times with different initial values for the parameters.
## likfit: WARNING: This step can be time demanding!
## ---------------------------------------------------------------
## likfit: end of numerical maximisation.
AIC <- c(ml1$AIC, ml2$AIC, ml3$AIC, ml4$AIC)
BIC <- c(ml1$BIC, ml2$BIC, ml3$BIC, ml4$BIC)
AIC
## [1] 6.480065 5.039854 5.864760 7.034348
BIC
## [1] 22.00220 20.56199 21.38689 22.55648

O modelo exponencial apresentou os menores valores tanto para AIC quanto para BIC, indicando ser o modelo mais adequado para representar a dependência espacial dos dados.

Os modelos gaussiano e circular tiveram os piores ajustes, com maiores valores de AIC e BIC.

Visualizaçao do melhor modelo

## Summary of the parameter estimation
## -----------------------------------
## Estimation method: maximum likelihood 
## 
## Parameters of the mean component (trend):
##   beta 
## -0.153 
## 
## Parameters of the spatial component:
##    correlation function: exponential
##       (estimated) variance parameter sigmasq (partial sill) =  0.0323
##       (estimated) cor. fct. parameter phi (range parameter)  =  80.71
##    anisotropy parameters:
##       (fixed) anisotropy angle = 0  ( 0 degrees )
##       (fixed) anisotropy ratio = 1
## 
## Parameter of the error component:
##       (estimated) nugget =  0.071
## 
## Transformation parameter:
##       (fixed) Box-Cox parameter = 0 (log-transformation)
## 
## Practical Range with cor=0.05 for asymptotic range: 241.7909
## 
## Maximised Likelihood:
##    log.L n.params      AIC      BIC 
##   "1.48"      "4"   "5.04"  "20.56" 
## 
## non spatial model:
##    log.L n.params      AIC      BIC 
## "-15.57"      "2"  "35.13"  "42.89" 
## 
## Call:
## likfit(geodata = geosolo, ini.cov.pars = c(0.05, 150), nugget = 0.05, 
##     lambda = 0, cov.model = "exponential")

Visualização Gráfica dos Modelos

## variog: computing omnidirectional variogram

O gráfico mostra o ajuste dos modelos de variograma (circular, exponencial, cauchy e gaussiano) aos dados experimentais:

  • O modelo exponencial (azul) apresentou o melhor ajuste, seguindo de perto os pontos observados.

  • O modelo circular (vermelho) superestima a semivariança em maiores distâncias.

  • O modelo cauchy (verde) subestima a semivariança em curtas distâncias.

  • O modelo gaussiano (preto) oferece um ajuste intermediário, mas não acompanha bem os dados extremos.

O modelo exponencial é o mais adequado, apresentando o melhor equilíbrio entre ajuste e simplicidade.

Definindo o Grid de Predição

Criamos um grid de predição para aplicar a krigagem, cobrindo toda a área de estudo.

Krigagem e Predição Espacial

Nesta etapa, aplicamos a krigagem para estimar os valores espaciais, utilizando os modelos ajustados.

Krigagem com o Modelo Circular

## krige.conv: results will be returned only for prediction locations inside the borders
## krige.conv: model with constant mean
## krige.conv: performing the Box-Cox data transformation
## krige.conv: back-transforming the predicted mean and variance
## krige.conv: Kriging performed using global neighbourhood

Krigagem com o Modelo Exponencial

## krige.conv: results will be returned only for prediction locations inside the borders
## krige.conv: model with constant mean
## krige.conv: performing the Box-Cox data transformation
## krige.conv: back-transforming the predicted mean and variance
## krige.conv: Kriging performed using global neighbourhood

Krigagem com o Modelo Cauchy

## krige.conv: results will be returned only for prediction locations inside the borders
## krige.conv: model with constant mean
## krige.conv: performing the Box-Cox data transformation
## krige.conv: back-transforming the predicted mean and variance
## krige.conv: Kriging performed using global neighbourhood

Todos os modelos captaram bem a continuidade espacial, refletida pela transição suave das cores nos mapas. O modelo exponencial destacou-se como o mais adequado, oferecendo maior precisão nas estimativas e identificando padrões claros de variação espacial. Os modelos circular e cauchy também mostraram boas estimativas, embora menos detalhadas, indicando consistência nas tendências espaciais.

Predição Espacial com Krigagem

Nesta etapa, aplicaremos a krigagem utilizando o modelo mais adequado, o exponencial (ml2), para gerar um grid de predição e realizar a interpolação dos dados. Além disso, serão apresentados mapas de probabilidades condicionais e quantis para melhor interpretação dos resultados.

Krigagem com o Modelo Exponencial

Utilizaremos a krigagem ordinária com o controle definido para o modelo exponencial ajustado (ml2). A seguir, aplicamos a interpolação espacial para estimar os valores e criamos o mapa resultante.

## krige.conv: results will be returned only for prediction locations inside the borders
## krige.conv: model with constant mean
## krige.conv: performing the Box-Cox data transformation
## krige.conv: sampling from the predictive distribution (conditional simulations)
## krige.conv: back-transforming the simulated values
## krige.conv: back-transforming the predicted mean and variance
## krige.conv: Kriging performed using global neighbourhood

Análise de Probabilidade Condicional

A seguir, avaliamos a probabilidade condicional para um limiar específico, gerando um mapa de probabilidades com base nos valores estimados.

O mapa apresentado mostra as probabilidades condicionais da krigagem para o modelo exponencial. O valor plotado é 1 - probabilidade, o que indica a chance de que a variável de interesse seja menor do que o limiar definido (no caso, 1.890).

As áreas verdes escuras representam regiões com alta probabilidade de que os valores estimados sejam menores do que o limiar, sugerindo maior certeza nas predições para estas áreas.

As regiões amarelas e rosadas indicam menor probabilidade, ou seja, maior incerteza e possibilidade de que os valores observados excedam o limiar definido.

O mapa reflete boa continuidade espacial, com transição suave entre áreas de maior e menor probabilidade, o que indica um ajuste eficiente da krigagem.

O mapa captura bem as áreas de maior confiabilidade nas estimativas. A predominância da cor verde sugere que a maior parte da área estudada apresenta alta probabilidade de valores abaixo do limiar, reforçando a adequação do modelo exponencial ajustado.

Mapa de Quantis

Os mapas de quantis permitem identificar as áreas com maior e menor confiabilidade nas estimativas. Apresentamos os mapas para o 10º e 90º percentis, representando “baixos confiáveis” e “altos confiáveis”, respectivamente.

Mapa do 10º Percentil (“Altos Confiáveis”): Indica as áreas com maior probabilidade de altos valores, destacadas em amarelo e laranja. As regiões verdes mostram concentrações mais baixas.

Mapa do 90º Percentil (“Baixos Confiáveis”): Exibe as zonas com alta probabilidade de valores baixos, em verde. As áreas em amarelo indicam menor intensidade, mostrando uma transição suave entre regiões.

Conclusão

A análise geoespacial indicou forte dependência espacial, com o modelo exponencial apresentando o melhor ajuste. Os variogramas e a krigagem representaram bem a estrutura dos dados.

Os mapas de krigagem evidenciaram áreas com diferentes intensidades, e os percentis identificaram zonas de maior e menor risco. Esses resultados oferecem uma boa base para interpretação e validação dos padrões espaciais observados.