Skip to content

Repository files navigation

hctsa logo

hctsa

hctsa is a Matlab software package for running highly comparative time-series analysis. It extracts thousands of time-series features from a collection of univariate time series and includes a range of tools for visualizing and analyzing the resulting time-series feature matrix, including:

  1. Normalizing and clustering time-series data;
  2. Producing low-dimensional representations of time-series data;
  3. Identifying and interpreting discriminating features between different classes of time series; and
  4. Fitting and evaluating multivariate classification models.

Feel free to email me for advice on applications of hctsa 🤓

Installation and quick start ⬇️

For users familiar with git (recommended), please make a fork of the repo and then clone it to your local machine. To update, after setting an upstream remote (git remote add upstream git://github.com/benfulcher/hctsa.git) you can use git pull upstream main. To obtain the latest toolboxes (like the optimized catch22 feature set) in one step, clone with git clone --recurse-submodules; otherwise startup.m will fetch the catch22 submodule for you automatically the first time it runs.

Users unfamiliar with git can instead download the repository by clicking the green "Code" button then "Download ZIP".

Once downloaded, you can install hctsa by running the install.m script (see docs for details), and then compute and explore a time-series feature matrix for a sample time-series dataset in a few lines of code:

TS_Init('INP_test_ts.mat','hctsa'); % format time series into HCTSA.mat
TS_Compute;                         % compute all features (uses Parallel Computing Toolbox if available)
TS_Normalize;                       % normalize the resulting feature matrix, into HCTSA_N.mat
TS_Cluster;                         % cluster time series and features by similarity
TS_PlotDataMatrix;                  % plot the clustered feature matrix

See the docs for how to bring in your own time-series data and for the many other analysis and visualization tools available.

Documentation 📖

Comprehensive documentation for hctsa, from getting started through to more advanced analyses is on GitBook.

There is also a lot of additional information in these docs, including:

  • 👉 Information about alternative feature sets (including the much faster catch22), and information about other time-series packages available in R, python, and Julia.
  • 〰️ The accompanying time-series data archive for this project, CompEngine.
  • 💾 Downloadable hctsa feature matrices from time-series datasets with example workflows.
  • 💻 Resources for distributing an hctsa computation on a computing cluster.
  • 📕 A list of publications that have used hctsa to address different research questions.
  • 💁 Frequently asked questions about hctsa and related feature-based time-series analyses.

Acknowledgement 👍

If you use this software, please read and cite these open-access articles:

Feedback, as email, GitHub issues or pull requests, is much appreciated.

For commercial use of hctsa, including licensing and consulting, contact Engine Analytics.

Licenses

Two licenses apply to the two core functionalities of hctsa:

  1. The framework for running hctsa analyses and visualizations is licensed as the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. A license for commercial use is available from Engine Analytics.

  2. Code for computing features from time-series data is licensed as GNU General Public License version 3.

Many features in hctsa rely on external packages (provided for convenience in the Toolboxes directory, which each have their own associated license, outlined below) and Matlab Add-On Toolboxes. Note that, in the case that some of them are unavailable, hctsa can still be used, but only a reduced set of time-series features will be computed.

Matlab Add-On Toolboxes: Statistics and Machine Learning, Signal Processing, Curve Fitting, System Identification, Wavelet, and Econometrics.

External Packages (provided):

Releases

Used by

Contributors

Languages