gpt4 book ai didi

r - clm 函数包序号 "Hessian is numerically singular: parameters are not uniquely determined"

转载 作者:行者123 更新时间:2023-12-05 05:23:38 24 4
gpt4 key购买 nike

我正在使用 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 和 C2 作为预测变量(另外 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 is numerically singular: parameters are not uniquely determined In addition: Absolute convergence criterion was met, but relative criterion was not met

并且不报告任何标准错误或 wald z 检验。

我在模拟数据的时候没有出现这个问题

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

让我感到困惑的是,与 m1 (O1 ~ O2) 不同,使用 O2 作为响应和 O1 作为预测变量的模型工作得很好。此外,我尝试替换 O1 中的一些值,但碰巧用 2 或 3 替换 1 时我没有收到任何警告消息,我获得了模型的所有系数。

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

非常感谢!

最佳答案

这是因为你有太多的空单元格(这里你只有2个主题iwith O2=3)尝试合并类别并重新拟合模型

关于r - clm 函数包序号 "Hessian is numerically singular: parameters are not uniquely determined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37230641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com