【问题标题】:How to test significant improvement of LRM model如何测试 LRM 模型的显着改进
【发布时间】:2018-07-13 00:44:45
【问题描述】:

我使用 Frank Harrell 的 rms package 构建了一个使用 lrm function 的预测模型。

我想比较与另一个 (lrm-) 模型相比,此模型对二项式事件的预测值是否明显更好。

我使用了不同的函数,如 anova(model1, model2)pscl librarypR2 function 来比较伪 R^2,但它们都不适用于基于 lrm 的模型。

我最好怎样做才能确定我的新模型是否明显优于旧模型?

更新:这是一个示例(我想预测骨转移的机会),以检查大小或阶段(除了其他变量)是否提供了最佳模型:

library(rms)
getHdata(prostate)

ddd <- datadist(prostate)
options( datadist = "ddd" )

mod1 = lrm(as.factor(bm) ~ age + sz + rx, data=prostate, x=TRUE, y=TRUE)

mod2 = lrm(as.factor(bm) ~ age + stage + rx, data=prostate, x=TRUE, y=TRUE)

【问题讨论】:

  • 你没有给出一个例子来尝试,但是 broom::glance(model1) 会给出对数的可能性,你可以比较对数的可能性,看看是否有改进。
  • 我错了,broom::glance(model1) 不起作用。
  • 我添加了一个例子
  • 对于预测模型,我强烈建议拟合训练集并使用测试集来评估性能。否则你可能会过拟合。
  • 感谢您的建议,我当然打算这样做。我提供的代码只是一个最小的工作示例。

标签: r predictive model-comparison


【解决方案1】:

从根本上看来,问题在于比较两个非嵌套模型。

如果您使用 glm 函数拟合模型,则可以使用 -pscl- 包中的 -vuong- 函数。

【讨论】:

    【解决方案2】:

    要测试 2 个嵌套模型的拟合度,您可以使用“rms”包中的 lrtest 函数。

    lrtest(mod1,mod2)

    【讨论】:

    • 请注意,OP 的示例不显示嵌套模型...
    猜你喜欢
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    • 2019-12-13
    • 2017-12-24
    • 2021-11-10
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    相关资源
    最近更新 更多