【问题标题】:Jags/Bugs one step ahead predictionJags/Bugs 领先一步预测
【发布时间】: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)
  }
这是来自一本书,这个例子。我如何获得领先一步的预测,因为我对平滑输出不感兴趣。

【问题讨论】:

    标签: mcmc winbugs jags


    【解决方案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 步的预测。
    猜你喜欢
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 2016-10-06
    • 2013-01-15
    • 2016-05-13
    • 2014-06-06
    相关资源
    最近更新 更多