【问题标题】:Logistic regression & bootstrap逻辑回归和引导
【发布时间】:2023-03-26 02:03:02
【问题描述】:

我正在尝试首先使用 RMS 包中的 lrm 运行逻辑回归。 我的模型适用于glm,但不适用于lrm

model1 <- lrm( Outcome30Days ~ ISS1 + ISS2 + as.factor(GCSgr)+ 
as.factor(Gender)*as.factor(agegr),data=sub2, x=T, y=T, se.fit=T)

如果 ISS1ISS2 被删除,模型会运行,但使用这两个变量就不会。 错误信息:

Unable to fit model using “lrm.fit”

我需要使用lrm 运行它,因为使用引导程序的包validate (显然)仅适用于lrm。 任何帮助将不胜感激。

【问题讨论】:

  • 它只是告诉你,数学上它不能适合你指定的模型。具体来说,它似乎基于底层 Fortran 代码返回的故障代码。诊断确切的问题需要详细了解您的数据和用于拟合模型的确切数学程序。
  • 感谢 Joran,如果不正确,该模型如何与 glm 一起使用? lrm 有一些令人费解的地方。
  • 我认为我通过使用惩罚 =5 使其工作,低于 5 它不起作用。
  • 模型看起来像这样:
  • model1

标签: r validation regression statistics-bootstrap


【解决方案1】:

lrm 对自变量之间相关性的容忍度低于 glm。如果您的模型使用 glm 运行并在删除一些变量时使用 lrm 运行,这可能是问题所在。幸运的是,您可以使用 tol 参数调整容差。默认情况下 tol=1e-7。尝试将其更改为 tol=1e-9。代码如下所示:

model1 <- lrm( Outcome30Days ~ ISS1 + ISS2 + as.factor(GCSgr)+ 
as.factor(Gender)*as.factor(agegr),data=sub2, x=T, y=T, se.fit=T, tol=1e-9)

这比乱用惩罚要好,因为改变惩罚会改变你的对数似然并可能影响你的结果。

【讨论】:

  • 另一个选项是使用maxit= 选项增加最大迭代次数——lrm.fit() 中位于lrm() 下的默认值为 12 次迭代,而glm.fit() 中的默认值为 25 ,根据帮助文件。
猜你喜欢
  • 1970-01-01
  • 2021-03-11
  • 2020-01-31
  • 2016-03-06
  • 2018-12-09
  • 2021-05-20
  • 2022-11-12
  • 2014-03-12
  • 1970-01-01
相关资源
最近更新 更多