1

我正在使用 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,
4

0 回答 0