step_macropca() creates a specification of a recipe step that converts
the selected variables into robust principal component scores with
macropca(), which handles cellwise outliers and missing values as well
as outlying observations.
Arguments
- recipe
A recipe object. The step will be added to the sequence of operations for this recipe.
- ...
One or more selector functions to choose the predictors (for example, the spectral channels). See
recipes::selections().- role
The role of the new score columns. Default is
"predictor".- trained
A logical indicating whether the step has been trained.
- num_comp
The number of principal components. Default is 2.
- options
A list of further arguments passed to
macropca(), such asalphaor MacroPCA parameters.- prefix
The prefix of the new column names. Default is
"MPC".- distances
A logical: add the score and orthogonal distances as columns. Default is
FALSE.- keep_original_cols
A logical: keep the selected columns. Default is
FALSE.- res
The fitted robust PCA model, stored once the step has been trained.
- columns
The names of the selected columns, stored once the step has been trained.
- skip
A logical. Should the step be skipped when the recipe is baked by
recipes::bake()? Keep the defaultFALSE, so that new data are corrected with the same filter as the training data.- id
A character string that is unique to this step.
Details
As step_robpca(). Missing values are allowed in the selected columns,
both when the recipe is prepped and when it is baked.
Examples
data(forageLIBS)
# potassium and the K I resonance lines
wl <- suppressWarnings(as.numeric(names(forageLIBS)))
dat <- forageLIBS[c(which(names(forageLIBS) == "K"), which(wl > 760 & wl < 780))]
set.seed(1)
rec <- recipes::recipe(K ~ ., data = dat) |>
step_macropca(recipes::all_predictors(), num_comp = 2)
recipes::bake(recipes::prep(rec), new_data = NULL)
#> # A tibble: 368 × 3
#> K MPC1 MPC2
#> <dbl> <dbl> <dbl>
#> 1 3.68 33973. -2430.
#> 2 2.52 16119. 1776.
#> 3 2.45 28441. -13594.
#> 4 2.3 27116. -10038.
#> 5 2.87 -8891. 1166.
#> 6 2.16 5785. 2203.
#> 7 2.94 49413. -15087.
#> 8 2.43 9682. 3483.
#> 9 1.81 -9352. 2485.
#> 10 2.07 26759. -59.2
#> # ℹ 358 more rows
