Hi again,
I was testing a simple spatial-only model with inlabru just to see how it compares to INLA predictions at the same point locations and got this error (screenshot attached). Is this a memory issue? My code for both the inla and inlabru models and predictions is below for reference.
Thanks!
Pascale
mesh = inla.mesh.2d(loc=cbind(coords$x, coords$y),
loc.domain=borders[,c("long","lat")],
max.edge=c(7500, 20000),
cutoff=3000)
spde1 = inla.spde2.pcmatern(mesh=mesh, alpha=2,
prior.range=c(7000, 0.01),
prior.sigma=c(2.5, 0.01))
A1 = inla.spde.make.A(mesh=mesh,
loc=cbind(dat2$x, dat2$y))
s_index1 = inla.spde.make.index(name="spatial.field",
n.spde=spde1$n.spde)
stack1 = inla.stack(data=list(y=dat2$y, offs=dat2$offset),
A=list(A1, 1), # projector matrix
effects=list(c(s_index1, list(Intercept=1)), list(trap_type2=dat2$trap_type2)),
tag="est")
pred = centroids2@data
pred$offset = 1
pred$trap_type2 = 0
A2 = inla.spde.make.A(mesh=mesh,
loc=cbind(pred$x, pred$y))
stack2 = inla.stack(data=list(y=NA, offs=pred$offset),
A=list(A2, 1), # projector matrix
effects=list(c(s_index1, list(Intercept=1)), list(trap_type2=pred$trap_type2)),
tag="pred")
stack = inla.stack(stack1, stack2)
form = y ~ -1 + Intercept + trap_type2 +
f(spatial.field, model=spde1)
m.inla = inla(form,
offset=log(inla.stack.data(stack)$offs),
data=inla.stack.data(stack),
family="nbinomial",
control.predictor=list(A=inla.stack.A(stack), compute=T, link=1))
i_pred = inla.stack.index(stack, "pred")$data
marginals = m.inla$marginals.fitted.values[i_pred]
pred$pred.inla = unlist(lapply(marginals, function(x) inla.qmarginal(0.5, x)))
comp = y ~ field(map=cbind(dat2$x, dat2$y), model=spde1) + Intercept + trap_type2
m.bru = bru(comp,
family="nbinomial",
data=dat2,
formula=~field + Intercept + trap_type2,
options=list(E=dat2$offset))
pred$pred.bru = predict(m.bru, pred[,c("x","y","trap_type2")], formula=~exp(field + Intercept + trap_type2))