# estimate

Fit conditional variance model to data

## Syntax

``EstMdl = estimate(Mdl,y)``
``EstMdl = estimate(Mdl,y,Name,Value)``
``````[EstMdl,EstParamCov,logL,info] = estimate(___)``````

## Description

example

````EstMdl = estimate(Mdl,y)` estimates the unknown parameters of the conditional variance model object `Mdl` with the observed univariate time series `y`, using maximum likelihood. `EstMdl` is a fully specified conditional variance model object that stores the results. It is the same model type as `Mdl` (see `garch`, `egarch`, and `gjr`).```

example

````EstMdl = estimate(Mdl,y,Name,Value)` estimates the conditional variance model with additional options specified by one or more `Name,Value` pair arguments. For example, you can specify to display iterative optimization information or presample innovations.```

example

``````[EstMdl,EstParamCov,logL,info] = estimate(___)``` additionally returns: `EstParamCov`, the variance-covariance matrix associated with estimated parameters.`logL`, the optimized loglikelihood objective function.`info`, a data structure of summary information using any of the input arguments in the previous syntaxes. ```

## Examples

collapse all

Fit a GARCH(1,1) model to simulated data.

Simulate 500 data points from the GARCH(1,1) model

`${y}_{t}={\epsilon }_{t},$`

where ${\epsilon }_{t}={\sigma }_{t}{z}_{t}$ and

`${\sigma }_{t}^{2}=0.0001+0.5{\sigma }_{t-1}^{2}+0.2{\epsilon }_{t-1}^{2}.$`

Use the default Gaussian innovation distribution for ${z}_{t}$.

```Mdl = garch('Constant',0.0001,'GARCH',0.5,... 'ARCH',0.2); rng default; % For reproducibility [v,y] = simulate(Mdl,500);```

The output `v` contains simulated conditional variances. `y` is a column vector of simulated responses (innovations).

Specify a GARCH(1,1) model with unknown coefficients, and fit it to the series `y`.

```ToEstMdl = garch(1,1); EstMdl = estimate(ToEstMdl,y)```
``` GARCH(1,1) Conditional Variance Model (Gaussian Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 9.8911e-05 3.0726e-05 3.2191 0.001286 GARCH{1} 0.45394 0.11193 4.0557 4.9984e-05 ARCH{1} 0.26374 0.056931 4.6326 3.6111e-06 ```
```EstMdl = garch with properties: Description: "GARCH(1,1) Conditional Variance Model (Gaussian Distribution)" Distribution: Name = "Gaussian" P: 1 Q: 1 Constant: 9.89106e-05 GARCH: {0.453936} at lag [1] ARCH: {0.263738} at lag [1] Offset: 0 ```

The result is a new `garch` model called `EstMdl`. The parameter estimates in `EstMdl` resemble the parameter values that generated the simulated data.

Fit an EGARCH(1,1) model to simulated data.

Simulate 500 data points from an EGARCH(1,1) model

`${y}_{t}={\epsilon }_{t},$`

where ${\epsilon }_{t}={\sigma }_{t}{z}_{t},$ and

`$\mathrm{log}{\sigma }_{t}^{2}=0.001+0.7\mathrm{log}{\sigma }_{t-1}^{2}+0.5\left[\frac{|{\epsilon }_{t-1}|}{{\sigma }_{t-1}}-\sqrt{\frac{2}{\pi }}\right]-0.3\left(\frac{{\epsilon }_{t-1}}{{\sigma }_{t-1}}\right)$`

(the distribution of ${z}_{t}$ is Gaussian).

```Mdl = egarch('Constant',0.001,'GARCH',0.7,... 'ARCH',0.5,'Leverage',-0.3); rng default % For reproducibility [v,y] = simulate(Mdl,500);```

The output `v` contains simulated conditional variances. `y` is a column vector of simulated responses (innovations).

Specify an EGARCH(1,1) model with unknown coefficients, and fit it to the series `y`.

```ToEstMdl = egarch(1,1); EstMdl = estimate(ToEstMdl,y)```
``` EGARCH(1,1) Conditional Variance Model (Gaussian Distribution): Value StandardError TStatistic PValue ___________ _____________ __________ __________ Constant -0.00063865 0.031698 -0.020148 0.98393 GARCH{1} 0.70506 0.067359 10.467 1.222e-25 ARCH{1} 0.56774 0.074746 7.5956 3.063e-14 Leverage{1} -0.32116 0.053345 -6.0204 1.7398e-09 ```
```EstMdl = egarch with properties: Description: "EGARCH(1,1) Conditional Variance Model (Gaussian Distribution)" Distribution: Name = "Gaussian" P: 1 Q: 1 Constant: -0.000638645 GARCH: {0.705065} at lag [1] ARCH: {0.567741} at lag [1] Leverage: {-0.321158} at lag [1] Offset: 0 ```

The result is a new `egarch` model called `EstMdl`. The parameter estimates in `EstMdl` resemble the parameter values that generated the simulated data.

Fit a GJR(1,1) model to simulated data.

Simulate 500 data points from a GJR(1,1) model.

`${y}_{t}={\epsilon }_{t},$`

where ${\epsilon }_{t}={\sigma }_{t}{z}_{t}$ and

`${\sigma }_{t}^{2}=0.001+0.5{\sigma }_{t-1}^{2}+0.2{\epsilon }_{t-1}^{2}+0.2I\left[{\epsilon }_{t-1}<0\right]{\epsilon }_{t-1}^{2}.$`

Use the default Gaussian innovation distribution for ${z}_{t}$.

```Mdl = gjr('Constant',0.001,'GARCH',0.5,... 'ARCH',0.2,'Leverage',0.2); rng default; % For reproducibility [v,y] = simulate(Mdl,500);```

The output `v` contains simulated conditional variances. `y` is a column vector of simulated responses (innovations).

Specify a GJR(1,1) model with unknown coefficients, and fit it to the series `y`.

```ToEstMdl = gjr(1,1); EstMdl = estimate(ToEstMdl,y)```
``` GJR(1,1) Conditional Variance Model (Gaussian Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 0.00097382 0.00025135 3.8743 0.00010694 GARCH{1} 0.46056 0.071793 6.4151 1.4077e-10 ARCH{1} 0.24126 0.063409 3.8047 0.00014196 Leverage{1} 0.25051 0.11265 2.2237 0.026171 ```
```EstMdl = gjr with properties: Description: "GJR(1,1) Conditional Variance Model (Gaussian Distribution)" Distribution: Name = "Gaussian" P: 1 Q: 1 Constant: 0.000973819 GARCH: {0.460555} at lag [1] ARCH: {0.241255} at lag [1] Leverage: {0.250507} at lag [1] Offset: 0 ```

The result is a new `gjr` model called `EstMdl`. The parameter estimates in `EstMdl` resemble the parameter values that generated the simulated data.

Fit a GARCH(1,1) model to the daily close NASDAQ Composite Index returns.

Load the NASDAQ data included with the toolbox. Convert the index to returns.

```load Data_EquityIdx nasdaq = DataTable.NASDAQ; y = price2ret(nasdaq); T = length(y); figure plot(y) xlim([0,T]) title('NASDAQ Returns')```

The returns exhibit volatility clustering.

Specify a GARCH(1,1) model, and fit it to the series. One presample innovation is required to initialize this model. Use the first observation of `y` as the necessary presample innovation.

```Mdl = garch(1,1); [EstMdl,EstParamCov] = estimate(Mdl,y(2:end),'E0',y(1))```
``` GARCH(1,1) Conditional Variance Model (Gaussian Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 1.9986e-06 5.4227e-07 3.6857 0.00022809 GARCH{1} 0.88356 0.0084341 104.76 0 ARCH{1} 0.10903 0.0076471 14.257 4.0404e-46 ```
```EstMdl = garch with properties: Description: "GARCH(1,1) Conditional Variance Model (Gaussian Distribution)" Distribution: Name = "Gaussian" P: 1 Q: 1 Constant: 1.99865e-06 GARCH: {0.883564} at lag [1] ARCH: {0.109027} at lag [1] Offset: 0 ```
```EstParamCov = 3×3 10-4 × 0.0000 -0.0000 0.0000 -0.0000 0.7113 -0.5343 0.0000 -0.5343 0.5848 ```

The output `EstMdl` is a new `garch` model with estimated parameters.

Use the output variance-covariance matrix to calculate the estimate standard errors.

`se = sqrt(diag(EstParamCov))`
```se = 3×1 0.0000 0.0084 0.0076 ```

These are the standard errors shown in the estimation output display. They correspond (in order) to the constant, GARCH coefficient, and ARCH coefficient.

Fit an EGARCH(1,1) model to the daily close NASDAQ Composite Index returns.

Load the NASDAQ data included with the toolbox. Convert the index to returns.

```load Data_EquityIdx nasdaq = DataTable.NASDAQ; y = price2ret(nasdaq); T = length(y); figure plot(y) xlim([0,T]) title('NASDAQ Returns')```

The returns exhibit volatility clustering.

Specify an EGARCH(1,1) model, and fit it to the series. One presample innovation is required to initialize this model. Use the first observation of `y` as the necessary presample innovation.

```Mdl = egarch(1,1); [EstMdl,EstParamCov] = estimate(Mdl,y(2:end),'E0',y(1))```
``` EGARCH(1,1) Conditional Variance Model (Gaussian Distribution): Value StandardError TStatistic PValue _________ _____________ __________ __________ Constant -0.13478 0.022092 -6.101 1.0539e-09 GARCH{1} 0.98391 0.0024221 406.22 0 ARCH{1} 0.19964 0.013965 14.296 2.3318e-46 Leverage{1} -0.060243 0.005647 -10.668 1.4348e-26 ```
```EstMdl = egarch with properties: Description: "EGARCH(1,1) Conditional Variance Model (Gaussian Distribution)" Distribution: Name = "Gaussian" P: 1 Q: 1 Constant: -0.134785 GARCH: {0.983909} at lag [1] ARCH: {0.199645} at lag [1] Leverage: {-0.0602433} at lag [1] Offset: 0 ```
```EstParamCov = 4×4 10-3 × 0.4881 0.0533 -0.1018 0.0106 0.0533 0.0059 -0.0118 0.0017 -0.1018 -0.0118 0.1950 0.0016 0.0106 0.0017 0.0016 0.0319 ```

The output `EstMdl` is a new `egarch` model with estimated parameters.

Use the output variance-covariance matrix to calculate the estimate standard errors.

`se = sqrt(diag(EstParamCov))`
```se = 4×1 0.0221 0.0024 0.0140 0.0056 ```

These are the standard errors shown in the estimation output display. They correspond (in order) to the constant, GARCH coefficient, ARCH coefficient, and leverage coefficient.

Fit a GJR(1,1) model to the daily close NASDAQ Composite Index returns.

Load the NASDAQ data included with the toolbox. Convert the index to returns.

```load Data_EquityIdx nasdaq = DataTable.NASDAQ; y = price2ret(nasdaq); T = length(y); figure plot(y) xlim([0,T]) title('NASDAQ Returns')```

The returns exhibit volatility clustering.

Specify a GJR(1,1) model, and fit it to the series. One presample innovation is required to initialize this model. Use the first observation of `y` as the necessary presample innovation.

```Mdl = gjr(1,1); [EstMdl,EstParamCov] = estimate(Mdl,y(2:end),'E0',y(1))```
``` GJR(1,1) Conditional Variance Model (Gaussian Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 2.4558e-06 5.6846e-07 4.3201 1.5593e-05 GARCH{1} 0.8814 0.0094849 92.927 0 ARCH{1} 0.064063 0.0091935 6.9682 3.2099e-12 Leverage{1} 0.088818 0.0099123 8.9604 3.2358e-19 ```
```EstMdl = gjr with properties: Description: "GJR(1,1) Conditional Variance Model (Gaussian Distribution)" Distribution: Name = "Gaussian" P: 1 Q: 1 Constant: 2.45582e-06 GARCH: {0.881397} at lag [1] ARCH: {0.0640626} at lag [1] Leverage: {0.0888177} at lag [1] Offset: 0 ```
```EstParamCov = 4×4 10-4 × 0.0000 -0.0000 0.0000 0.0000 -0.0000 0.8996 -0.6928 -0.0001 0.0000 -0.6928 0.8452 -0.3605 0.0000 -0.0001 -0.3605 0.9825 ```

The output `EstMdl` is a new `gjr` model with estimated parameters.

Use the output variance-covariance matrix to calculate the estimate standard errors.

`se = sqrt(diag(EstParamCov))`
```se = 4×1 0.0000 0.0095 0.0092 0.0099 ```

These are the standard errors shown in the estimation output display. They correspond (in order) to the constant, GARCH coefficient, ARCH coefficient, and leverage coefficient.

## Input Arguments

collapse all

Conditional variance model containing unknown parameters, specified as a `garch`, `egarch`, or `gjr` model object.

`estimate` treats non-`NaN` elements in `Mdl` as equality constraints, and does not estimate the corresponding parameters.

Single path of response data, specified as a numeric column vector. The software infers the conditional variances from `y`, i.e., the data to which the model is fit.

`y` is usually an innovation series with mean 0 and conditional variance characterized by the model specified in `Mdl`. In this case, `y` is a continuation of the innovation series `E0`.

`y` can also represent an innovation series with mean 0 plus an offset. A nonzero `Offset` signals the inclusion of an offset in `Mdl`.

The last observation of `y` is the latest observation.

Data Types: `double`

### Name-Value Pair Arguments

Specify optional comma-separated pairs of `Name,Value` arguments. `Name` is the argument name and `Value` is the corresponding value. `Name` must appear inside quotes. You can specify several name and value pair arguments in any order as `Name1,Value1,...,NameN,ValueN`.

Example: `'Display','iter','E0',[0.1; 0.05]` specifies to display iterative optimization information, and `[0.05; 0.1]` as presample innovations.

#### For GARCH, EGARCH, and GJR Models

collapse all

Initial coefficient estimates corresponding to past innovation terms, specified as the comma-separated pair consisting of `'ARCH0'` and a numeric vector.

• For GARCH(P,Q) and GJR(P,Q) models:

• `ARCH0` must be a numeric vector containing nonnegative elements.

• `ARCH0` contains the initial coefficient estimates associated with the past squared innovation terms that compose the ARCH polynomial.

• By default, `estimate` derives initial estimates using standard time series techniques.

• For EGARCH(P,Q) models:

• `ARCH0` contains the initial coefficient estimates associated with the magnitude of the past standardized innovations that compose the ARCH polynomial.

• By default, `estimate` sets the initial coefficient estimate associated with the first nonzero lag in the model to a small positive value. All other values are zero.

The number of coefficients in `ARCH0` must equal the number of lags associated with nonzero coefficients in the ARCH polynomial, as specified in the `ARCHLags` property of `Mdl`.

Data Types: `double`

Initial conditional variance model constant estimate, specified as the comma-separated pair consisting of `'Constant0'` and a numeric scalar.

For GARCH(P,Q) and GJR(P,Q) models, `Constant0` must be a positive scalar.

By default, `estimate` derives initial estimates using standard time series techniques.

Data Types: `double`

Command Window display option, specified as the comma-separated pair consisting of `'Display'` and a value or any combination of values in this table.

Valueestimate Displays
`'diagnostics'`Optimization diagnostics
`'full'`Maximum likelihood parameter estimates, standard errors, t statistics, iterative optimization information, and optimization diagnostics
`'iter'`Iterative optimization information
`'off'`No display in the Command Window
`'params'`Maximum likelihood parameter estimates, standard errors, and t statistics

For example:

• To run a simulation where you are fitting many models, and therefore want to suppress all output, use `'Display','off'`.

• To display all estimation results and the optimization diagnostics, use `'Display',{'params','diagnostics'}`.

Data Types: `char` | `cell` | `string`

Initial t-distribution degrees-of-freedom parameter estimate, specified as the comma-separated pair consisting of `'DoF0'` and a positive scalar. `DoF0` must exceed 2.

Data Types: `double`

Presample innovations, specified as the comma-separated pair consisting of `'E0'` and a numeric column vector. The presample innovations provide initial values for the innovations process of the conditional variance model `Mdl`. The presample innovations derive from a distribution with mean 0.

`E0` must contain at least `Mdl.Q` rows. If `E0` contains extra rows, then `estimate` uses the latest `Mdl.Q` presample innovations. The last row contains the latest presample innovation.

The defaults are:

• For GARCH(P,Q) and GJR(P,Q) models, `estimate` sets any necessary presample innovations to the square root of the average squared value of the offset-adjusted response series `y`.

• For EGARCH(P,Q) models, `estimate` sets any necessary presample innovations to zero.

Data Types: `double`

Initial coefficient estimates for past conditional variance terms, specified as the comma-separated pair consisting of `'GARCH0'` and a numeric vector.

• For GARCH(P,Q) and GJR(P,Q) models:

• `GARCH0` must be a numeric vector containing nonnegative elements.

• `GARCH0` contains the initial coefficient estimates associated with the past conditional variance terms that compose the GARCH polynomial.

• For EGARCH(P,Q) models,`GARCH0` contains the initial coefficient estimates associated with past log conditional variance terms that compose the GARCH polynomial.

The number of coefficients in `GARCH0` must equal the number of lags associated with nonzero coefficients in the GARCH polynomial, as specified in the `GARCHLags` property of `Mdl`.

By default, `estimate` derives initial estimates using standard time series techniques.

Data Types: `double`

Initial innovation mean model offset estimate, specified as the comma-separated pair consisting of `'Offset0'` and a scalar.

By default, `estimate` sets the initial estimate to the sample mean of `y`.

Data Types: `double`

Optimization options, specified as the comma-separated pair consisting of `'Options'` and an `optimoptions` optimization controller. For details on altering the default values of the optimizer, see `optimoptions` or `fmincon` in Optimization Toolbox™.

For example, to change the constraint tolerance to `1e-6`, set `Options = optimoptions(@fmincon,'ConstraintTolerance',1e-6,'Algorithm','sqp')`. Then, pass `Options` into `estimate` using `'Options',Options`.

By default, `estimate` uses the same default options as `fmincon`, except `Algorithm` is `'sqp'` and `ConstraintTolerance` is `1e-7`.

Presample conditional variances, specified as the comma-separated pair consisting of `'V0'` and numeric column vector with positive entries. `V0` provide initial values for conditional variance process of the conditional variance model `Mdl`.

For GARCH(P,Q) and GJR(P,Q) models, `V0` must have at least `Mdl.P` rows.

For EGARCH(P,Q) models,`V0` must have at least `max(Mdl.P,Mdl.Q)` rows.

If the number of rows in `V0` exceeds the necessary number, only the latest observations are used. The last row contains the latest observation.

By default, `estimate` sets the necessary presample conditional variances to the average squared value of the offset-adjusted response series `y`.

Data Types: `double`

#### For EGARCH and GJR Models

collapse all

Initial coefficient estimates past leverage terms, specified as the comma-separated pair consisting of `'Leverage0'` and a numeric vector.

For EGARCH(P,Q) models, `Leverage0` contains the initial coefficient estimates associated with past standardized innovation terms that compose the leverage polynomial.

For GJR(P,Q) models, `Leverage0` contains the initial coefficient estimates associated with past, squared, negative innovations that compose the leverage polynomial.

The number of coefficients in `Leverage0` must equal the number of lags associated with nonzero coefficients in the leverage polynomial (`Leverage`), as specified in `LeverageLags`.

Data Types: `double`

### Notes

• `NaN`s in the presample or estimation data indicate missing data, and `estimate` removes them. The software merges the presample data (`E0` and `V0`) separately from the effective sample data (`y`), and then uses list-wise deletion to remove rows containing at least one `NaN`. Removing `NaN`s in the data reduces the sample size, and can also create irregular time series.

• `estimate` assumes that you synchronize the presample data such that the latest observations occur simultaneously.

• If you specify a value for `Display`, then it takes precedence over the specifications of the optimization options `Diagnostics` and `Display`. Otherwise, `estimate` honors all selections related to the display of optimization information in the optimization options.

• If you do not specify `E0` and `V0`, then `estimate` derives the necessary presample observations from the unconditional, or long-run, variance of the offset-adjusted response process.

• For all conditional variance models, `V0` is the sample average of the squared disturbances of the offset-adjusted response data `y`.

• For GARCH(P,Q) and GJR(P,Q) models, `E0` is the square root of the average squared value of the offset-adjusted response series `y`.

• For EGARCH(P,Q) models, `E0` is `0`.

These specifications minimize initial transient effects.

## Output Arguments

collapse all

Conditional variance model containing parameter estimates, returned as a `garch`, `egarch`, or `gjr` model object. `estimate` uses maximum likelihood to calculate all parameter estimates not constrained by `Mdl` (i.e., constrained parameters have known values).

`EstMdl` is a fully specified conditional variance model. To infer conditional variances for diagnostic checking, pass `EstMdl` to `infer`. To simulate or forecast conditional variances, pass `EstMdl` to `simulate` or `forecast`, respectively.

Variance-covariance matrix of maximum likelihood estimates of model parameters known to the optimizer, returned as a numeric matrix.

The rows and columns associated with any parameters estimated by maximum likelihood contain the covariances of estimation error. The standard errors of the parameter estimates are the square root of the entries along the main diagonal.

The rows and columns associated with any parameters that are held fixed as equality constraints contain `0`s.

`estimate` uses the outer product of gradients (OPG) method to perform covariance matrix estimation.

`estimate` orders the parameters in `EstParamCov` as follows:

• Constant

• Nonzero GARCH coefficients at positive lags

• Nonzero ARCH coefficients at positive lags

• For EGARCH and GJR models, nonzero leverage coefficients at positive lags

• Degrees of freedom (t innovation distribution only)

• Offset (models with nonzero offset only)

Data Types: `double`

Optimized loglikelihood objective function value, returned as a scalar.

Data Types: `double`

Summary information, returned as a structure.

FieldDescription
`exitflag`Optimization exit flag (see `fmincon` in Optimization Toolbox)
`options`Optimization options controller (see `optimoptions` and `fmincon` in Optimization Toolbox)
`X`Vector of final parameter estimates
`X0`Vector of initial parameter estimates

For example, you can display the vector of final estimates by typing `info.X` in the Command Window.

Data Types: `struct`

## References

[1] Bollerslev, T. “Generalized Autoregressive Conditional Heteroskedasticity.” Journal of Econometrics. Vol. 31, 1986, pp. 307–327.

[2] Bollerslev, T. “A Conditionally Heteroskedastic Time Series Model for Speculative Prices and Rates of Return.” The Review of Economics and Statistics. Vol. 69, 1987, pp. 542–547.

[3] Box, G. E. P., G. M. Jenkins, and G. C. Reinsel. Time Series Analysis: Forecasting and Control. 3rd ed. Englewood Cliffs, NJ: Prentice Hall, 1994.

[4] Enders, W. Applied Econometric Time Series. Hoboken, NJ: John Wiley & Sons, 1995.

[5] Engle, R. F. “Autoregressive Conditional Heteroskedasticity with Estimates of the Variance of United Kingdom Inflation.” Econometrica. Vol. 50, 1982, pp. 987–1007.

[6] Glosten, L. R., R. Jagannathan, and D. E. Runkle. “On the Relation between the Expected Value and the Volatility of the Nominal Excess Return on Stocks.” The Journal of Finance. Vol. 48, No. 5, 1993, pp. 1779–1801.

[7] Greene, W. H. Econometric Analysis. 3rd ed. Upper Saddle River, NJ: Prentice Hall, 1997.

[8] Hamilton, J. D. Time Series Analysis. Princeton, NJ: Princeton University Press, 1994.