【问题标题】:R - setting assessment criteria for regsubsets in leaps packageR - 为跨越包中的 regsubsets 设置评估标准
【发布时间】:2014-04-22 06:12:31
【问题描述】:

我正在尝试使用最佳子集选择执行回归。

作为一个例子,这里相当于我根据数据集包中的 ChickWeight 数据所做的事情。

leaps_test <- regsubsets(weight~Time+Diet,data=ChickWeight,nbest=1)

不过,我希望能够通过使用残差平方和 (RSS) 来控制如何进行“最佳子集”评估。如果这是默认情况下 regsubsets 的工作方式,我仍然想知道如何更改此标准,以防我想根据信息标准进行评估。

【问题讨论】:

    标签: r regression


    【解决方案1】:

    ?regsubsets.default 由于此函数返回最大为 nvmax 的所有大小的单独最佳模型,并且由于不同的模型选择标准(例如 AIC、BIC、CIC、DIC...)仅在比较不同大小的模型方面有所不同,因此结果不取决于成本-复杂性权衡的选择。

    但是,如果您想直观地检查不同的关联标准,您可以在 plot 命令中指定不同的比例。

    ?plot.regsubsets

    plot(x, labels=obj$xnames, main=NULL, scale=c("bic", "Cp", "adjr2", "r2"), col=gray(seq(0, 0.9, length = 10)),...)

    【讨论】:

      【解决方案2】:

      问题和答案是两年前的。但我认为回答正在搜索此信息的人仍然有用。我想作为评论回答,但没有足够的声誉。

      这回答了 bibzzz 的问题(作为对 Davide Passaretti 回答的评论),如果有两种方法使用 R2 以外的标准进行绘图:使用函数 plot(regsubsets.obj, scale = ...) 中的参数 scale = c("Cp", "adjr2", "r2", "bic") 您可以选择哪些标准你要。

      这四个是最受欢迎的标准。也许你想要AIC。但是你不需要它,因为 Cp 和 AIC 给你的结果是一样的,这意味着 Cp 最小的模型也有最小的 AIC。

      【讨论】:

        【解决方案3】:

        来自?regsubsets.default

        由于此函数返回最大为 nvmax 的所有大小的单独最佳模型,并且由于不同的模型选择标准(例如 AIC、BIC、CIC、DIC...)仅在比较不同大小的模型方面有所不同,因此结果不会取决于成本-复杂性权衡的选择。

        【讨论】:

        • 但是我可以通过 R2 对竞争模型进行排名,例如使用 plot(leaps_test ,scale="r2")。有没有办法可以使用 r2 以外的度量值来绘制该图?
        猜你喜欢
        • 2019-09-18
        • 2015-03-23
        • 1970-01-01
        • 2016-09-18
        • 1970-01-01
        • 2019-09-09
        • 1970-01-01
        • 2015-03-10
        • 1970-01-01
        相关资源
        最近更新 更多