我想知道有没有办法在R中输出岭回归的摘要?
这是lm.ridge{MASS}
函数的结果。
对于标准线性模型,您只需summary(lm_model)
但是岭回归模型怎么样?
谢谢你的帮助。
答案 0 :(得分:9)
我刚刚添加了一个方法,可以(或更确切地说,tidies)"ridgelm"
个对象汇总到我的broom包中。这采用两种S3泛型的形式:tidy
和glance
。您可以使用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()
# plot of GCV versus lambda
ggplot(td, aes(lambda, GCV)) + geom_line() +
geom_vline(xintercept = g$lambdaGCV, col = "red", lty = 2)
有关这些方法的更多信息,请参阅?ridgelm_tidiers
,或查看软件包的插图,了解有关tidy
和glance
方法的更多信息。
答案 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
个套件。