Jags/Bugs 领先一步预测
Posted
技术标签:
【中文标题】Jags/Bugs 领先一步预测【英文标题】:Jags/Bugs one step ahead prediction 【发布时间】:2015-05-19 21:27:23 【问题描述】:想象一个简单的增长模型。 我如何获得领先一步的预测??
# Priors and constraints
N.est[1] ~ dunif(0, 10) # Prior for initial population size
mean.lambda ~ dunif(0, 10) #
mean.psi ~ dunif(0, 10) #
sigma.proc ~ dunif(0, 10)# Prior for sd of state process
sigma2.proc <- pow(sigma.proc, 2)
tau.proc <- pow(sigma.proc, -2)
sigma.obs ~ dunif(0, 10) # Prior for sd of observation process
sigma2.obs <- pow(sigma.obs, 2)
tau.obs <- pow(sigma.obs, -2)
sigma.psi ~ dunif(0, 10) # Prior for sd of observation process
psi2.psi <- pow(sigma.psi, 2)
tau.psi <- pow(sigma.psi, -2)
# Likelihood
# State process
for (t in 1:(T-1))
lambda[t] ~ dnorm(mean.lambda, tau.proc)
psi[t] ~ dnorm(mean.psi, tau.psi)
N.est[t+1] <- 10/ ( 1+ exp(- psi[t] *(N.est[t] * lambda[t]) ) ) #N.est[t] * lambda[t] + psi[t]
# Observation process
for (t in 1:T)
y[t] ~ dnorm(N.est[t], tau.obs)
这是来自一本书,这个例子。我如何获得领先一步的预测,因为我对平滑输出不感兴趣。
【问题讨论】:
【参考方案1】:您要做的只是将响应向量y
中要预测的那些单元设置为NA
,然后生成y
的复制样本;
y.pred[t] ~ dnorm(N.est[t], tau.obs)
检查y
和y.pred
之间的残差
res <- y - y.pred
Using JAGS in R with the rjags package
【讨论】:
没错,但是,想象一下,您将第 6 个样本设置为 NA,然后您得到了第 6 个样本的预测,但是现在您想使用第 6 个样本来预测第 7 个,依此类推。我目前正在通过运行将第 6 个值设置为 NA 的模型来执行此操作,在下一次运行中,我将第 7 个值设置为 NA,依此类推。这不是很实用。我正在考虑一种更简单的方法。 不确定我是否发现了问题。您应该将要预测的第 6 个到第 n 个样本设置为 NA。估计是一个马尔科夫过程,即第 6 个 NA 样本是从第 5 个数据样本估计的,第 7 个 NA 样本将从第 6 个(已经)预测的样本中估计等等...... 嗯,我认为第 6 个是从第 1 个样本到第 5 个样本预测的。因为当前状态应该包含过去的所有信息。当然是马尔科维安。第 7 次将根据第 6 次预测进行预测,这将使其成为提前 2 步的预测。以上是关于Jags/Bugs 领先一步预测的主要内容,如果未能解决你的问题,请参考以下文章