R - CLM 函数包序数 "Hessian is numerically singular: parameters are not uniquely determined"



我使用R中序数包中的clm函数对序数数据进行建模。为此,我有4个变量,2个序数和2个连续变量(O1,O2,C1,C2)。

O1 <- c(2,2,1,2,2,1,3,2,2,3,3,2,1,3,2,2,2)
O2 <- c(2,2,3,2,2,1,2,2,2,1,1,2,3,2,2,2,2)
C1 <- C(49,25,1000,19,61,700,25,375,35,46,105,437,3300,31,203,34,800)
C2 <- c(25350,25050,14925,25050,14325,16300,26425,22250,22250,44650,44650,21400,30125,25350,25050,14325,17525)
data <- data.frame (O1, O2, C1, C2)
data <- within(data, {
O1 <- factor ((O1), ordered =TRUE,
              levels = c("1", "2", "3"))
O2 <- factor ((O2), ordered =TRUE,
              levels = c("1", "2", "3"))
})

在第一步中,我想将O1建模为响应变量,将O2、C1和C2建模为预测因子(3个不同的模型),其次,将O2建模为响应,将O1、C1和C1建模为预测函数(另外3个不同模型)。

m1 <- clm(O1 ~ O2, data = data)
m2 <- clm(O1 ~ C1, data = data)
m3 <- clm(O1 ~ log(C2), data = data)
m4 <- clm(O2 ~ O1, data = data)
m5 <- clm(O2 ~ C1, data = data)
m6 <- clm(O2 ~ log(C2), data = data)

正如你所看到的,除了第一个(m1)作为警告消息:之外,所有模型都运行得没有问题

(1) Hessian在数值上是奇异的:参数不是唯一确定的此外:满足绝对收敛准则,但不满足相对准则

并且不报告任何标准误差或waldz检验。

我在模拟数据时没有这个问题

 data$x1 <- sample(c(1,2,3), 17, replace = TRUE)

令我困惑的是,与m1(O1~O2)不同,使用O2作为响应,O1作为预测因子的模型运行得非常好。此外,我尝试替换O1中的一些值,当用2或3替换1时,我没有得到任何警告消息,并且我获得了模型的所有系数。

我做了一些研究,这似乎是由于响应中某些值的代表性较低,以及样本量较小。这是对的,还是可能是一个bug?有人能帮帮我吗?

非常感谢!

这是因为你有太多的空单元格(这里只有两个受试者,其中O2=3)尝试合并类别并重新安装型号

相关内容

最新更新