如何执行lm.ridge摘要?

时间:2014-10-14 15:32:26

标签: r regression lm summary

我想知道有没有办法在R中输出岭回归的摘要? 这是lm.ridge{MASS}函数的结果。

对于标准线性模型,您只需summary(lm_model)但是岭回归模型怎么样? 谢谢你的帮助。

3 个答案:

答案 0 :(得分:9)

我刚刚添加了一个方法,可以(或更确切地说,tidies"ridgelm"个对象汇总到我的broom包中。这采用两种S3泛型的形式:tidyglance。您可以使用devtools::install_github("dgrtwo/broom")进行安装(尽管您需要先安装devtools)。

作为一个例子,让我们设置一个岭回归:

library(MASS)
names(longley)[1] <- "y"
fit <- lm.ridge(y ~ ., longley, lambda = seq(0.001, .05, .001))

tidy函数提供了一个数据框,显示了lambda和估计项的每个组合:

library(broom)
td <- tidy(fit)
head(td)
##   lambda    GCV term estimate
## 1  0.001 0.1240  GNP    23.02
## 2  0.002 0.1217  GNP    21.27
## 3  0.003 0.1205  GNP    19.88
## 4  0.004 0.1199  GNP    18.75
## 5  0.005 0.1196  GNP    17.80
## 6  0.006 0.1196  GNP    16.99

虽然glance函数创建了一行摘要,特别是通过各种方法选择lambda:

g <- glance(fit)
g
##       kHKB     kLW lambdaGCV
## 1 0.006837 0.05267     0.006

这很有用,因为它可以让您轻松地自己绘制和探索数据,而不是依赖于MASS的绘图仪:

library(ggplot2)
ggplot(td, aes(lambda, estimate, color = term)) + geom_line()

enter image description here

# plot of GCV versus lambda
ggplot(td, aes(lambda, GCV)) + geom_line() +
    geom_vline(xintercept = g$lambdaGCV, col = "red", lty = 2)

enter image description here

有关这些方法的更多信息,请参阅?ridgelm_tidiers,或查看软件包的插图,了解有关tidyglance方法的更多信息。

答案 1 :(得分:2)

summary类没有ridgelm方法:

> methods(class = 'ridgelm')
[1] coef.ridgelm*   plot.ridgelm*   print.ridgelm*  select.ridgelm*

这个摘要应该返回什么? 您可以从ridgelm-object中提取所需的所有信息。

但是,您也可以为自己的目的编写自己的摘要方法(查看summary.lm()的代码以便开始)。 如果您对此感到满意,可以将其发送给MASS的维护人员。

答案 2 :(得分:1)

您可以使用CRAN的lmridge个套件。