You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用glmer出现“Hessian is numerically singular”警告的原因咨询

关于glmer模型出现“Hessian数值奇异”警告的原因解析

你的数据集

> test_df
   sample pers expl resp
1       1    1    a    1
2       2    2    a    1
3       3    3    a    1
4       4    4    a    1
5       5    5    a    1
6       6    1    b    1
7       7    2    b    1
8       8    3    b    0
9       9    4    b    1
10     10    5    b    1
11     11    1    c    0
12     12    2    c    1
13     13    3    c    0
14     14    4    c    1
15     15    5    c    0
16     16    1    d    1
17     17    2    d    1
18     18    3    d    0
19     19    4    d    1
20     20    5    d    1
21     21    1    e    1
22     22    2    e    1
23     23    3    e    0
24     24    4    e    1
25     25    5    e    1
26     26    1    f    0
27     27    2    f    0
28     28    3    f    0
29     29    4    f    0
30     30    5    f    0
31     31    1    g    1
32     32    2    g    1
33     33    3    g    0
34     34    4    g    0
35     35    5    g    0
36     36    6    a    1
37     37    7    a    1
38     38    8    a    1
39     39    9    a    1
40     40   10    a    1
41     41    6    h    1
42     42    7    h    1
43     43    8    h    1
44     44    9    h    1
45     45   10    h    1
46     46    6    i    1
47     47    7    i    1
48     48    8    i    1
49     49    9    i    1
50     50   10    i    1
51     51    6    d    1
52     52    7    d    1
53     53    8    d    1
54     54    9    d    1
55     55   10    d    1
56     56    6   d2    1
57     57    7   d2    1
58     58    8   d2    1
59     59    9   d2    1
60     60    6    e    1
61     61    7    e    1
62     62    8    e    1
63     63    9    e    1
64     64   10    e    1
65     65    6   e2    1
66     66    7   e2    1
67     67    8   e2    1
68     68    9   e2    1
69     69   10   e2    1
70     70    6    g    1
71     71    7    g    0
72     72    8    g    1
73     73    9    g    1
74     74   10    g    0

你执行的模型代码

model <- glmer(resp~expl+(1|pers), data=test_df, family=binomial)

收到的警告信息

Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
   Hessian is numerically singular: parameters are not uniquely determined

警告原因解析

这个警告本质是模型无法唯一确定某些参数的估计值,结合你的数据和模型,主要有几个可能的诱因:

  • 完全分离情况:看你的数据,expl=f对应的所有resp取值都是0,属于完全分离——某个解释变量类别下,响应变量的取值完全一致。这种情况下,模型会试图给这个类别分配一个无穷大的系数来拟合,但数值计算无法实现,进而导致Hessian矩阵奇异,参数无法被唯一确定。
  • 随机效应方差趋近于0:你加入了(1|pers)的随机截距,如果不同pers之间的响应差异极小,模型估计的随机效应方差会接近0,此时随机效应和固定效应的参数会出现冗余,导致参数无法被唯一识别。
  • 解释变量类别过多且部分类别数据支撑不足:你的expl包含多个类别(a、b、c、d、d2、e、e2、f、g、h、i),部分类别对应的样本量或响应变异度不够,没法支撑独立的参数估计,最终引发参数估计不稳定。

内容的提问来源于stack exchange,提问作者Carpa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 10:05:17