View source: R/glmnet-glmnet-tidiers.R
tidy.glmnet | R Documentation |
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 class '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.
A tibble::tibble()
with columns:
dev.ratio |
Fraction of null deviance explained at each value of lambda. |
estimate |
The estimated value of the regression term. |
lambda |
Value of penalty parameter lambda. |
step |
Which step of lambda choices was used. |
term |
The name of the regression term. |
tidy()
, glmnet::glmnet()
Other glmnet tidiers:
glance.cv.glmnet()
,
glance.glmnet()
,
tidy.cv.glmnet()
# load libraries for models and data
library(glmnet)
set.seed(2014)
x <- matrix(rnorm(100 * 20), 100, 20)
y <- rnorm(100)
fit1 <- glmnet(x, y)
# summarize model fit with tidiers + visualization
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.