首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >clm函数包序号"Hessian是数值奇异的:参数不是唯一确定的“

clm函数包序号"Hessian是数值奇异的:参数不是唯一确定的“
EN

Stack Overflow用户
提问于 2016-05-14 18:53:46
回答 1查看 1.3K关注 0票数 3

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

代码语言:javascript
运行
复制
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种不同的模型)。

代码语言:javascript
运行
复制
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是数值奇异的:参数不是唯一确定的,而且满足绝对收敛准则,但不满足相关准则。

并且不要报告任何标准错误或wald测试。

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

代码语言:javascript
运行
复制
 data$x1 <- sample(c(1,2,3), 17, replace = TRUE)

让我困惑的是,与m1 (O1 ~ O2)不同的是,使用O2作为响应,以O1作为预测器的模型工作得非常好。此外,我还尝试替换了O1中的一些值,结果表明,在替换1到2或3时,我没有收到任何警告信息,并且得到了模型的所有系数。

我做了一些研究,这似乎和这可能是由于低代表性的某些价值的反应,以及一个小样本的大小。这是对的还是可以是个小虫子?有人能帮帮我吗?

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2020-05-28 11:02:11

这是因为您有太多的空单元格(这里只有两个主题i与O2=3),尝试合并类别并修改模型

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37230641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档