arch.univariate.ZeroMean.simulate

ZeroMean.simulate(params: ndarray | Series | Sequence[float], nobs: int, burn: int = 500, initial_value: None | float | ndarray = None, x: ndarray | DataFrame | Series | None = None, initial_value_vol: None | float | ndarray = None) DataFrame[source]

Simulated data from a zero mean model

Parameters:
params: ndarray | Series | Sequence[float]

Parameters to use when simulating the model. Parameter order is [volatility distribution]. There are no mean parameters.

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: None | float | ndarray = None

This value is not used.

x: ndarray | DataFrame | Series | None = None

This value is not used.

initial_value_vol: None | float | ndarray = 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:

pandas.DataFrame

Examples

Basic data simulation with no mean and constant volatility

>>> from arch.univariate import ZeroMean
>>> import numpy as np
>>> zm = ZeroMean()
>>> params = np.array([1.0])
>>> sim_data = zm.simulate(params, 1000)

Simulating data with a non-trivial volatility process

>>> from arch.univariate import GARCH
>>> zm.volatility = GARCH(p=1, o=1, q=1)
>>> sim_data = zm.simulate([0.05, 0.1, 0.1, 0.8], 300)