[R-br] Intervalo de predição INLA
Wagner Wolff
wwolff em usp.br
Terça Maio 9 17:18:18 BRT 2017
Olá pessoal estou fazendo uma modelagem geoestatística pelo INLA, mas estou
com dúvidas quanto às estimativas para os intervalos de credibilidade
maiores, p.ex. 95%, para esta situação os valores estimados fogem do campo
amostral que é de 0,3 a 0,7. Alguém sabe onde posso configurar para que as
estimativas fiquem nesse intervalo. Segue o código:
## Criando domain
IEBdomain <- inla.nonconvex.hull(as.matrix(dados[,1:2]), -0.03, -0.05,
resolution=c(100,100))
## Crando mesh
IEBmesh <- inla.mesh.2d(boundary=IEBdomain, max.edge=c(35,35), cutoff=35,
offset=c(-0.5, -0.5))
plot(IEBmesh, asp=1, main='')
## spde matern 0.5 = exponetial
IEBspde <- inla.spde2.matern(mesh=IEBmesh,alpha=2)
mesh.index <- inla.spde.make.index(name = "i",
n.spde = IEBspde$n.spde)
## Matriz projetora estimativa
A.est <- inla.spde.make.A(IEBmesh, loc=as.matrix(dados[,1:2]))
## Matriz de covariaveis selecionadas pelo AIC, estatistica frequentista
covars <- dados[,c(1:4,6:23)]
stk.est <- inla.stack(data=list(y=dados$IEB_ANO), A=list(A.est,1),
tag="est",
effects=list(c(mesh.index,list(Intercept=1)),
list(covars)))
stk.val <- inla.stack(data=list(y=NA), A=list(A.est,1), tag="est",
effects=list(c(mesh.index,list(Intercept=1)),
list(covars)))
## Matriz projetora predicao
A.pred = inla.spde.make.A(IEBmesh)
stk.pred = inla.stack(data = list(y = NA),
A = list(A.pred),tag = "pred",
effects=list(c(mesh.index,list(Intercept=1))))
str(stk.pred)
stk.all <- inla.stack(stk.est, stk.val,stk.pred)
## Testar qual variável tem menor DIC
names(covars)
f.IEB <- y ~ -1 + Intercept + Dens.dren + f(i, model=IEBspde)
names(inla.models()$likelihood)
r.IEB <-inla(f.IEB,family="beta",
control.compute=list(dic=TRUE),quantiles=c(0.025,0.1,0.5,
0.975),
data=inla.stack.data(stk.all,spde=IEBspde),
control.predictor=list(A=inla.stack.A(stk.all),compute=TRUE))
names(r.IEB)
r.IEB$dic$dic
r.IEB$summary.fixed
r.IEB$summary.hyper[1,]
r.IEB$summary.hyper[-1,]
result <- inla.spde2.result(r.IEB, "i", IEBspde)
names(result)
str(r.IEB$marginals.hyperpar)
## Posterior mean
inla.emarginal(function(x) x, result$marginals.variance.nominal[[1]])
inla.emarginal(function(x) x, result$marginals.range.nominal[[1]])
## Quantis
inla.qmarginal(c(0.025,0.5,0.975), result$marginals.variance.nominal[[1]])
inla.qmarginal(c(0.025,0.5,0.975), result$marginals.range.nominal[[1]])
par(mfrow=c(2,3), mar=c(3,3.5,0,0), mgp=c(1.5, .5, 0), las=0)
plot(r.IEB$marginals.fix[[1]], type='l', xlab=expression(beta[0]),
ylab='Density')
plot(r.IEB$marginals.fix[[2]], type='l', xlab=expression(beta[1]),ylab=
'Density')
plot(r.IEB$marginals.hy[[1]], type='l', xlab=expression(phi),ylab='Density')
plot.default(inla.tmarginal(function(x) 1/exp(x), r.IEB$marginals.hy[[3]]),
type='l',
xlab=expression(kappa), ylab='Density')
plot.default(result$marginals.variance.nominal[[1]], type='l',
xlab=expression(sigma[x]^2), ylab='Density')
plot.default(result$marginals.range.nominal[[1]], type='l', xlab='Practical
range',
ylab='Density')
index.pred <- inla.stack.index(stk.all, "pred")$data
names(r.IEB$summary.linear.predictor)
linpred.mean <- r.IEB$summary.linear.predictor[index.pred,"mean"]
linpred.2.5 <- r.IEB$summary.linear.predictor[index.pred,"0.025quant"]
linpred.10 <- r.IEB$summary.linear.predictor[index.pred,"0.1quant"]
linpred.50 <- r.IEB$summary.linear.predictor[index.pred,"0.5quant"]
linpred.97.5 <- r.IEB$summary.linear.predictor[index.pred,"0.975quant"]
(nxy <- round(c(diff(c(200,800)), diff(c(6700,7200)))))
proj <- inla.mesh.projector(IEBmesh, xlim=c(200,800), ylim=c(6700,7200),
dims=nxy)
lp.mean.grid <- inla.mesh.project(proj, linpred.mean)
lp.2.5.grid <- inla.mesh.project(proj, linpred.2.5)
lp.10.grid <- inla.mesh.project(proj, linpred.10)
lp.50.grid <- inla.mesh.project(proj, linpred.50)
lp.97.5.grid <- inla.mesh.project(proj, linpred.97.5)
par(mfrow=c(2,3), mar=c(3,3.5,0,0), mgp=c(1.5, .5, 0), las=0)
image(lp.2.5.grid)
image(lp.10.grid)
image(lp.mean.grid)
image(lp.97.5.grid)
Abraço
--
*Wagner Wolff, **PhD*
"*Luiz de Queiroz**" College of Agriculture,*
University of São Paulo
Pádua Dias avenue11 | 13418-900| Piracicaba-SP| Brazil
Phone: +55 19 982385582 <+55%2019%2098238-5582>
http://orcid.org/0000-0003-3426-308X
https://github.com/wwolff7
http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4463141A1
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20170509/3a52aa15/attachment.html>
Mais detalhes sobre a lista de discussão R-br