statsmodels.tsa.statespace.varmax.VARMAX

class statsmodels.tsa.statespace.varmax.VARMAX(endog, exog=None, order=(1, 0), trend='c', error_cov_type='unstructured', measurement_error=False, enforce_stationarity=True, enforce_invertibility=True, trend_offset=1, **kwargs)[source]

Vector Autoregressive Moving Average with eXogenous regressors model

Parameters
endogarray_like

The observed time-series process \(y\), , shaped nobs x k_endog.

exogarray_like, optional

Array of exogenous regressors, shaped nobs x k.

orderiterable

The (p,q) order of the model for the number of AR and MA parameters to use.

trendstr{‘n’,’c’,’t’,’ct’} or iterable, optional

Parameter controlling the deterministic trend polynomial \(A(t)\). Can be specified as a string where ‘c’ indicates a constant (i.e. a degree zero component of the trend polynomial), ‘t’ indicates a linear trend with time, and ‘ct’ is both. Can also be specified as an iterable defining the polynomial as in numpy.poly1d, where [1,1,0,1] would denote \(a + bt + ct^3\). Default is a constant trend component.

error_cov_type{‘diagonal’, ‘unstructured’}, optional

The structure of the covariance matrix of the error term, where “unstructured” puts no restrictions on the matrix and “diagonal” requires it to be a diagonal matrix (uncorrelated errors). Default is “unstructured”.

measurement_errorbool, optional

Whether or not to assume the endogenous observations endog were measured with error. Default is False.

enforce_stationaritybool, optional

Whether or not to transform the AR parameters to enforce stationarity in the autoregressive component of the model. Default is True.

enforce_invertibilitybool, optional

Whether or not to transform the MA parameters to enforce invertibility in the moving average component of the model. Default is True.

trend_offsetint, optional

The offset at which to start time trend values. Default is 1, so that if trend=’t’ the trend is equal to 1, 2, …, nobs. Typically is only set when the model created by extending a previous dataset.

**kwargs

Keyword arguments may be used to provide default values for state space matrices or for Kalman filtering options. See Representation, and KalmanFilter for more details.

Notes

Generically, the VARMAX model is specified (see for example chapter 18 of [R3dd43ce26e2d-1]):

\[y_t = A(t) + A_1 y_{t-1} + \dots + A_p y_{t-p} + B x_t + \epsilon_t + M_1 \epsilon_{t-1} + \dots M_q \epsilon_{t-q}\]

where \(\epsilon_t \sim N(0, \Omega)\), and where \(y_t\) is a k_endog x 1 vector. Additionally, this model allows considering the case where the variables are measured with error.

Note that in the full VARMA(p,q) case there is a fundamental identification problem in that the coefficient matrices \(\{A_i, M_j\}\) are not generally unique, meaning that for a given time series process there may be multiple sets of matrices that equivalently represent it. See Chapter 12 of [R3dd43ce26e2d-1] for more information. Although this class can be used to estimate VARMA(p,q) models, a warning is issued to remind users that no steps have been taken to ensure identification in this case.

References

R3dd43ce26e2d-1(1,2)

Lütkepohl, Helmut. 2007. New Introduction to Multiple Time Series Analysis. Berlin: Springer.

Attributes
orderiterable

The (p,q) order of the model for the number of AR and MA parameters to use.

trendstr{‘n’,’c’,’t’,’ct’} or iterable

Parameter controlling the deterministic trend polynomial \(A(t)\). Can be specified as a string where ‘c’ indicates a constant (i.e. a degree zero component of the trend polynomial), ‘t’ indicates a linear trend with time, and ‘ct’ is both. Can also be specified as an iterable defining the polynomial as in numpy.poly1d, where [1,1,0,1] would denote \(a + bt + ct^3\).

error_cov_type{‘diagonal’, ‘unstructured’}, optional

The structure of the covariance matrix of the error term, where “unstructured” puts no restrictions on the matrix and “diagonal” requires it to be a diagonal matrix (uncorrelated errors). Default is “unstructured”.

measurement_errorbool, optional

Whether or not to assume the endogenous observations endog were measured with error. Default is False.

enforce_stationaritybool, optional

Whether or not to transform the AR parameters to enforce stationarity in the autoregressive component of the model. Default is True.

enforce_invertibilitybool, optional

Whether or not to transform the MA parameters to enforce invertibility in the moving average component of the model. Default is True.

Methods

clone(endog[, exog])

filter(params[, transformed, …])

Kalman filtering

fit([start_params, transformed, …])

Fits the model by maximum likelihood via Kalman filter.

fit_constrained(constraints[, start_params])

Fit the model with some parameters subject to equality constraints.

fix_params(params)

Fix parameters to specific values (context manager)

from_formula(formula, data[, subset])

Not implemented for state space models

handle_params(params[, transformed, …])

hessian(params, *args, **kwargs)

Hessian matrix of the likelihood function, evaluated at the given parameters

impulse_responses(params[, steps, impulse, …])

Impulse response function

information(params)

Fisher information matrix of model.

initialize()

Initialize (possibly re-initialize) a Model instance.

initialize_approximate_diffuse([variance])

Initialize approximate diffuse

initialize_known(initial_state, …)

Initialize known

initialize_statespace(**kwargs)

Initialize the state space representation

initialize_stationary()

Initialize stationary

loglike(params, *args, **kwargs)

Loglikelihood evaluation

loglikeobs(params[, transformed, …])

Loglikelihood evaluation

observed_information_matrix(params[, …])

Observed information matrix

opg_information_matrix(params[, …])

Outer product of gradients information matrix

predict(params[, exog])

After a model has been fit predict returns the fitted values.

prepare_data()

Prepare data for use in the state space representation

score(params, *args, **kwargs)

Compute the score function at params.

score_obs(params[, method, transformed, …])

Compute the score per observation, evaluated at params

set_conserve_memory([conserve_memory])

Set the memory conservation method

set_filter_method([filter_method])

Set the filtering method

set_inversion_method([inversion_method])

Set the inversion method

set_smoother_output([smoother_output])

Set the smoother output

set_stability_method([stability_method])

Set the numerical stability method

simulate(params, nsimulations[, …])

Simulate a new time series following the state space model

simulation_smoother([simulation_output])

Retrieve a simulation smoother for the state space model.

smooth(params[, transformed, …])

Kalman smoothing

transform_jacobian(unconstrained[, …])

Jacobian matrix for the parameter transformation function

transform_params(unconstrained)

Transform unconstrained parameters used by the optimizer to constrained parameters used in likelihood evaluation

untransform_params(constrained)

Transform constrained parameters used in likelihood evaluation to unconstrained parameters used by the optimizer.

update(params[, transformed, …])

Update the parameters of the model

Properties

endog_names

Names of endogenous variables.

exog_names

The names of the exogenous variables.

initial_variance

initialization

loglikelihood_burn

param_names

(list of str) List of human readable parameter names (for parameters actually included in the model).

start_params

(array) Starting parameters for maximum likelihood estimation.

state_names

(list of str) List of human readable names for unobserved states.

tolerance