/TSrepr

TSrepr: R package for time series representations

Primary LanguageRGNU General Public License v3.0GPL-3.0

TSrepr

Travis-CI Build Status CRAN_Status_Badge Downloads Downloads

codecov.io DOI

TSrepr is R package for fast time series representations and dimensionality reduction computations. Z-score normalisation, min-max normalisation, forecasting accuracy measures and other useful functions implemented in C++ (Rcpp) and R.

Installation

You can install TSrepr directly from CRAN:

install.packages("TSrepr")

Or development version from GitHub with:

# install.packages("devtools")
devtools::install_github("PetoLau/TSrepr")

Overview

All type of time series representations methods are implemented, and these are so far:

  • Nondata adaptive:
    • PAA - Piecewise Aggregate Approximation (repr_paa)
    • DWT - Discrete Wavelet Transform (repr_dwt)
    • DFT - Discrete Fourier Transform (repr_dft)
    • DCT - Discrete Cosine Transform (repr_dct)
    • SMA - Simple Moving Average (repr_sma)
    • PIP - Perceptually Important Points (repr_pip)
  • Data adaptive:
    • SAX - Symbolic Aggregate Approximation (repr_sax)
    • PLA - Piecewise Linear Approximation (repr_pla)
  • Model-based:
    • Mean seasonal profile - Average seasonal profile, Median seasonal profile, etc. (repr_seas_profile)
    • Model-based seasonal representations based on linear (additive) model (LM, RLM, L1, GAM) (repr_lm, repr_gam)
    • Exponential smoothing seasonal coefficients (repr_exp)
  • Data dictated:
    • FeaClip - Feature extraction from clipping representation (repr_feaclip, clipping)
    • FeaTrend - Feature extraction from trending representation (repr_featrend, trending)
    • FeaClipTrend - Feature extraction from clipping and trending representation (repr_feacliptrend)

Additional useful functions are implemented as:

  • Windowing (repr_windowing) - applies above mentioned representations to every window of a time series
  • Matrix of representations (repr_matrix) - applies above mentioned representations to every row of a matrix of time series
  • List of representations (repr_list) - applies above mentioned representations to every member of a list of time series with different lengths
  • Normalisation functions - z-score (norm_z), min-max (norm_min_max), arctan (norm_atan), Box-Cox (norm_boxcox), Yeo-Johnson (norm_yj)
  • Normalisation functions with output also of scaling parameters - z-score (norm_z_list), min-max (norm_min_max_list)
  • Normalisation functions with defined parameters - z-score (norm_z_params), min-max (norm_min_max_params)
  • Denormalisation functions - z-score (denorm_z), min-max (denorm_min_max), arctan (denorm_atan), Box-Cox (denorm_boxcox), Yeo-Johnson (denorm_yj)
  • Forecasting accuracy measures - MSE, MAE, RMSE, MdAE, MAPE, sMAPE, MAAPE, MASE

Usage

library(TSrepr)
library(ggplot2)

data_ts <- as.numeric(elec_load[5,]) # electricity load consumption data
# Comparison of PAA and PLA
# Dimensionality of the time series will be reduced 8 times
data_paa <- repr_paa(data_ts, q = 12, func = mean)
data_pla <- repr_pla(data_ts, times = 55, return = "both") # returns both extracted places and values

data_plot <- data.frame(value = c(data_ts, data_paa, data_pla$points),
                        time = c(1:length(data_ts), seq(6, length(data_ts), by = 12),
                                 data_pla$places),
                        type = factor(c(rep("Original", length(data_ts)),
                                        rep(c("PAA", "PLA"), each = 56))))

ggplot(data_plot, aes(time, value, color = type, size = type)) +
  geom_line(alpha = 0.8) +
  scale_size_manual(values = c(0.6, 0.8, 0.8)) +
  theme_bw()

For more information

Contact

Citation

Cite the package as: