R-二进制响应模型中的分离问题-glm,brglm,logistf

Xoc*_* C. 5 binary r glm logistf

我的数据遇到一些问题,需要一些帮助。我正在尝试使用存在/不存在变量作为响应变量和几个解释变量(时间,位置,存在/不存在数据,丰度数据)运行glm分析。

首先,我尝试使用glm()函数,但是我收到有关glm.fit()的2条警告:1:glm.fit:算法未收敛2:glm.fit:拟合的数值出现0或1经过一些调查我发现问题很可能是完全分离,因此决定使用brglm和/或logistf。

  • logistf:分析未运行当运行logistf()时,我收到一条错误消息:chol.default(x)中的错误:未成年人39不是肯定的我在理论和技术论文中浏览了Internet上的logistf软件包手册和Heinze和Ploner的版本,无法找到使用此功能的位置以及是否可以通过某些设置解决错误。

  • brglm:分析运行但是我收到一条警告消息:在fit.proc(x = X,y = Y,weights = weights,start = start,etastart#= etastart,:达到迭代极限,就像之前我找不到位置和原因一样如果运行软件包时可以使用此功能,并且可以通过调整某些设置将其修复。

以一种更一般的方式,我想知道这些软件包的根本区别是什么。

我希望这足够有意义,如果这是我不知道的统计证据,我感到抱歉。

这是我第一次问一个问题,因此我很抱歉是否应该这样,并请您不要犹豫,让我知道这件事。

谢谢您的帮助

Xochitl C.


这里是我的表的摘录(由于表太宽,我不得不截断行的长度:20列)和运行的其他公式:

head ()

Year Quarter Subarea Latitude Longitude    Presence.S CPUE.S Presence.H CPUE.H Presence.NP 

1 2000       1    31F1    51.25       1.5          0      0          0     0        0   
2 2000       1    31F2    51.25       2.5          0      0          0     0        0  
3 2000       1    32F1    51.75       1.5          0      0          0     0        0   
4 2000       1    32F2    51.75       2.5          0      0          0     0        0   
5 2000       1    32F3    51.75       3.5          0      0          0     0        0   
6 2000       1    33F1    52.25       1.5          0      0          0     0        0   

tail ()

Year Quarter Subarea Latitude Longitude Presence.S  CPUE.S Presence.H  CPUE.H 

4435 2012       3    50F3    60.75       3.5    1  103.000   1       110.000            
4436 2012       3    51E8    61.25      -1.5    1 1311.600   1       12.000   
4437 2012       3    51E9    61.25      -0.5    1   34.336   1       46.671               
4438 2012       3    51F0    61.25       0.5    1  430.500   1       148.000              
4439 2012       3    51F1    61.25       1.5    1  115.000   1       85.000              
4440 2012       3    51F2    61.25       2.5    1   72.500   1       5.500                 

logistf_binomPres <- logistf (Presence.S ~ (Presence.BW + Presence.W + Presence.C + Presence.NP +Presence.P + Presence.H +CPUE.BW + CPUE.H + CPUE.P + CPUE.NP + CPUE.W + CPUE.C + Year + Quarter + Latitude + Longitude)^2, data = CPUE_table)

Brglm_binomPres <- brglm (Presence.S ~ (Presence.BW + Presence.W + Presence.C + Presence.NP +Presence.P + Presence.H +CPUE.BW + CPUE.H + CPUE.P + CPUE.NP + CPUE.W + CPUE.C + Year + Quarter + Latitude + Longitude)^2, family = binomial, data = CPUE_table)
Run Code Online (Sandbox Code Playgroud)

bdu*_*bdu 1

无论如何,我还遇到了“前导小数 i 不是正定”错误。

这是因为我的第 i 个变量对于所有观察结果都是相同的。删除此变量解决了该问题。

希望这可以帮助