1

想象一个简单的增长模型。我如何获得领先一步的预测?

 # 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)
  }
这是来自一本书,这个例子。我如何获得领先一步的预测,因为我对平滑输出不感兴趣。

4

1 回答 1

1

您要做的是简单地将您想要在响应向量中预测的那些单位设置yNA,然后生成 ; 的复制样本y

y.pred[t] ~ dnorm(N.est[t], tau.obs)

y检查和之间的残差y.pred

res <- y - y.pred

在 R 中使用 JAGS 和 rjags 包

于 2015-03-19T23:24:03.460 回答