Skip to content

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.

Usage

# S3 method for class 'loess'
augment(x, data = model.frame(x), newdata = NULL, se_fit = FALSE, ...)

Arguments

x

A loess objects returned by stats::loess().

data

A base::data.frame or tibble::tibble() containing the original data that was used to produce the object x. Defaults to stats::model.frame(x) so that augment(my_fit) returns the augmented original data. Do not pass new data to the data argument. Augment will report information such as influence and cooks distance for data passed to the data argument. These measures are only defined for the original training data.

newdata

A base::data.frame() or tibble::tibble() containing all the original predictors used to create x. Defaults to NULL, indicating that nothing has been passed to newdata. If newdata is specified, the data argument will be ignored.

se_fit

Logical indicating whether or not a .se.fit column should be added to the augmented output. For some models, this calculation can be somewhat time-consuming. Defaults to FALSE.

...

Additional arguments. Not used. Needed to match generic signature only. Cautionary note: Misspelled arguments will be absorbed in ..., where they will be ignored. If the misspelled argument has a default value, the default value will be used. For example, if you pass conf.lvel = 0.9, all computation will proceed using conf.level = 0.95. Two exceptions here are:

  • tidy() methods will warn when supplied an exponentiate argument if it will be ignored.

  • augment() methods will warn when supplied a newdata argument if it will be ignored.

Details

When the modeling was performed with na.action = "na.omit" (as is the typical default), rows with NA in the initial data are omitted entirely from the augmented data frame. When the modeling was performed with na.action = "na.exclude", one should provide the original data as a second argument, at which point the augmented data will contain those rows (typically with NAs in place of the new columns). If the original data is not provided to augment() and na.action = "na.exclude", a warning is raised and the incomplete rows are dropped.

Note that loess objects by default will not predict on data outside of a bounding hypercube defined by the training data unless the original loess object was fit with control = loess.control(surface = \"direct\")). See stats::predict.loess() for details.

Value

A tibble::tibble() with columns:

.fitted

Fitted or predicted value.

.resid

The difference between observed and fitted values.

.se.fit

Standard errors of fitted values.

Examples


lo <- loess(
  mpg ~ hp + wt,
  mtcars,
  control = loess.control(surface = "direct")
)

augment(lo)
#> # A tibble: 32 × 6
#>    .rownames           mpg    hp    wt .fitted  .resid
#>    <chr>             <dbl> <dbl> <dbl>   <dbl>   <dbl>
#>  1 Mazda RX4          21     110  2.62    21.4 -0.435 
#>  2 Mazda RX4 Wag      21     110  2.88    20.9  0.0976
#>  3 Datsun 710         22.8    93  2.32    24.7 -1.88  
#>  4 Hornet 4 Drive     21.4   110  3.22    19.6  1.76  
#>  5 Hornet Sportabout  18.7   175  3.44    16.7  2.02  
#>  6 Valiant            18.1   105  3.46    18.9 -0.833 
#>  7 Duster 360         14.3   245  3.57    14.9 -0.641 
#>  8 Merc 240D          24.4    62  3.19    25.1 -0.695 
#>  9 Merc 230           22.8    95  3.15    21.4  1.43  
#> 10 Merc 280           19.2   123  3.44    18.4  0.801 
#> # ℹ 22 more rows

# with all columns of original data
augment(lo, mtcars)
#> # A tibble: 32 × 14
#>    .rownames     mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear
#>    <chr>       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#>  1 Mazda RX4    21       6  160    110  3.9   2.62  16.5     0     1     4
#>  2 Mazda RX4 …  21       6  160    110  3.9   2.88  17.0     0     1     4
#>  3 Datsun 710   22.8     4  108     93  3.85  2.32  18.6     1     1     4
#>  4 Hornet 4 D…  21.4     6  258    110  3.08  3.22  19.4     1     0     3
#>  5 Hornet Spo…  18.7     8  360    175  3.15  3.44  17.0     0     0     3
#>  6 Valiant      18.1     6  225    105  2.76  3.46  20.2     1     0     3
#>  7 Duster 360   14.3     8  360    245  3.21  3.57  15.8     0     0     3
#>  8 Merc 240D    24.4     4  147.    62  3.69  3.19  20       1     0     4
#>  9 Merc 230     22.8     4  141.    95  3.92  3.15  22.9     1     0     4
#> 10 Merc 280     19.2     6  168.   123  3.92  3.44  18.3     1     0     4
#> # ℹ 22 more rows
#> # ℹ 3 more variables: carb <dbl>, .fitted <dbl>, .resid <dbl>

# with a new dataset
augment(lo, newdata = head(mtcars))
#> # A tibble: 6 × 14
#>   .rownames      mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear
#>   <chr>        <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 Mazda RX4     21       6   160   110  3.9   2.62  16.5     0     1     4
#> 2 Mazda RX4 W…  21       6   160   110  3.9   2.88  17.0     0     1     4
#> 3 Datsun 710    22.8     4   108    93  3.85  2.32  18.6     1     1     4
#> 4 Hornet 4 Dr…  21.4     6   258   110  3.08  3.22  19.4     1     0     3
#> 5 Hornet Spor…  18.7     8   360   175  3.15  3.44  17.0     0     0     3
#> 6 Valiant       18.1     6   225   105  2.76  3.46  20.2     1     0     3
#> # ℹ 3 more variables: carb <dbl>, .fitted <dbl>, .resid <dbl>