我正在使用 glmnet 包从 mtcars 数据集中获取以下图表(mpg 对其他变量的回归):

library(glmnet)
fit = glmnet(as.matrix(mtcars[-1]), mtcars[,1])
plot(fit, xvar='lambda')

如何在每条曲线的开头或最大 y 点(远离 x 轴的最大点)向每条曲线添加变量名称?我试过了,我可以像往常一样添加图例,但不能在每条曲线上或在它的开头添加标签。谢谢你的帮助。

最佳答案

由于标签是硬编码的,因此编写快速函数可能更容易。这只是一个快速拍摄,因此可以更改为更彻底。我还要注意,当使用套索时,通常有很多变量,所以标签会有很多重叠(如你的小例子所示)

lbs_fun <- function(fit, ...) {
        L <- length(fit$lambda)
        x <- log(fit$lambda[L])
        y <- fit$beta[, L]
        labs <- names(y)
        text(x, y, labels=labs, ...)
}

# plot
plot(fit, xvar="lambda")

# label
lbs_fun(fit)

关于r - 在 R 中 glmnet 图中的曲线上添加标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30560689/

10-12 19:22