# Time Series Regressor Selection

I am interest in a (multivariate) algorithm to identify relevant regressors (which are itself time series) to forecast a time series of interest. The question is worded in general terms because this algorithm should be applied on different kinds of time series.

With classical data, I would use for example LASSO and use those variables which non-zero coefficients but I am not really sure how to do that in a (general-purpose) time series context. The reason is that here each indicator may be relevant with a different lag. Furthermore it might be important to take a priori unknown seasonality pattern into account (the method should at best work for time series on an hourly level as well as an monthly level).

Similar questions have already been raised here at CrossValidated, for example,

here or here or here or here

but I did not find a satisfactory answer. I hope it is therefore okay to post a similar question again.

Random Forest has been suggested in this answer. As with LASSO, it is however not clear to me how to optimally apply these methods in a time series context with arbitrary seasonality patterns.

I do not want to use cross-correlation (as suggested in this answer) because I want to take into account the covariance between the regressors.

tsfresh has been suggested in this answer but I do not see how I can get the most relevant features (meaning variables/regressores plus lags) from that package.

Any hints for Python or R libraries are welcome.

"I do not want to use cross-correlation (as suggested in this answer) because I want to take into account the covariance between the regressors."

The role of pre-whitening is to INITIALLY identify the nature of the input series transfer function structures/lags. This easily gets redefined via tests of necessity and tests of sufficiency via cross-correlation tests of the current model residuals and the pre-whitened X's.

As an over-arching comment you have totally ignored the impact of latent deterministic structure such as level shifts, seasonal pulses , pulses AND time trends.

• Could you elaborate on what SARMAX exactly is? I only find references from you here on CrossValidated on SARMAX. Some literature reference would be appreciated. – Arne Jonas Warnke Jul 8 '19 at 20:17
• Look for armax ( N.B. the S just stands for possible SEASONAL structure) . Also look for Transfer Function OR Autoregressive Distributed Lags or Polynomial Distributed Lags. They are nearly synonyms. stats.stackexchange.com/search?q=user%3A3382+transfer+Function is a good place to start. Fundamentally it is ARIMA plus Exogenous variables both pre-specified and waiting to be found. – IrishStat Jul 8 '19 at 20:21
• Also see stats.stackexchange.com/questions/353491/… for some literature references – IrishStat Jul 8 '19 at 20:26
• "Is there a forecasting function which allows both multiple predictors and multiple seasonalities?" you asked elsewhere. Yes by developing a model for Daily Totals and then using it as an input to predict for higher frequencies.. such as 15 minute intervals. – IrishStat Jul 8 '19 at 20:50
• This question has been asked by Haroon Rashid, and not by me, see here. Still and interesting question :-) – Arne Jonas Warnke Jul 9 '19 at 7:02

Dynamic Factor Models, introduced among others by Stock and Watson (2002) seem to do that I am looking for

This article studies forecasting a macroeconomic time series variable using a large number of predictors. The predictors are summarized using a small number of indexes constructed by principal component analysis. An approximate dynamic factor model serves as the statistical framework for the estimation of the indexes and construction of the forecasts. The method is used to construct 6-, 12-, and 24-monthahead forecasts for eight monthly U.S. macroeconomic time series using 215 predictors in simulated real time from 1970 through 1998. During this sample period these new forecasts outperformed univariate autoregressions, small vector autoregressions, and leading indicator models.

There are implementation in Python, R or Stata, for example.