INTRODUÇÃO

O banco de dados para análise geoestatística com observações da precipitação no estado da Paraíba.

Vamos aos cálculos

Para da início as atividades, se necessário fazer a istalação dos pacotes (geoR) e (MASS), e a requerição dos mesmos.

if(!require(geoR)){install.packages("geoR")}
if(!require(MASS)){install.packages("MASS")}
if(!require(moments)){install.packages("moments")}
if(!require(akima)){install.packages("akima")}
if(!require(car)){install.packages("car")}
Mudadando o diretório e Importado os dados em formato “txt”.
setwd("F:/Estatistica Espacial")
dados <- read.table("Km_PB.txt", head=T)

verificando parte dos dados e caracteristicas do conjunto de dados

# head(dados)
# dim(dados)
# colnames(dados)
# rownames(dados)
# dimnames(dados)
Análise exploratoria
Bd <-as.geodata(dados)
Resumo das descritivas Espaciais
# summary(Bd)
Resumo das Coordenadas
x y
min 13.55211 17.54344
max 436.42574 235.04460
Resumo das Distâncias
min max
0.9745422 428.5703722
A distância máxima em Km obtida acima é considerada grande, dessa forma, utilizaremos apenas 1/3 da distância máxima nos semivariogramas.
Resumo das Estatísticas descritivas
Variável N Min. 1st Qu. Mediana Média 3rd Qu. Max.
Precipitação 241 37.4000 74.3500 106.9000 108.1937 142.2000 194.0000
Definindo as bordas arbitrárias para visualização gráfica
borda=read.table("bord_Km.txt",h=T)
Bd$borders <- with(borda, cbind(x,y))
Gráfico dos dados
plot(Bd,lowess = T)

points(Bd, pt.div="quartiles", xlab="Leste", ylab="Norte")

Com base nas informações visuais do gráfico, há indicios de que se tenha tendência nas coordenadas, é necessário usar testes que indique qual tipo de transformação é mais adequado.

verificando a necessidade de transformação.

Boxcox
boxcox(Bd)

comentário do boxcox

há indicios de que a transformação de tendência raiz quadrada com \(\lambda\) = 0.5, seja uma opção.

verificando e efeito de tendência por meio dos gráficos.

Efeito de Tendência linear de Primeira Ordem
plot(Bd,lowess=T,trend="1st")

Efeito de Tendência linear de Primeira Ordem com \(\lambda\) = 0.5
plot(Bd,lowess=T,trend="1st",lam=0.5)

Efeito de Tendência linear na Coordenada y
plot(Bd,lowess=T,trend=~coords[,2])

Efeito de Tendência linear na Coordenada y com \(\lambda\) = 0.5
plot(Bd,lowess=T,trend=~coords[,2],lam=0.5)

Efeito de Tendência na Coordenada x
plot(Bd,lowess=T,trend=~coords[,1])

|Efeito de Tendência na Coordenada x com \(\lambda\) = 0.5| |——————————————————-|

plot(Bd,lowess=T,trend=~coords[,1],lam=0.5)

Efeito de Tendência nas Coordenadas x e y
plot(Bd,lowess=T,trend=~coords[,1]+~coords[,2])

Efeito de Tendência linear nas Coordenadas x e y com \(\lambda\) = 0.5
plot(Bd,lowess=T,trend=~coords[,1]+~coords[,2],lam=0.5)

Efeito de Tendência quadrática de Segunda Ordem
plot(Bd,lowess=T,trend="2nd")

Efeito de Tendência quadrática de Segunda Ordem com \(\lambda\) = 0.5
plot(Bd,lowess=T,trend="2nd",lam=0.5)  # Melhor Trasformação!

Efeito de Tendência quadrática nas Coordenadas x e y
plot(Bd,lowess=T,trend=~coords[,1]+~coords[,2])

Efeito de Tendência quadrática nas Coordenadas x e y com \(\lambda\) = 0.5
plot(Bd,lowess=T,trend=~coords[,1]+~coords[,2],lam=0.5)

Comentário

Aparentemente a tendêndia quadrática de Segunda Ordem com \(\lambda\) = 0.5 obteve melhores resultados, dessa forma será utilizada para an-alises sub-sequentes.

Semivariograma téorico
Bdv1=variog(Bd,trend="2nd",lam=0.5, max.dist = 140)
## variog: computing omnidirectional variogram
Gráfico do Semivariograma téorico
plot(Bdv1)

comentário

A distância máxima utilizada no Semivariograma foi de 140 Km.

Dependência Espacial
var.1 = variog(Bd,low=T,trend="2nd",lam=0,max.dist = 140);plot(var.1)  
## variog: computing omnidirectional variogram

var.2 = variog(Bd,low=T,trend="2nd",lam=0,max.dist = 140,option="cloud");plot(var.2) 
## variog: computing omnidirectional variogram

var.3 = variog(Bd,low=T,trend="2nd",lam=0,max.dist = 140,uvec = seq(0,140,l=20));plot(var.3) 
## variog: computing omnidirectional variogram

Envelope Simulado
env.var=variog.mc.env(Bd,obj.variog = var.3,nsim=999)
## variog.env: generating 999 simulations by permutating data values
## variog.env: computing the empirical variogram for the 999 simulations
## variog.env: computing the envelops
plot(var.3,env=env.var)

Comentário

Utilizando como base de interpretação o P-Valor de 0,005 com (999) simulações, observa-se que constatou-se a dependência espacial dos dados por meio das observações que se alocam fora do envelope.

Modelagem das Estimativas de máxima verossimilhança para as Funções de Correlação:

Modelo Matern
mod0<-likfit(Bd,trend="1st",kappa = 0.5,ini=c(421.43,69.13),nug=202.75 ,cov.model="matern",lam=0.5)
## ---------------------------------------------------------------
## 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.
Resumo do Modelo mod0
# summary(mod0)
\(\beta0\) \(\beta0\) \(\beta0\) \(\tau\) \(\sigma\) \(\phi\)
17.7184 0.0014 0.0178 1.2592 15.5944 181.3035
Modelo Espacial
Número de parâmetros AIC BIC
6 2080 2101
Modelo Não Espacial
Número de parâmetros AIC BIC
4 2356 2370
mod1=likfit(Bd,kappa = 0.5,ini=c(421.43,69.13 ),nug=202.75 ,cov.model="matern",lam=0.5)
## ---------------------------------------------------------------
## 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.
Resumo do Modelo mod1
# summary(mod1)
\(\beta\) \(\tau\) \(\sigma\) \(\phi\)
20.61 1.25 18.30 210.65
Modelo Espacial
Número de parâmetros AIC BIC
4 2077 2091
Modelo Não Espacial
Número de parâmetros AIC BIC
2 2460 2467
mod2=likfit(Bd,trend="2nd",kappa = 0.5,ini=c(421.43,69.13),nug=202.75 ,cov.model="matern",lam=0.5)
## ---------------------------------------------------------------
## 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.
Resumo do Modelo mod2
# summary(mod2)
\(\beta0\) \(\beta1\) \(\beta2\) \(\beta3\) \(\tau\) \(\sigma\) \(\phi\)
23.4502 -0.0830 0.0193 0.0002 1.2613 5.9594 69.1027
\(\beta4\) \(\beta5\)
——– ——–
0.0000 0.0000
Modelo Espacial
Número de parâmetros AIC BIC
9 2076 2107
Modelo Não Espacial
Número de parâmetros AIC BIC
4 2239 2264
mod3=likfit(Bd,trend=~coords[,2],kappa = 0.5,ini=c(421.43,69.13),nug=202.75 ,cov.model="matern",lam=0.5)
## ---------------------------------------------------------------
## 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.
Resumo do Modelo mod3
# summary(mod3)
\(\beta0\) \(\beta1\) \(\tau\) \(\sigma\) \(\phi\)
17.9928 0.0178 1.2573 15.2462 176.7026
Modelo Espacial
Número de parâmetros AIC BIC
5 2078 2095
Modelo Não Espacial
Número de parâmetros AIC BIC
3 2442 2453
mod4=likfit(Bd,trend=~coords[,1],kappa = 0.5,ini=c(421.43,69.13),nug=202.75 ,cov.model="matern",lam=0.5)
## ---------------------------------------------------------------
## 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.
Resumo do Modelo mod4
# summary(mod4)
\(\beta0\) \(\beta0\) \(\tau\) \(\sigma\) \(\phi\)
20.219 0.002 1.252 18.798 217.107
Modelo Espacial
Número de parâmetros AIC BIC
5 2079 2096
Modelo Não Espacial
Número de parâmetros AIC BIC
3 2376 2387
mod5=likfit(Bd,trend=~coords[,1]+~coords[,2],kappa = 0.5,ini=c(421.43,69.13 ),nug=202.75 ,cov.model="matern",lam=0.5)
## ---------------------------------------------------------------
## 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.
Resumo do Modelo mod5
# summary(mod5)
\(\beta0\) \(\beta1\) \(\beta2\) \(\tau\) \(\sigma\) \(\phi\)
17.7184 0.0014 0.0178 1.2592 15.5944 181.3035
Modelo Espacial
Número de parâmetros AIC BIC
6 2080 2101
Modelo Não Espacial
Número de parâmetros AIC BIC
4 2356 2370
Ajuste do Modelo Exponencial
Exp0<-likfit(Bd,trend="1st",ini=c(594,121.79),nug=220.75,lam=0.5,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.
Resumo do Modelo Exp0
# summary(Exp0)
\(\beta0\) \(\beta1\) \(\beta2\) \(\tau\) \(\sigma\) \(\phi\)
17.6891 -0.0010 0.0184 1.2253 11.0947 121.7495
Modelo Espacial
Número de parâmetros AIC BIC
6 2080 2101
Modelo Não Espacial
Número de parâmetros AIC BIC
4 2356 2370
Exp1=likfit(Bd,ini=c(594,121.79),nug=220.75,lam=0.5,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.
Resumo do Modelo Exp1
# summary(Exp1)
\(\beta\) \(\tau\) \(\sigma\) \(\phi\)
19.936 1.203 11.444 121.753
Modelo Espacial
Número de parâmetros AIC BIC
4 2078 2092
Modelo Não Espacial
Número de parâmetros AIC BIC
2 2460 2467
Exp2=likfit(Bd,trend="2nd",ini=c(594,121.79),nug=220.75,lam=0.5,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.
Resumo do Modelo Exp2
# summary(Exp2)
\(\beta0\) \(\beta1\) \(\beta2\) \(\beta3\) \(\tau\) \(\sigma\) \(\phi\)
22.8423 -0.0801 0.0162 0.0002 1.3312 9.2951 121.7534
\(\beta4\) \(\beta5\)
——– ——–
0.0000 0.0000
Modelo Espacial
Número de parâmetros AIC BIC
9 2077 2108
Modelo Não Espacial
Número de parâmetros AIC BIC
7 2239 2264
Exp3=likfit(Bd,trend="2nd",ini=c(594,121.79),nug=220.75,lam=0.5,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.
Resumo do Modelo Exp3
# summary(Exp3)
\(\beta0\) \(\beta1\) \(\beta2\) \(\beta3\) \(\tau\) \(\sigma\) \(\phi\)
22.8423 -0.0801 0.0162 0.0002 1.3312 9.2951 121.7534
\(\beta4\) \(\beta5\)
——– ——–
0.0000 0.0000
Modelo Espacial
Número de parâmetros AIC BIC
9 2077 2108
Modelo Não Espacial
Número de parâmetros AIC BIC
7 2239 2264
Exp4=likfit(Bd,trend=~coords[,1],ini=c(594,121.79),nug=220.75,lam=0.5,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.
Resumo do Modelo Exp4
# summary(Exp4)
\(\beta0\) \(\beta1\) \(\tau\) \(\sigma\) \(\phi\)
20.2335 -0.0014 0.0178 1.2592 15.5944
Modelo Espacial
Número de parâmetros AIC BIC
6 1.2030 121.7509
Modelo Não Espacial
Número de parâmetros AIC BIC
4 2376 2387
Comentário

Tomando como base para o critério de escolha do melhor modelo, aquele que apresenta menor AIC, dessa forma, o que apresentou esta característica Foi o Modelo Matern “mod2” com AIC = 2076, isso implica dizer que para a precipitação média dos dados apresentaram tendência de segunda ordem.

Definindo a Grid

par(mfrow=c(1,1))
 mod2=likfit(Bd,trend="2nd",kappa = 0.5,ini=c(421.43,69.13),nug=202.75 ,cov.model="matern",lam=0.5)
## ---------------------------------------------------------------
## 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.
gr=pred_grid(Bd$borders,by=3)
points(Bd)
points(gr,col=2,pch=19,cex=.3)

gr0=gr[.geoR_inout(gr,Bd$borders),]
points(gr0,col=3,pch=19,cex=0.3)

Processo de Krigagem

O processo de Krigagem permite construir mapas de incerteza espacial, no qual fornece uma visão global da congruência dos resultados.

kc <- krige.conv(Bd, loc=gr, bor=borda, krige=krige.control(obj=mod2))
## krige.conv: results will be returned only for prediction locations inside the borders
## krige.conv: model with mean given by a 2nd order polynomial on the coordinates
## krige.conv: performing the Box-Cox data transformation
## krige.conv: back-transforming the predicted mean and variance
## krige.conv: Kriging performed using global neighbourhood
# names(kc)
kc$pred[1:10]
##  [1] 60.05314 59.26807 58.45540 57.62099 61.31288 60.57698 59.79977
##  [8] 58.96019 58.07335 57.17339
image(kc,main="Mapa de Interpolação",x.leg=c(10,150),y.leg=c(0,15),xlab="Sul" ,ylab="Oeste")

Comentário

As cores mais claras indicam a região que recebe maior precipiutação, neste caso no Sertão e no litoral.

image(kc, main="Mapa de Interpolação",col=gray(seq(1,0.2,len=10)),x.leg=c(10,150),y.leg=c(0,15) ,xlab="Sul" ,ylab="Oeste")

Comentário

Este gráfico indica sa mesmas caracteristicas do anterior, mudadando apenas para a cor na escala de cinza.

kc1 <- krige.conv(Bd, loc=gr, bor=borda, krige=krige.control(obj=mod2))
## krige.conv: results will be returned only for prediction locations inside the borders
## krige.conv: model with mean given by a 2nd order polynomial on the coordinates
## krige.conv: performing the Box-Cox data transformation
## krige.conv: back-transforming the predicted mean and variance
## krige.conv: Kriging performed using global neighbourhood
image(kc1,main="Mapa de Interpolação",col= terrain.colors(200),x.leg=c(10,150),y.leg=c(0,15), xlab="Sul",ylab="Oeste")

contour(kc1,main="Mapa de Interpolação",c=T,col= terrain.colors(200), nlev = 200)

numlevel=200
contour(kc1,main="Mapa de Interpolação",f=T,col= terrain.colors(200), nlev = 150)

numlevel=50
contour(kc1,main="Mapa de Interpolação",c=T,col= adjustcolor(4, .4), nlev = 200)

numlevel=200