数据集包含大约11,000行,因此在检查代码运行时我一直在缩放它。所有行包含从Sentinel-2a图像和数字高程图提取的信息,而117个单元的子集也包含在实地考察中记录的栖息地协变量。因此,一些列,包括响应变量(S1),其特征是高比例的NA。
当我将K限制为450时,模型似乎运行正常,但当我将其增加到500时,我收到以下错误消息:
Error in node S1[500]
Node inconsistent with parents
当我创建一个仅包含117行的数据帧时,我收到类似的错误消息,这些行包含远程感知的数据和字段中记录的数据。此数据集中有一些NAs,因为某些图不可访问,但大多数单元格包含值。
我在读完这个帖子后尝试删除#inits#行: RJAGS output Node inconsistent with parents。 这导致模型运行。我认为这表明问题在于初始化?
前五行完整数据框:
S1 Logit_tussac soil_moisture DEM_slope DEM_aspect DEM_elevation sentinel1 sentinel2 sentinel3 sentinel4 sentinel5 sentinel6 sentinel7 sentinel8 sentinel9 sentinel10
NA NA NA 2.434239 168.5011 0.588606366 0.0413 0.0499 0.0531 0.1035 0.1862 0.1968 0.1808 0.1318 0.0400 0.0199
NA NA NA 3.705001 178.1289 1.007037127 0.0966 0.1108 0.1212 0.0855 0.0917 0.1063 0.0937 0.1842 0.0341 0.0161
NA NA NA 5.006181 180.0000 1.883010797 0.1309 0.1472 0.1361 0.0855 0.0917 0.1063 0.0937 0.1572 0.0341 0.0161
NA NA NA 5.006181 180.0000 2.758984468 0.0542 0.0512 0.0472 0.0145 0.0127 0.0092 0.0166 0.0510 0.0148 0.0080
NA NA NA 3.014719 161.5793 0.004048217 0.0224 0.0138 0.0223 0.1019 0.1209 0.1332 0.1504 0.0411 0.1099 0.0608
NA NA NA 2.907236 170.7134 0.504032418 0.0470 0.0634 0.0544 0.1019 0.1209 0.1332 0.1504 0.0997 0.1099 0.0608
前五行数据框仅包含在字段中测量的包含协变量的单元格:
S1 Logit_tussac soil_moisture DEM_slope DEM_aspect DEM_elevation sentinel1 sentinel2 sentinel3 sentinel4 sentinel5 sentinel6 sentinel7 sentinel8 sentinel9 sentinel10
NA NA NA 14.917334 256.1612 12.24432 0.0513 0.0588 0.0541 0.1145 0.1676 0.1988 0.1977 0.1658 0.1566 0.0770
0 -9.210240 1 23.803741 225.1231 16.88028 0.1058 0.1370 0.2139 0.2387 0.2654 0.2933 0.3235 0.2928 0.3093 0.1601
NA NA NA 20.789165 306.0945 18.52480 0.0287 0.0279 0.0271 0.0276 0.0290 0.0321 0.0346 0.0452 0.0475 0.0219
NA -9.210240 1 6.689442 287.9641 36.08975 0.0462 0.0679 0.1274 0.1535 0.1797 0.2201 0.2982 0.2545 0.4170 0.2252
0 -9.210240 1 25.476444 203.0659 23.59964 0.0758 0.1041 0.1326 0.1571 0.2143 0.2486 0.2939 0.2536 0.3336 0.1937
1 -1.385919 3 1.672511 270.0000 39.55215 0.0466 0.0716 0.1227 0.1482 0.2215 0.2715 0.3334 0.2903 0.3577 0.1957
soil_moisture是一个因素,而其他变量是数字。
模特:
model <- "model{
for(i in 1:K) {
S1[i]~dpois(lambda1[i])
lambda1[i]<-exp(a0+ a1*DEM_aspect[i]+a2*DEM_slope[i]+a3*DEM_elevation[i]+
a4*tussac[i]+a5*sentinel1[i]+a6*sentinel2[i]+a7*sentinel3[i]+a8*sentinel4[i]
+a9*sentinel5[i]+a10*sentinel6[i]+a11*sentinel7[i]+a12*sentinel8[i]
+a13*sentinel9[i]+a14*sentinel10[i])
muLogit_tussac[i]<-b0+b1*sentinel7[i]+b2*sentinel9[i]+b3*DEM_elevation[i]
Logit_tussac[i]~dnorm(muLogit_tussac[i], tau)
logit(tussac[i])<-Logit_tussac[i]
}
# Priors
a0~dnorm(0, 10)
a1~dnorm(0, 10)
a2~dnorm(0, 10)
a3~dnorm(0, 10)
a4~dnorm(0, 10)
a5~dnorm(0, 10)
a6~dnorm(0, 10)
a7~dnorm(0, 10)
a8~dnorm(0, 10)
a9~dnorm(0, 10)
a10~dnorm(0, 10)
a11~dnorm(0, 10)
a12~dnorm(0, 10)
a13~dnorm(0, 10)
a14~dnorm(0, 10)
b0~dnorm(0, 10)
b1~dnorm(0, 10)
b2~dnorm(0, 10)
b3~dnorm(0, 10)
tau~dgamma(0.001, 0.001)
#data# S1, K, sentinel1, sentinel2, sentinel3, sentinel4, sentinel5, sentinel6, sentinel7, sentinel8, sentinel9, sentinel10, DEM_slope, DEM_aspect, DEM_elevation
#inits# a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, b0, b1, b2, b3
#monitor# a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, b0, b1, b2, b3, ped, dic
}"
我为先辈尝试了一系列不同的值,包括但不限于(0,5),(0,0.5)(0,0.001)
我使用以下信息来运行代码:
# Initial values
a0 <- list(chain1=1, chain2=2)
a1 <- list(chain1=1, chain2=2)
a2 <- list(chain1=1, chain2=2)
a3 <- list(chain1=1, chain2=2)
a4 <- list(chain1=1, chain2=2)
a5 <- list(chain1=1, chain2=2)
a6 <- list(chain1=1, chain2=2)
a7 <- list(chain1=1, chain2=2)
a8 <- list(chain1=1, chain2=2)
a9 <- list(chain1=1, chain2=2)
a10 <- list(chain1=1, chain2=2)
a11 <- list(chain1=1, chain2=2)
a12 <- list(chain1=1, chain2=2)
a13 <- list(chain1=1, chain2=2)
a14 <- list(chain1=1, chain2=2)
b0 <- list(chain1=1, chain2=2)
b1 <- list(chain1=1, chain2=2)
b2 <- list(chain1=1, chain2=2)
b3 <- list(chain1=1, chain2=2)
model <- run.jags(model=model, burnin=1000, sample=10000, n.chains=2, modules="glm")
任何想法如何解决错误,为什么它只出现一定大小的K以及为什么删除#inits#导致它运行?
对不起文字和代码的墙。我认为最好尽可能多地包含信息。我对JAGS很陌生,所以我仍然不确定相关内容。