Description Usage Arguments Value Determining uncertainty in predictions Examples
Safe predictions from an nls object
1 2  ## S3 method for class 'nls'
safe_predict(object, new_data, type = "response", ...)

object 
An 
new_data 
Required. A data frame containing predictors. 
type 
What kind of predictions to return. Options are:

... 
Unused. 
A tibble::tibble()
with one row for each row of new_data
.
Predictions for observations with missing data will be NA
. Returned
tibble has different columns depending on type
:
"response"
:
univariate outcome: .pred
(numeric)
multivariate outcomes: .pred_{outcome name}
(numeric) for each
outcome
"class"
: .pred_class
(factor)
"prob"
: .pred_{level}
columns (numerics between 0 and 1)
"link"
: .pred
(numeric)
"conf_int"
: .pred
, .pred_lower
, .pred_upper
(all numeric)
"pred_int"
: .pred
, .pred_lower
, .pred_upper
(all numeric)
If you request standard errors with std_error = TRUE
, an additional
column .std_error
.
For interval predictions, the tibble has additional attributes level
and interval
. The level
is the same as the level
argument and is
between 0 and 1. interval
is either "confidence"
or "prediction"
.
Some models may also set a method
attribute to detail the method
used to calculate the intervals.
Note that stats::predict.nls()
has an se.fit
argument, but it is
currently ignored. There is no buildin capability in base R to determine
the uncertainty in the predictions from nls
.
In practice, there are two options to get these:
Bootstrapping (recommended)
The Delta Method
Bootstrapping: We recommend using the rsample
package for
bootstrapping, in particular rsample::bootstraps()
. See
1  vignette("bootstrapping", package = "safepredict")

for worked examples.
Delta Method: Some people seem to be happy to use the delta method,
and others claim it is numerically unstable. Two options include
car::deltaMethod()
and emdbook::deltavar()
.
1 2 3 4 5  fit < nls(demand ~ SSasympOrig(Time, A, lrc), data = BOD)
safe_predict(fit, BOD)
fit2 < nls(mpg ~ k / wt + b, mtcars, start = list(k = 1, b = 0))
safe_predict(fit2, mtcars)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.