pysteps.timeseries.autoregression.estimate_var_params_ols

pysteps.timeseries.autoregression.estimate_var_params_ols#

pysteps.timeseries.autoregression.estimate_var_params_ols(x, p, d=0, check_stationarity=True, include_constant_term=False, h=0, lam=0.0)#

Estimate the parameters of a vector autoregressive VAR(p) model

\(\mathbf{x}_{k+1}=\mathbf{c}+\mathbf{\Phi}_1\mathbf{x}_k+ \mathbf{\Phi}_2\mathbf{x}_{k-1}+\dots+\mathbf{\Phi}_p\mathbf{x}_{k-p}+ \mathbf{\Phi}_{p+1}\mathbf{\epsilon}\)

by using ordinary least squares (OLS). If \(d\geq 1\), the parameters are estimated for a d times differenced time series that is integrated back to the original one by summation of the differences.

Parameters:
  • x (array_like) – Array of shape (n, q, :) containing a time series of length n=p+d+h+1 with q-dimensional variables. The remaining dimensions are flattened. The remaining dimensions starting from the third one represent the samples.

  • p (int) – The order of the model.

  • d ({0,1}) – The order of differencing to apply to the time series.

  • check_stationarity (bool) – If True, the stationarity of the resulting VAR(p) process is tested. An exception is thrown if the process is not stationary.

  • include_constant_term (bool) – Include the constant term \(\mathbf{c}\) to the model.

  • h (int) – If h>0, the fitting is done by using a history of length h in addition to the minimal required number of time steps n=p+d+1.

  • lam (float) – If lam>0, the regression is regularized by adding a penalty term (i.e. ridge regression).

Returns:

out – The estimated parameter matrices \(\mathbf{\Phi}_1,\mathbf{\Phi}_2, \dots,\mathbf{\Phi}_{p+1}\). If include_constant_term is True, the constant term \(\mathbf{c}\) is added to the beginning of the list.

Return type:

list

Notes

Estimation of the innovation parameter \(\mathbf{\Phi}_{p+1}\) is not currently implemented, and it is set to a zero matrix.