arch.univariate.ARX.simulate¶
-
ARX.simulate(params: ndarray | Series | Sequence[float], nobs: int, burn: int =
500
, initial_value: float | ndarray[Any, dtype[float64]] | None =None
, x: ndarray | DataFrame | Series | None =None
, initial_value_vol: float | ndarray[Any, dtype[float64]] | None =None
) DataFrame ¶ Simulates data from a linear regression, AR or HAR models
- Parameters:¶
- params: ndarray | Series | Sequence[float]¶
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.
- nobs: int¶
Length of series to simulate
- burn: int =
500
¶ Number of values to simulate to initialize the model and remove dependence on initial values.
- initial_value: float | ndarray[Any, dtype[float64]] | None =
None
¶ 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 | Series | None =
None
¶ nobs + burn by k array of exogenous variables to include in the simulation.
- initial_value_vol: float | ndarray[Any, dtype[float64]] | None =
None
¶ An array or scalar to use when initializing the volatility process.
- Returns:¶
simulated_data – DataFrame with columns data containing the simulated values, volatility, containing the conditional volatility and errors containing the errors used in the simulation
- Return type:¶
Examples
>>> 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)