HARX.simulate(params, nobs, burn=500, initial_value=None, x=None, initial_value_vol=None)[source]

Simulates data from a linear regression, AR or HAR models


Parameters to use when simulating the model. Parameter order is [mean volatility distribution] where the parameters of the mean model are ordered [constant lag[0] lag[1] … lag[p] ex[0] … ex[k-1]] where lag[j] indicates the coefficient on the jth lag in the model and ex[j] is the coefficient on the jth exogenous variable.


Length of series to simulate

burnint, optional

Number of values to simulate to initialize the model and remove dependence on initial values.

initial_value{ndarray, float}, optional

Either a scalar value or max(lags) array set of initial values to use when initializing the model. If omitted, 0.0 is used.

x{ndarray, DataFrame}, optional

nobs + burn by k array of exogenous variables to include in the simulation.

initial_value_vol{ndarray, float}, optional

An array or scalar to use when initializing the volatility process.


DataFrame with columns data containing the simulated values, volatility, containing the conditional volatility and errors containing the errors used in the simulation


>>> import numpy as np
>>> from arch.univariate import HARX, GARCH
>>> harx = HARX(lags=[1, 5, 22])
>>> harx.volatility = GARCH()
>>> harx_params = np.array([1, 0.2, 0.3, 0.4])
>>> garch_params = np.array([0.01, 0.07, 0.92])
>>> params = np.concatenate((harx_params, garch_params))
>>> sim_data = harx.simulate(params, 1000)

Simulating models with exogenous regressors requires the regressors to have nobs plus burn data points

>>> nobs = 100
>>> burn = 200
>>> x = np.random.randn(nobs + burn, 2)
>>> x_params = np.array([1.0, 2.0])
>>> params = np.concatenate((harx_params, x_params, garch_params))
>>> sim_data = harx.simulate(params, nobs=nobs, burn=burn, x=x)
Return type