如何执行lm.ridge摘要?

Mar*_*ski 7 regression r summary lm

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

对于标准线性模型,您只需要进行summary(lm_model)岭回归模型吗?感谢帮助.

Dav*_*son 9

我刚刚添加了一个方法,可以将对象汇总(或者更确切地说,整理)"ridgelm"对象到我的扫帚包中.这采用两个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))
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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

g <- glance(fit)
g
##       kHKB     kLW lambdaGCV
## 1 0.006837 0.05267     0.006
Run Code Online (Sandbox Code Playgroud)

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

library(ggplot2)
ggplot(td, aes(lambda, estimate, color = term)) + geom_line()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

在此输入图像描述

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

  • @MarcinKosinski:`select`不能以相同的方式工作,因为它*打印*所选的值而不是返回它们(所以没有办法保存它们,提取它们,组合它们,或者将它们添加到图形中) .`plot.ridgelm`产生了一个类似的图形,但值得注意的是它没有附带图例,也没有选择颜色的方法.(实际上,因为`plot.ridgelm`没有将```传递给`matplot`,所以你根本无法自定义它. (2认同)