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 across models but is usually self-evident. If a model has several distinct types of components, you will need to specify which components to return.
# S3 method for glmnet tidy(x, return_zeros = FALSE, ...)
x | A |
---|---|
return_zeros | Logical indicating whether coefficients with value zero
zero should be included in the results. Defaults to |
... | Additional arguments. Not used. Needed to match generic
signature only. Cautionary note: Misspelled arguments will be
absorbed in |
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.
Other glmnet tidiers:
glance.cv.glmnet()
,
glance.glmnet()
,
tidy.cv.glmnet()
A tibble::tibble()
with columns:
Fraction of null deviance explained at each value of lambda.
The estimated value of the regression term.
Value of penalty parameter lambda.
Which step of lambda choices was used.
The name of the regression term.
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) } #> # A tibble: 947 × 5 #> term step estimate lambda dev.ratio #> <chr> <dbl> <dbl> <dbl> <dbl> #> 1 (Intercept) 1 0.282 0.0906 -1.46e-15 #> 2 (Intercept) 2 0.281 0.0826 6.28e- 3 #> 3 (Intercept) 3 0.279 0.0753 1.55e- 2 #> 4 (Intercept) 4 0.277 0.0686 2.48e- 2 #> 5 (Intercept) 5 0.284 0.0625 4.17e- 2 #> 6 (Intercept) 6 0.293 0.0569 5.79e- 2 #> 7 (Intercept) 7 0.303 0.0519 7.39e- 2 #> 8 (Intercept) 8 0.314 0.0473 8.94e- 2 #> 9 (Intercept) 9 0.325 0.0431 1.03e- 1 #> 10 (Intercept) 10 0.336 0.0392 1.14e- 1 #> # … with 937 more rows