| Maintainer: | Rob J Hyndman, Rebecca Killick |
| Contact: | Rob.Hyndman at monash.edu |
| Version: | 2026-09-30 |
| URL: | https://CRAN.R-project.org/view=TimeSeries |
| Source: | https://github.com/cran-task-views/TimeSeries/ |
| Contributions: | Suggestions and improvements for this task view are very welcome and can be made through issues or pull requests on GitHub or via e-mail to the maintainer address. For further details see the Contributing guide. |
| Citation: | Rob J Hyndman, Rebecca Killick (2026). CRAN Task View: Time Series Analysis. Version 2026-09-30. URL https://CRAN.R-project.org/view=TimeSeries. |
| Installation: | The packages from this task view can be installed automatically using the ctv package. For example, ctv::install.views("TimeSeries", coreOnly = TRUE) installs all the core packages or ctv::update.views("TimeSeries") installs all packages that are not yet installed and up-to-date. See the CRAN Task View Initiative for more details. |
Base R ships with a lot of functionality useful for time series, in particular in the stats package. This is complemented by many packages on CRAN, which are briefly summarized below. There is overlap between the tools for time series and those designed for specific domains including Econometrics, Finance and Environmetrics, or specific problems such as AnomalyDetection.
If you think that some package is missing from the list, please let us know, either via e-mail to the maintainer or by submitting an issue or pull request in the GitHub repository linked above.
Base R contains substantial infrastructure for representing and analysing time series data. The fundamental class is "ts" that can represent regularly spaced time series (using numeric time stamps). Hence, it is particularly well-suited for annual, monthly, quarterly data, etc.
"ts" can only deal with numeric time stamps, but many more classes are available for storing time/date information and computing with it. For an overview see R Help Desk: Date and Time Classes in R by Gabor Grothendieck and Thomas Petzoldt in R News 4(1), 29-32."yearmon" and "yearqtr" from zoo allow for more convenient computation with monthly and quarterly observations, respectively."Date" from the base package is the basic class for dealing with dates in daily data. The dates are internally stored as the number of days since 1970-01-01.dates(), hours() and date/time (intraday) in chron(). There is no support for time zones and daylight savings time. Internally, "chron" objects are (fractional) days since 1970-01-01."POSIXct" and "POSIXlt" implement the POSIX standard for date/time (intraday) information and also support time zones and daylight savings time. However, the time zone computations require some care and might be system-dependent. Internally, "POSIXct" objects are the number of seconds since 1970-01-01 00:00:00 GMT. Package lubridate provides functions that facilitate certain POSIX-based computations, while clock provides a comprehensive library for date-time manipulations using a new family of orthogonal date-time classes (durations, time points, zoned-times, and calendars). The anytime package converts various inputs into POSIXct or Date objects. Various recurrent calendar calculations are possible using almanac (archived). timechange allows for efficient manipulation of date-times accounting for time zones and daylight saving times."timeDate" is provided in the timeDate package (previously: fCalendar). It is aimed at financial time/date information and deals with time zones and daylight savings times via a new concept of “financial centers”. Internally, it stores all information in "POSIXct" and does all computations in GMT only. Calendar functionality, e.g., including information about weekends and holidays for various stock exchanges, is also included. qlcal allows access to various financial exchange calendars via QuantLib."ti" class for time/date information."mondate" class from the mondate package facilitates computing with dates in terms of months."ts" is the basic class for regularly spaced time series using numeric time stamps."ts".shift() for lead/lag operations. Further basic time series functionalities are offered by DTSg which is based on data.table. dtts provides high-frequency time series support via nanotime and data.table."POSIXct" time stamps, intended especially for financial applications. These include "irts" from tseries."timeSeries" in timeSeries (previously: fSeries) implements time series with "timeDate" time stamps."tis" in tis implements time series with "ti" time stamps.ma from forecast, and rollmean from zoo. The latter also provides a general function rollapply, along with other specific rolling statistics functions.slide_tsibble() for rolling statistics, tile_tsibble() for non-overlapping sliding windows, and stretch_tsibble() for expanding windows. tbrf provides rolling functions based on date and time windows instead of n-lagged observations. runner provides tools for running any R function in rolling windows or date windows.froll*() family of functions can be used for high-performance rolling statistics. Functions are provided for many special cases such as frollmean(), frollmedian(), frollsd(), etc.plot() applied to ts objects. (Partial) autocorrelation functions plots are implemented in acf() and pacf(). Alternative versions are provided by Acf() and Pacf() in forecast, along with a combination display using tsdisplay(). Seasonal displays are obtained using monthplot() in stats, seasonplot in forecast, and seasplot in tsutils.acf() and pacf() in stats estimate the autocorrelation and partial autocorrelation functions. ACF() and PACF() from feasts provide versions of these for tsibble objects. Banded and tapered estimates of the autocorrelation and partial autocorrelation functions are computed by taperedacf() and taperedpacf() in forecast. CovEsts provides nonparametric estimation, correction and comparison of autocovariance functions for univariate time series, with block bootstrap confidence intervals. dCovTS computes and plots the distance covariance and correlation functions of time series. ACF and CCF variants based on Chatterjee’s Xi correlation are provided by xiacf.tsibble format. They are computed using tsfeatures for a list or matrix of time series in ts format. In both packages, many built-in feature functions are included, and users can add their own.filter() in stats provides autoregressive and moving average linear filtering of multiple univariate time series. The robfilter package provides several robust time series filters.smooth() from the stats package computes Tukey’s running median smoothers, 3RS3R, 3RSS, 3R, etc. sleekts computes the 4253H twice smoothing method.decompose(), and STL decomposition in stl(). Enhanced STL decomposition is available in stlplus. stR provides Seasonal-Trend decomposition based on Regression. smooth and tsutils implement extended versions of classical decomposition. tsdecomp implements ARIMA-based decomposition of quarterly and monthly data.spectrum() in the stats package, including the periodogram, smoothed periodogram and AR estimates. Bayesian spectral inference is provided by bspec, beyondWhittle and regspec. quantspec includes methods to compute and plot quantile periodograms for univariate and multivariate time series. The Lomb-Scargle periodogram for unevenly sampled time series is computed by lomb. peacots provides inference for periodograms using an Ornstein-Uhlenbeck state space model. spectral uses Fourier and Hilbert transforms for spectral analysis. psd produces adaptive, sine-multitaper spectral density estimates. kza provides Kolmogorov-Zurbenko Adaptive Filters including break detection, spectral analysis, wavelets and KZ Fourier Transforms. multitaper also provides some multitaper spectral analysis tools. Higher-order spectral analysis is implemented in rhosa, including bispectrum, bicoherence, cross-bispectrum and cross-bicoherence.fourier function.HoltWinters() in stats provides some basic models with partial optimization, ETS() from fable and ets() from forecast provide a larger set of models and facilities with full optimization. smooth implements some generalizations of exponential smoothing. legion implements multivariate versions of exponential smoothing. The MAPA package combines exponential smoothing models at different levels of temporal aggregation to improve forecast accuracy. Some Bayesian extensions of exponential smoothing are contained in Rlgt.THETA() function from fable, thetaf() function from forecast, and theta() from tsutils. An alternative and extended implementation is provided in forecTheta.ar() in stats (with model selection). Quantile autoregression with prediction intervals is implemented in qarPI.arima() in stats is the basic function for ARIMA, SARIMA, RegARIMA, and subset ARIMA models. It is enhanced in the fable package via the ARIMA() function which allows for automatic modelling. Similar functionality is provided in the forecast package via the auto.arima() function. arma() in the tseries package provides different algorithms for ARMA and subset ARMA models. Other estimation methods including the innovations algorithm are provided by itsmr. arima2 provides a random-restart estimation algorithm to replace stats::arima(). bayesforecast fits Bayesian time series models including seasonal ARIMA and ARIMAX models. Robust ARIMA modelling is provided in the robustarima package. TSTutorial provides an interactive tutorial for Box-Jenkins modelling. Improved prediction intervals for ARIMA and structural time series models are provided by tsPI. ARIMA models with multiple seasonal periods can be handled with tfarima and smooth.arfima function in the arfima and the tfarima packages.StructTS() in stats, while automatic modelling and forecasting are provided by UComp and autostsm. The more general Power/Trend/Seasonal (PTS) state space model framework is provided by muse. statespacer implements univariate state space models including structural and SARIMA models.garch() from tseries fits basic GARCH models. Many variations on GARCH models are provided by rugarch and tsgarch. Other univariate GARCH packages include fGarch which implements ARIMA models with a wide class of GARCH innovations and robustGarch which provides robust GARCH(1,1) models. bayesforecast fits Bayesian time series models including several variations of GARCH models. There are many more GARCH packages described in the Finance task view.tsibble format. fabletools provides tools for extending the fable framework.ts objects, while modeltime provides time series forecasting tools for use with the ‘tidymodels’ ecosystem. Forecast resampling tools for use with modeltime are provided by modeltime.resample. mlr3forecast provides time series forecasting tools for use with the mlr3 ecosystem.accuracy() function from the fable and forecast packages. Distributional forecast evaluation using scoring rules is available in fable, scoringRules and scoringutils. The Diebold-Mariano test for comparing the forecast accuracy of two models is implemented in the dm.test() function in forecast. ForeComp generates a size-power tradeoff plot for a given Diebold-Mariano test. A multivariate version of the Diebold-Mariano test is provided by multDM. forecastdom is a toolkit for forecast dominance testing. tsutils implements the Nemenyi test for comparing forecasts. greybox provides ro() for general rolling origin evaluation of forecasts.Box.test() in the stats package. Additional tests are given by portes, WeightedPortTest, and testcorr.cpt.mean(), cpt.var() and cpt.meanvar() implementing PELT, binary segmentation and segment neighbourhood search. binsegRcpp provides an efficient C++ implementation of the popular binary segmentation heuristic (univariate data, Gaussian/Poisson/L1/Laplace losses, computes sequence of models from 1 segment to a given max number of segments). jointseg provides Fpsn() which implements a “Functional pruning segment neighborhood” dynamic programming algorithm (univariate data, square loss, computes best model for a certain number of changes/segments). Efficient implementations of several popular changepoint detection algorithms are provided by rupturesRcpp. breakfast includes methods for fast multiple change-point detection and estimation. mosum provides a moving sum procedure for detecting multiple changepoints in univariate time series. Estimation of changepoints using an “S-curve” approximation is provided by changeS. Change point detection using various tests is provided in trend.ggplot2 plots and geoms.tsoutliers and tsclean functions in the forecast package provide some simple heuristic methods for identifying and correcting outliers. tsrobprep provides methods for replacing missing values and outliers using a model-based approach. ctbi implements a procedure to clean, decompose and aggregate time series.na.interp() from the forecast package. imputeTestbench provides tools for testing and comparing imputation methods. mtsdi implements an EM algorithm for imputing missing values in multivariate normal time series, accounting for spatial and temporal correlations. Imputation methods for multivariate locally stationary time series are in mvLSWimpute.tsboot() for time series bootstrapping, including block bootstrap with several variants. blocklength allows for selecting the optimal block-length for a dependent bootstrap. tsbootstrap() from tseries provides fast stationary and block bootstrapping. Maximum entropy bootstrap for time series is available in meboot.ar() in the basic stats package including order selection via the AIC. These models are restricted to be stationary. MTS is an all-purpose toolkit for analysing multivariate time series including VAR, VARMA, seasonal VARMA, VAR models with exogenous variables, multivariate regression with time series errors, and much more. VAR models are fitted by least squares, without a stationarity restriction, in the mAr package, which also provides eigen-decomposition of the fitted models and estimation in principal component space. More elaborate models are provided in package vars. Another implementation with bootstrapped prediction intervals is given in VAR.etp. Fractionally cointegrated VAR models are handled by FCVAR. Simulation and analysis of Gaussian VARMA models is provided by varmapack.simulate() in forecast package or generate() in fable, given a specific model. Package gsarima contains functionality for Generalized SARIMA time series simulation. synthesis generates synthetic time series from commonly used statistical models, including linear, nonlinear and chaotic systems.