safepredict
has two goals: to provide a consistent interface to
prediction via the safe_predict()
generic, and to accurately quantify
prediction uncertainty.
safe_predict()
:
safepredict
follows the tidymodels prediction
specification.
safepredict
is currently in the beginning stages of development and is
available only on Github. You can install it with:
# install.packages("devtools")
devtools::install_github("alexpghayes/safepredict")
The three main arguments to safe_predict()
are always the same:
object
: A model object you would like to get predictions from.
new_data
: Required. Data in the same format as required for
the predict()
method.
type
: What kind of predictions you would like. Options are:
| type | application |
| ---------- | ------------------------------------------- |
| response
| numeric predictions |
| class
| hard class predictions |
| prob
| class probabilities, survivor probabilities |
| link
| glm
linear predictor |
| conf_int
| confidence intervals |
| pred_int
| prediction intervals |
Suppose you fit a logistic regression using glm
:
library(tibble)
data <- tibble(
y = as.factor(rep(c("A", "B"), each = 50)),
x = c(rnorm(50, 1), rnorm(50, 3))
)
fit <- glm(y ~ x, data, family = binomial)
You can predict class probabilities:
library(safepredict)
test <- tibble(x = rnorm(10, 2))
safe_predict(fit, new_data = test, type = "prob")
#> # A tibble: 10 x 2
#> .pred_A .pred_B
#> <dbl> <dbl>
#> 1 0.333 0.667
#> 2 0.0410 0.959
#> 3 0.619 0.381
#> 4 0.467 0.533
#> 5 0.132 0.868
#> # ... with 5 more rows
or can jump straight to hard class decisions
safe_predict(fit, new_data = test, type = "class")
#> # A tibble: 10 x 1
#> .pred_class
#> <fct>
#> 1 B
#> 2 B
#> 3 A
#> 4 B
#> 5 B
#> # ... with 5 more rows
We can also get predictions on the link scale:
safe_predict(fit, new_data = test, type = "link")
#> # A tibble: 10 x 1
#> .pred
#> <dbl>
#> 1 0.696
#> 2 3.15
#> 3 -0.485
#> 4 0.132
#> 5 1.88
#> # ... with 5 more rows
or we can get confidence intervals on the response scale
safe_predict(fit, new_data = test, type = "conf_int")
#> # A tibble: 10 x 3
#> .pred .pred_lower .pred_upper
#> <dbl> <dbl> <dbl>
#> 1 0.667 0.795 0.510
#> 2 0.959 0.989 0.862
#> 3 0.381 0.545 0.240
#> 4 0.533 0.680 0.380
#> 5 0.868 0.943 0.724
#> # ... with 5 more rows
parsnip
provides a
consistent interface to supervised models. Eventually safepredict
will act as the prediction backend for parsnip
.
broom
summarizes key information
about models in tidy tibbles.
The many ongoing tidymodels
projects.
The prediction
package by
Thomas Leeper. prediction
supports a much wider variety of models
than safepredict
at the moment, but makes fewer consistency
guarantees.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.