• Stars
    star
    595
  • Rank 72,457 (Top 2 %)
  • Language
    R
  • Created about 7 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Time series analysis in the `tidyverse`

timetk

CRAN_Status_Badge R-CMD-check codecov

Time series analysis in the tidyverse

Installation

Download the development version with latest features:

remotes::install_github("business-science/timetk")

Or, download CRAN approved version:

install.packages("timetk")

Package Functionality

There are many R packages for working with Time Series data. Here’s how timetk compares to the β€œtidy” time series R packages for data visualization, wrangling, and feature engineeering (those that leverage data frames or tibbles).

Task timetk tsibble feasts tibbletime
Structure
Data Structure tibble (tbl) tsibble (tbl_ts) tsibble (tbl_ts) tibbletime (tbl_time)
Visualization
Interactive Plots (plotly) βœ… ❌ ❌ ❌
Static Plots (ggplot) βœ… ❌ βœ… ❌
Time Series βœ… ❌ βœ… ❌
Correlation, Seasonality βœ… ❌ βœ… ❌
Data Wrangling
Time-Based Summarization βœ… ❌ ❌ βœ…
Time-Based Filtering βœ… ❌ ❌ βœ…
Padding Gaps βœ… βœ… ❌ ❌
Low to High Frequency βœ… ❌ ❌ ❌
Imputation βœ… βœ… ❌ ❌
Sliding / Rolling βœ… βœ… ❌ βœ…
Machine Learning
Time Series Machine Learning βœ… ❌ ❌ ❌
Anomaly Detection βœ… ❌ ❌ ❌
Clustering βœ… ❌ ❌ ❌
Feature Engineering (recipes)
Date Feature Engineering βœ… ❌ ❌ ❌
Holiday Feature Engineering βœ… ❌ ❌ ❌
Fourier Series βœ… ❌ ❌ ❌
Smoothing & Rolling βœ… ❌ ❌ ❌
Padding βœ… ❌ ❌ ❌
Imputation βœ… ❌ ❌ ❌
Cross Validation (rsample)
Time Series Cross Validation βœ… ❌ ❌ ❌
Time Series CV Plan Visualization βœ… ❌ ❌ ❌
More Awesomeness
Making Time Series (Intelligently) βœ… βœ… ❌ βœ…
Handling Holidays & Weekends βœ… ❌ ❌ ❌
Class Conversion βœ… βœ… ❌ ❌
Automatic Frequency & Trend βœ… ❌ ❌ ❌

Getting Started

Summary

Timetk is an amazing package that is part of the modeltime ecosystem for time series analysis and forecasting. The forecasting system is extensive, and it can take a long time to learn:

  • Many algorithms
  • Ensembling and Resampling
  • Machine Learning
  • Deep Learning
  • Scalable Modeling: 10,000+ time series

Your probably thinking how am I ever going to learn time series forecasting. Here’s the solution that will save you years of struggling.

Take the High-Performance Forecasting Course

Become the forecasting expert for your organization

High-Performance Time Series Forecasting Course

High-Performance Time Series Course

Time Series is Changing

Time series is changing. Businesses now need 10,000+ time series forecasts every day. This is what I call a High-Performance Time Series Forecasting System (HPTSF) - Accurate, Robust, and Scalable Forecasting.

High-Performance Forecasting Systems will save companies by improving accuracy and scalability. Imagine what will happen to your career if you can provide your organization a β€œHigh-Performance Time Series Forecasting System” (HPTSF System).

How to Learn High-Performance Time Series Forecasting

I teach how to build a HPTFS System in my High-Performance Time Series Forecasting Course. You will learn:

  • Time Series Machine Learning (cutting-edge) with Modeltime - 30+ Models (Prophet, ARIMA, XGBoost, Random Forest, & many more)
  • Deep Learning with GluonTS (Competition Winners)
  • Time Series Preprocessing, Noise Reduction, & Anomaly Detection
  • Feature engineering using lagged variables & external regressors
  • Hyperparameter Tuning
  • Time series cross-validation
  • Ensembling Multiple Machine Learning & Univariate Modeling Techniques (Competition Winner)
  • Scalable Forecasting - Forecast 1000+ time series in parallel
  • and more.

Become the Time Series Expert for your organization.


Take the High-Performance Time Series Forecasting Course

Acknowledgements

The timetk package wouldn’t be possible without other amazing time series packages.

  • stats - Basically every timetk function that uses a period (frequency) argument owes it to ts().
    • plot_acf_diagnostics(): Leverages stats::acf(), stats::pacf() & stats::ccf()
    • plot_stl_diagnostics(): Leverages stats::stl()
  • lubridate: timetk makes heavy use of floor_date(), ceiling_date(), and duration() for β€œtime-based phrases”.
    • Add and Subtract Time (%+time% & %-time%): "2012-01-01" %+time% "1 month 4 days" uses lubridate to intelligently offset the day
  • xts: Used to calculate periodicity and fast lag automation.
  • forecast (retired): Possibly my favorite R package of all time. It’s based on ts, and it’s predecessor is the tidyverts (fable, tsibble, feasts, and fabletools).
    • The ts_impute_vec() function for low-level vectorized imputation using STL + Linear Interpolation uses na.interp() under the hood.
    • The ts_clean_vec() function for low-level vectorized imputation using STL + Linear Interpolation uses tsclean() under the hood.
    • Box Cox transformation auto_lambda() uses BoxCox.Lambda().
  • tibbletime (retired): While timetk does not import tibbletime, it uses much of the innovative functionality to interpret time-based phrases:
    • tk_make_timeseries() - Extends seq.Date() and seq.POSIXt() using a simple phase like β€œ2012-02” to populate the entire time series from start to finish in February 2012.
    • filter_by_time(), between_time() - Uses innovative endpoint detection from phrases like β€œ2012”
    • slidify() is basically rollify() using slider (see below).
  • slider: A powerful R package that provides a purrr-syntax for complex rolling (sliding) calculations.
    • slidify() uses slider::pslide under the hood.
    • slidify_vec() uses slider::slide_vec() for simple vectorized rolls (slides).
  • padr: Used for padding time series from low frequency to high frequency and filling in gaps.
    • The pad_by_time() function is a wrapper for padr::pad().
    • See the step_ts_pad() to apply padding as a preprocessing recipe!
  • TSstudio: This is the best interactive time series visualization tool out there. It leverages the ts system, which is the same system the forecast R package uses. A ton of inspiration for visuals came from using TSstudio.

More Repositories

1

free_r_tips

Free R-Tips is a FREE Newsletter provided by Business Science. It comes with bite-sized code tutorials every week.
HTML
1,167
star
2

tidyquant

Bringing financial analysis to the tidyverse
R
828
star
3

pytimetk

Time series easier, faster, more fun. Pytimetk.
Python
577
star
4

modeltime

Modeltime unlocks time series forecast models and machine learning in one framework
R
496
star
5

anomalize

Tidy anomaly detection
R
335
star
6

tibbletime

Time-aware tibbles
R
179
star
7

presentations

A central repository of Business Science presentations
HTML
164
star
8

sweep

Extending broom for time series forecasting
R
154
star
9

correlationfunnel

Speed Up Exploratory Data Analysis (EDA)
R
129
star
10

cheatsheets

92
star
11

free_python_tips

HTML
79
star
12

modeltime.ensemble

Time Series Ensemble Forecasting
R
71
star
13

alphavantager

A lightweight R interface to the Alpha Vantage API
R
68
star
14

riingo

An R interface to the Tiingo stock price API
R
49
star
15

modeltime.h2o

Forecasting with H2O AutoML. Use the H2O Automatic Machine Learning algorithm as a backend for Modeltime Time Series Forecasting.
R
39
star
16

modeltime.gluonts

GluonTS Deep Learning with Modeltime
R
37
star
17

portfoliodown

An R package for creating professional data science portfolios
CSS
36
star
18

gpu_accelerated_forecasting_modeltime_gluonts

GPU-Accelerated Deep Learning for Time Series using Modeltime GluonTS (Learning Lab 53). Event sponsors: Saturn Cloud, NVIDIA, & Business Science.
HTML
22
star
19

reports

A central repository of Business Science technical reports
17
star
20

modeltime.resample

Resampling Tools for Time Series Forecasting with Modeltime
R
17
star
21

workshop_2018_dsgo

DataScienceGO 2018 - Machine Learning Workshop
R
13
star
22

shinyauth

Dockerfile
Dockerfile
10
star
23

pymodeltime

Pymodeltime offers a unified framework tailored to address a broad spectrum of requirements, including time series forecasting and various machine learning models.
Python
10
star
24

gammodels

The parsnip backend for GAM Models.
R
7
star
25

modeltime_h2o_workshop

R
5
star
26

webinar_introducing_pytimetk

Jupyter Notebook
5
star
27

10_python_r_business_problems

Python
5
star
28

bsu-dev

Code for development of Business Science University courses.
3
star
29

workshop_timetk_data_viz

R
3
star
30

lab_63_nested_modeltime

R
1
star
31

courseinfo

Course information, curriculum, and brochures
1
star