knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) library(dplyr) library(tidypredict) library(parsnip)
qr.solve() function to parse the interval coefficient of each term.contr.treatment) are supported.offset is supportedwt ~ mpg + am mutate(mtcars, newam = paste0(am)) and then wt ~ mpg + newamwt ~ mpg + as.factor(am)wt ~ mpg + as.character(am)library(dplyr) library(tidypredict) df <- mtcars %>% mutate(char_cyl = paste0("cyl", cyl)) %>% select(mpg, wt, char_cyl, am) model <- lm(mpg ~ wt + char_cyl, offset = am, data = df)
It returns a SQL query that contains the coefficients (model$coefficients) operated against the correct variable or categorical variable value. In most cases the resulting SQL is one short CASE WHEN statement per coefficient. It appends the offset field or value, if one is provided.
library(tidypredict) tidypredict_sql(model, dbplyr::simulate_mssql())
Alternatively, use tidypredict_to_column() if the results are the be used or previewed in dplyr.
df %>% tidypredict_to_column(model) %>% head(10)
Use tidypredict_sql_interval() to get the SQL query that operates the prediction interval. The interval defaults to 0.95
tidypredict_sql_interval(model, dbplyr::simulate_mssql())
Prediction intervals also works in the tidypredict_to_column(), just set the add_interval argument to TRUE.
df %>% tidypredict_to_column(model, add_interval = TRUE) %>% head(10)
The parser reads several parts of the lm object to tabulate all of the needed variables. One entry per coefficient is added to the final table, those entries will have the results of qr.solve() already operated and placed in the correct column, they will have a qr_ prefix. There will be one qr_ column per coefficient.
Other variables are added at the end. Some variables are not required for every parsed model. For example, offset is listed because it's part of the formula (call) of the model, if there were no offset in a given model, that line would not exist.
pm <- parse_model(model) str(pm, 2)
The output from parse_model() is transformed into a dplyr, a.k.a Tidy Eval, formula. All categorical variables are operated using if_else().
tidypredict_fit(model)
A function to put together the Tidy Eval interval formula is also supported
tidypredict_interval(model)
From there, the Tidy Eval formula can be used anywhere where it can be operated. tidypredict provides three paths:
dplyr, mutate(df, !! tidypredict_fit(model))tidypredict_to_column(model) to a piped command settidypredict_to_sql(model) to retrieve the SQL statementThe same applies to the prediction interval functions.
Testing the tidypredict results is easy. The tidypredict_test() function automatically uses the lm model object's data frame, to compare tidypredict_fit(), and tidypredict_interval() to the results given by predict()
tidypredict_test(model)
To run with prediction intervals set the include_intervals argument to TRUE
tidypredict_test(model, include_intervals = TRUE)
tidypredict also supports lm() model objects fitted via the parsnip package.
library(parsnip) parsnip_model <- linear_reg() %>% set_engine("lm") %>% fit(mpg ~ wt + cyl, offset = am, data = mtcars) tidypredict_fit(parsnip_model)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.