R - 设置跳跃包中的regsubsets的评估标准

时间:2014-04-22 06:12:31

标签: r regression

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

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

leaps_test <- regsubsets(weight~Time+Diet,data=ChickWeight,nbest=1)
然而,我希望能够控制&#34;最好的子集&#34;通过使用残差平方和(RSS)进行评估。如果这是regsubsets默认工作的方式,我仍然想知道如何更改此标准,以防我想根据信息标准进行评估。

3 个答案:

答案 0 :(得分: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)),...)

答案 1 :(得分:0)

来自?regsubsets.default

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

答案 2 :(得分:0)

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

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

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