我的数据帧“MyDataRisk”有1个二项式响应变量(Risk)的36692行,以及3个连续+ 1个分类变量。 Id定义了研究地点的身份。以下是摘要:
> summary(MyDataRisk)
id Landscape Road_width Risk
Min. : 1.00 Forest : 7214 Min. :3.800 Min. :0.0000
1st Qu.: 11.00 Double hedge : 4955 1st Qu.:5.500 1st Qu.:0.0000
Median : 31.00 Simple hedge : 3490 Median :6.000 Median :0.0000
Mean : 40.92 Perp_Hedge : 15433 Mean :6.005 Mean :0.1875
3rd Qu.: 66.00 Edge : 4020 3rd Qu.:6.400 3rd Qu.:0.0000
Max. :112.00 No_vegetation: 1580 Max. :7.700 Max. :1.0000
Vegetation_height Vegetation_Distance
Min. :-2.17260 Min. :-1.32359
1st Qu.:-0.54750 1st Qu.:-0.82262
Median :-0.08318 Median : 0.04941
Mean : 0.00000 Mean : 0.00000
3rd Qu.: 0.61329 3rd Qu.: 1.04935
Max. : 2.70271 Max. : 1.74702
我使用以下glmmPQL来建模我的响应变量:
Mod1 <- glmmPQL(Risk ~ Vegetation_height+Road_width+Vegetation_Distance+Landscape
+Vegetation_height:Road_width
+Vegetation_height:Vegetation_Distance
+Vegetation_height:Landscape
+Road_width:Vegetation_Distance
+Road_width:Landscape
+Vegetation_Distance:Landscape,
data=MyDataRisk,
family = binomial, random = ~ 1|id)
我收到以下错误消息:
iteration 1
Error in MEEM(object, conLin, control$niterEM) :
Singularity in backsolve at level 0, block 1
现在,分类变量“风景”的值“No_vegetation”在“植被高度”和“植被距离”方面没有变化。这是有道理的。问题可能来自这里。如果我选择删除“No_vegetation”的观测值,那么该模型可以正常工作。但是我想保留这些观察结果,因为它们在我的设计中很重要,并测试“景观”的所有值的相互作用,但是对于“No_vegetation”。
我知道可以修改模型的设计矩阵,但我无法理解它是否适用于我的情况,以及如何做...