| log_interval_vec {timetk} | R Documentation |
Log-Interval Transformation for Constrained Interval Forecasting
Description
The log_interval_vec() transformation constrains a forecast to an interval
specified by an upper_limit and a lower_limit. The transformation provides
similar benefits to log() transformation, while ensuring the inverted transformation
stays within an upper and lower limit.
Usage
log_interval_vec(
x,
limit_lower = "auto",
limit_upper = "auto",
offset = 0,
silent = FALSE
)
log_interval_inv_vec(x, limit_lower, limit_upper, offset = 0)
Arguments
x |
A positive numeric vector. |
limit_lower |
A lower limit. Must be less than the minimum value. If set to "auto", selects zero. |
limit_upper |
An upper limit. Must be greater than the maximum value. If set to "auto", selects a value that is 10% greater than the maximum value. |
offset |
An offset to include in the log transformation. Useful when the data contains values less than or equal to zero. |
silent |
Whether or not to report the parameter selections as a message. |
Details
Log Interval Transformation
The Log Interval Transformation constrains values to specified upper and lower limits. The transformation maps limits to a function:
log(((x + offset) - a)/(b - (x + offset)))
where a is the lower limit and b is the upper limit
Inverse Transformation
The inverse transformation:
(b-a)*(exp(x)) / (1 + exp(x)) + a - offset
Value
A numeric vector of the transformed series.
References
See Also
Box Cox Transformation:
box_cox_vec()Lag Transformation:
lag_vec()Differencing Transformation:
diff_vec()Rolling Window Transformation:
slidify_vec()Loess Smoothing Transformation:
smooth_vec()Fourier Series:
fourier_vec()Missing Value Imputation & Anomaly Cleaning for Time Series:
ts_impute_vec(),ts_clean_vec()
Other common transformations to reduce variance: log(), log1p() and sqrt()
Examples
library(dplyr)
values_trans <- log_interval_vec(1:10, limit_lower = 0, limit_upper = 11)
values_trans
values_trans_forecast <- c(values_trans, 3.4, 4.4, 5.4)
values_trans_forecast %>%
log_interval_inv_vec(limit_lower = 0, limit_upper = 11) %>%
plot()