我找到了回答我的问题的参考:https ://arxiv.org/pdf/1405.3738.pdf 。
模型相当复杂,这里是状态空间表示:

所以,假设我在 1,..,T 个时间段内研究了 L 种不同的产品。
Yl,t∼z∗δ0+(1−z)NB(exp(η˜l,t),alphal)是产品 l 在时间 t 的分布
η˜l,t=ηl,t+Xl,tθl这是产品 l 在时间 t 的销售平均值的对数,保证它是正的。
ηl,t=μl+ϕl(ηl,t−1−μ)+ϵl,t
ϵl,t∼N(0,1τl)
其他先验和超先验在下图中:

PS 现在我正在尝试编写 JAGS 代码,任何帮助将不胜感激!(https://stackoverflow.com/questions/40528715/runtime-error-in-jags)
编辑:
这是 JAGS 代码:
model{
#hyperpriors 4
alpha_star ~ dunif(0.001,0.1)
tau_mu_star ~ dunif(1,10)
mu_star ~ dnorm(0,0.5)
beta_tau ~ dunif(2,25)
beta_0_tau ~ dunif(1,10)
beta_theta ~ dunif(2,25)
phiminus ~ dunif(1,50)
k_tau ~ dunif(5,10)
k_0_tau ~ dunif(1,5)
pointmass_0 ~ dnorm(0,10000)
k_theta ~ dunif(5,10)
phiplus ~ dunif(1,600)
theta_star ~ dmnorm(b0,B0)
#17
for (l in 1:L){
z[l] ~ dbeta(0.5,0.5)
phi[l] ~ dbeta(phiplus + phiminus, phiminus)
tau[l] ~ dgamma(k_tau,beta_tau)
tau_theta[l] ~ dgamma(k_tau,beta_tau)
mu[l] ~ dnorm(mu_star, tau_mu_star)
alpha[l] ~ dexp(alpha_star)
eps[1,l] ~ dnorm(0,tau[l])
eta[1,l] = mu_star + eps[1,l]
theta[l,1:8] ~ dmnorm(theta_star,thetavar*tau_theta[l])
#y[1,l] ~ inprod(1-z[l],dnegbin(exp(eta[1,l]),alpha[l]))
y[1,l] ~ dnegbin(exp(eta[1,l]),alpha[l])
#y[1,l] ~ dnegbin(exp(eta[1,l]),alpha[l])
ystar[1,l] ~ dnorm(z[l]*pointmass_0 + inprod((1-z[l]),y[1,l]),100000)
}
for (i in 2:N){
for (l in 1:L){
eps[i,l] ~ dnorm(0,tau[l])
}
for(l in 1:L){
eta[i,l] = mu[l]+ phi[l]*(eta[i-1,l]-mu[l]) + eps[i,l]
eta_star[i,l]= eta[i,l] + inprod(c(x[i,l],xshared[i,]),t(theta[l,]))
#observations
#kobe[i,l] ~ dnegbin(dexp(eta_star[i,l]),alpha[l])
# #y[i,l] = inprod(1-z[l],kobe[i,l])
#y[i,l] ~ inprod(1-z[l],dnegbin(exp(eta_star[i,l]),alpha[l]))
#y[i,l] ~ dnegbin(exp(eta_star[i,l]),alpha[l])
y[i,l] ~ dnegbin(exp(eta_star[i,l]),alpha[l])
ystar[i,l] ~ dnorm(z[l]*pointmass_0 + inprod((1-z[l]),y[i,l]),100000)
}
}
}
我使用 runjags 从 R 调用:
parsamples <- run.jags('jags_model.txt', data=forJags, monitor=c('y','theta'), sample=100, method='rjparallel')