我正在运行一个模型,使用R中的BRugs包进行贝叶斯推理。该模型在语法上是正确的并且数据加载,但是modelCompile函数永远运行,我在15小时后停止它,但我不知道问题可能是什么。
model
{
##################################
#### Assign initial values #######
##################################
for( i in 1 : N ) { xn[i,1]<-n0[i]/scaleN}
for( j in 1 : M ) { xm[j,1]<-m0[j]/scaleM}
#xnS[i,t]<-xn[i,t]*scaleN
for( i in 1 : N ) {Neq[i]<-Neq0[i]/scaleN}
for( i in 1 : M ) {Meq[i]<-Meq0[i]/scaleM}
###### SYSTEM PROCESS #########
########################
### At equilibrium #####
########################
######## Visitation #######
for(j in 1:M) {
co[j]<-inprod(Neq[],P[,j]) + h[j]*Meq[j]
}
for(j in 1:M) {
for(i in 1:N) {
Veq[i,j] <- P[i,j]*Meq[j]*Neq[i]*co[j]/(inprod(Neq[],P[,j])+h[j]*Meq[j])
}
}
### Benefits ###
for(j in 1:M) {
for(i in 1:N) {
PerCapPolEqVis[i,j] <- Veq[i,j]/Meq[j]
PerCapPltEqVis[i,j] <- Veq[i,j]/Neq[i]
Req[i,j] <- pow(P[i,j]*Neq[i]/inprod(P[,j],Neq[]),beta[i])
}
}
###############################
####### Time steps ############
###############################
for( t in 2 : T ) {
####################
#### Visitation ####
####################
for(j in 1:M) {
for(i in 1:N) {
v[i,j,t] <- P[i,j]*xm[j,t-1]*xn[i,t-1]*co[j]/(inprod(xn[,t-1],P[,j])+h[j]*xm[j,t-1])
}
}
#############################
#### Pollinator Benefits ####
#############################
for(j in 1:M) {
for(i in 1:N) {
PerCapPolVis[i,j,t] <- v[i,j,t]/xm[j,t-1]
}
bm0[j,t]<-sum(PerCapPolVis[,j,t])/sum(PerCapPolEqVis[,j])
}
########################
#### Plant Benefits ####
########################
for(i in 1:N) {
for(j in 1:M) {
PerCapPltVis[i,j,t] <- v[i,j,t]/xn[i,t-1]
r[i,j,t] <- pow(P[i,j]*xn[i,t-1]/inprod(P[,j],xn[,t-1]),beta[i])
}
bn[i,t] <- inprod(PerCapPltVis[i,,t],r[i,,t])/inprod(PerCapPltEqVis[i,],Req[i,])
}
#############################
###### New Abundances #######
#############################
nN[t]<-sum(xn[,t-1])/sum(Neq[])
for(i in 1:N) {
xn[i,t] <- xn[i,t-1]*exp(-d[i] + a[i]*bn[i,t] - (a[i]-d[i])*nN[t])
}
for(j in 1:M) {
bm[j,t]<-bm0[j,t]-1
xm[j,t] <- xm[j,t-1]*exp(g[j]*bm[j,t])
}
#############################
#### Model Observations #####
#############################
for(i in 1 : N ) {
xnS[i,t]<-xn[i,t]*scaleN
n[i,t] ~ dpois(xnS[i,t]) }
for(j in 1 : M ) {
xmS[j,t]<-xm[j,t]*scaleM
m[j,t] ~ dpois(xmS[j,t]) }
}
#######################################
#### Distributions for parameters #####
#######################################
for(i in 1:N) {
a[i] ~ dunif(0,50)
d[i] ~ dunif(0,50)
beta[i] ~ dunif(0,1)
}
for(j in 1:M) {
g[j] ~ dunif(0,50)
h[j] ~ dunif(0,50)
}
}
数据文件非常大,但我可以根据要求提供...
list(
M = 527, N = 112, T = 5, scaleN = 0.0000001 , scaleM = 0.0001,
n = structure(
.Data =c(477,145,82,353,47,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
3,0,2,3,0,
0,0,0,0,0,
0,0,0,74,0,
0,0,0,0,0,