Skip to content
TSrepr: R package for time series representations
R C++
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
R
data
inst
man
src
tests
vignettes
.Rbuildignore
.gitignore
.travis.yml
CONTRIBUTING.md
DESCRIPTION
LICENSE
NAMESPACE
NEWS.md
README-paa_vs_pla-1.png
README.Rmd
README.md
TSrepr.Rproj
cran-comments.md

README.md

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
  • Normalisation functions - z-score (norm_z), min-max (norm_min_max)
  • 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)
  • 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:

You can’t perform that action at this time.