tidy.glmnet {broom} | R Documentation

## Tidy a(n) glmnet object

### Description

Tidy summarizes information about the components of a model. A model component might be a single term in a regression, a single hypothesis, a cluster, or a class. Exactly what tidy considers to be a model component varies cross models but is usually self-evident. If a model has several distinct types of components, you will need to specify which components to return.

### Usage

    ## S3 method for class 'glmnet'
    tidy(x, return_zeros = FALSE, ...)

### Arguments

`x` | A `glmnet` object returned from `glmnet::glmnet()`.
`return_zeros` | Logical indicating whether coefficients with value zero zero should be included in the results. Defaults to `FALSE`.

`...`

Additional arguments. Not used. Needed to match generic signature only. Cautionary note: Misspelled arguments will be absorbed in `...`, where they will be ignored. If the misspelled argument has a default value, the default value will be used. For example, if you pass `conf.lvel = 0.9`, all computation will proceed using `conf.level = 0.95`. Additionally, if you pass `newdata = my_tibble` to an `augment()` method that does not accept a `newdata` argument, it will use the default value for the `data` argument.

### Details

Note that while this representation of GLMs is much easier to plot and combine than the default structure, it is also much more memory-intensive. Do not use for large, sparse matrices.

No `augment` method is yet provided even though the model produces predictions, because the input data is not tidy (it is a matrix that may be very wide) and therefore combining predictions with it is not logical. Furthermore, predictions make sense only with a specific choice of lambda.

### Value

A tibble::tibble with columns:

`term` | coefficient name (V1...VN by default, along with "(Intercept)")
`step` | which step of lambda choices was used
`estimate` | estimate of coefficient
`lambda` | value of penalty parameter lambda
`dev.ratio` | fraction of null deviance explained at each value of lambda

### See Also

`tidy()`, `glmnet::glmnet()`

Other glmnet tidiers: `glance.cv.glmnet`, `glance.glmnet`, `tidy.cv.glmnet`

### Examples

    if (requireNamespace("glmnet", quietly = TRUE)) {

        library(glmnet)

        set.seed(2014)
        x <- matrix(rnorm(100*20),100,20)
        y <- rnorm(100)
        fit1 <- glmnet(x,y)

        tidy(fit1)
        glance(fit1)

        library(dplyr)
        library(ggplot2)

        tidied <- tidy(fit1) %>% filter(term != "(Intercept)")

        ggplot(tidied, aes(step, estimate, group = term)) + geom_line()
        ggplot(tidied, aes(lambda, estimate, group = term)) +
            geom_line() + scale_x_log10()

        ggplot(tidied, aes(lambda, dev.ratio)) + geom_line()

        # works for other types of regressions as well, such as logistic
        g2 <- sample(1:2, 100, replace=TRUE)
        fit2 <- glmnet(x, g2, family="binomial")
        tidy(fit2)
    }

[Package broom version 0.5.2 Index]