我在spBayes包中使用spRecover函数来生成空间单变量模型。
这是一个可重复的例子,我在那里制作了一个重复的坐标点。建模过程本身执行得很好,但它不会让我恢复每个站点的空间效果:
require(spBayes)
set.seed(444)
N = 200
y = rnorm(N,0,100)
x = rnorm(N,2,7)
df <- as.data.frame(cbind((rnorm(N,5,2.5)),rep('location1',N)))
coord <- cbind(runif(N,-30,30),runif(N,-180,180))
coord[2,] <- coord [1,]
n.samples <- 1000
bef.sp <- spLM(y ~ x, ## the equation
data = df, coords=coord, ## data and coordinates
starting=list("phi"=3/200,"sigma.sq"=0.08,"tau.sq"=0.02),## start values
tuning=list("phi"=0.1, "sigma.sq"=0.05, "tau.sq"=0.05), ## tuning values
priors=list("phi.Unif"=c(3/1500, 3/50), "sigma.sq.IG"=c(2, 0.08),"tau.sq.IG"=c(2, 0.02)), ## priors
cov.model="exponential",n.samples=n.samples)
burn.in <- floor(0.75*n.samples)
bef.sp <- spRecover(bef.sp, start=burn.in, thin=2)
收到的错误是:
Error in spRecover(bef.sp, start = burn.in, thin = 2) :
c++ error: dpotrf failed
我发现程序包作者发现post,表示如果复制了坐标,则可能会出现此错误。我肯定有重复的坐标,因为许多网站都被多次采样(在同一天;这不是时间序列问题)。如何让模型接受每个坐标对中有大量复制,并为每个站点恢复单个空间效果值?
谢谢!