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)

检查yy.pred之间的残差

res &lt;- 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 领先一步预测的主要内容,如果未能解决你的问题,请参考以下文章

JAGS/BUGS 错误 - 可能涉及以下部分或全部节点的定向循环

使用额外回归量预测 ARIMA 模型

Keras 中的 LSTM 序列预测只输出输入的最后一步

一步一步学习S-MSCKF状态向量预测及其增广

预测球队比赛成绩

预测球队比赛成绩