Differences the target variable with lag lag, producing the new target y'_t = y_t - y_{t - lag}. The first lag
rows are dropped during training. Predictions are inverted via stride-lag cumulative sums anchored at the last
lag training values, yielding original-scale predictions.
Use lag = 1 to remove a trend and lag = 12 (or the seasonal period) to remove seasonality.
Parameters
The parameters are the parameters inherited from mlr3pipelines::PipeOpTargetTrafo, as well as the following:
lag::integer(1)
Lag to difference at. Default1L.
Limitations
This PipeOp must not be placed inside a RecursiveForecaster or DirectForecaster graph and is rejected at
construction. Inside RecursiveForecaster, the trafo only transforms the active row at predict time while iterative
features (lags, rolling windows) need transformed values for all historical rows. Inside DirectForecaster, each
horizon is inverted independently against the training tail, which is wrong for horizons >= 2. Use inside a plain
mlr3pipelines::GraphLearner via ppl("targettrafo", ...) for batch prediction, or wrap the forecaster itself with
ppl("targettrafo", ...) so all horizons are inverted together.
Super classes
mlr3pipelines::PipeOp -> mlr3pipelines::PipeOpTargetTrafo -> PipeOpTargetTrafoDifference
Methods
PipeOpTargetTrafoDifference$new()
Initializes a new instance of this Class.
Usage
PipeOpTargetTrafoDifference$new(id = "fcst.targetdiff", param_vals = list())Examples
# \donttest{
library(mlr3pipelines)
task = tsk("airpassengers")
split = partition(task, ratio = 0.8)
flrn = as_learner(ppl("targettrafo",
graph = DirectForecaster$new(lrn("regr.rpart"), lags = 1:3, horizons = length(split$test)),
trafo_pipeop = po("fcst.targetdiff", lag = 1L)
))
flrn$train(task, split$train)
flrn$predict(task, split$test)
#>
#> ── <PredictionRegr> for 29 observations: ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> row_ids truth response
#> 116 505 461.5000
#> 117 404 429.9286
#> 118 359 392.4286
#> --- --- ---
#> 142 461 479.7749
#> 143 390 485.7124
#> 144 432 498.3552
# }