estimate
maximizes the loglikelihood function
using fmincon
from Optimization Toolbox™. fmincon
has
many optimization options, such as choice of optimization algorithm
and constraint violation tolerance. Choose optimization options using optimoptions
.
estimate
uses the fmincon
optimization
options by default, with these exceptions. For details, see fmincon
and optimoptions
in Optimization Toolbox.
optimoptions Properties | Description | estimate Settings |
---|---|---|
Algorithm | Algorithm for minimizing the negative loglikelihood function | 'sqp' |
Display | Level of display for optimization progress | 'off' |
Diagnostics | Display for diagnostic information about the function to be minimized | 'off' |
ConstraintTolerance | Termination tolerance on constraint violations | 1e-7 |
If you want to use optimization options that differ from the
default, then set your own using optimoptions
.
For example, suppose that you want estimate
to
display optimization diagnostics. The best practice is to set the
name-value pair argument 'Display','diagnostics'
in estimate
.
Alternatively, you can direct the optimizer to display optimization
diagnostics.
Define an AR(1) model Mdl
and simulate data from it.
Mdl = arima('AR',0.5,'Constant',0,'Variance',1); rng(1); % For reproducibility y = simulate(Mdl,25);
By default, fmincon
does not display the optimization diagnostics. Use optimoptions
to set it to display the optimization diagnostics, and set the other fmincon
properties to the default settings of estimate
listed in the previous table.
options = optimoptions(@fmincon,'Diagnostics','on',... 'Algorithm','sqp','Display','off','ConstraintTolerance',1e-7)
options = fmincon options: Options used by current Algorithm ('sqp'): (Other available algorithms: 'active-set', 'interior-point', 'sqp-legacy', 'trust-region-reflective') Set properties: Algorithm: 'sqp' ConstraintTolerance: 1.0000e-07 Display: 'off' Default properties: CheckGradients: 0 FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' MaxFunctionEvaluations: '100*numberOfVariables' MaxIterations: 400 ObjectiveLimit: -1.0000e+20 OptimalityTolerance: 1.0000e-06 OutputFcn: [] PlotFcn: [] ScaleProblem: 0 SpecifyConstraintGradient: 0 SpecifyObjectiveGradient: 0 StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0 Show options not used by current Algorithm ('sqp')
% @fmincon is the function handle for fmincon
The options that you set appear under the Set by user:
heading. The properties under the Default:
heading are other options that you can set.
Fit Mdl
to y
using the new optimization options.
Mdl = arima(1,0,0);
EstMdl = estimate(Mdl,y,'Options',options);
____________________________________________________________ Diagnostic Information Number of variables: 3 Functions Objective: @(X)nLogLike(X,YData,XData,E,V,Mdl,AR.Lags,MA.Lags,maxPQ,T,isDistributionT,options,userSpecifiedY0,userSpecifiedE0,userSpecifiedV0,trapValue) Gradient: finite-differencing Hessian: finite-differencing (or Quasi-Newton) Nonlinear constraints: @(x)internal.econ.arimaNonLinearConstraints(x,LagsAR,LagsSAR,LagsMA,LagsSMA,tolerance) Nonlinear constraints gradient: finite-differencing Constraints Number of nonlinear inequality constraints: 1 Number of nonlinear equality constraints: 0 Number of linear inequality constraints: 0 Number of linear equality constraints: 0 Number of lower bound constraints: 3 Number of upper bound constraints: 3 Algorithm selected sqp ____________________________________________________________ End diagnostic information ARIMA(1,0,0) Model (Gaussian Distribution): Value StandardError TStatistic PValue _________ _____________ __________ _________ Constant -0.064857 0.23456 -0.2765 0.78217 AR{1} 0.46386 0.15781 2.9393 0.0032895 Variance 1.2308 0.47275 2.6035 0.0092266
Note
estimate
numerically maximizes
the loglikelihood function, potentially using equality, inequality,
and lower and upper bound constraints. If you set Algorithm
to
anything other than sqp
, make sure the algorithm
supports similar constraints, such as interior-point
.
For example, trust-region-reflective
does not support
inequality constraints.
estimate
sets a constraint level
of ConstraintTolerance
so constraints are not violated.
An estimate with an active constraint has unreliable standard errors
because variance-covariance estimation assumes that the likelihood
function is locally quadratic around the maximum likelihood estimate.
The software enforces these constraints while estimating an ARIMA model:
Stability of nonseasonal and seasonal AR operator polynomials
Invertibility of nonseasonal and seasonal MA operator polynomials
Innovation variance strictly greater than zero
Degrees of freedom strictly greater than two for a t innovation distribution
arima
| estimate
| fmincon
| optimoptions