Computational Problems
First Iteration Overflows
Analyzing a covariance matrix including high variances in the diagonal
and using bad initial estimates for the parameters can easily lead
to arithmetic overflows in the first iterations of the minimization
algorithm. The line-search algorithms that work with
cubic extrapolation are especially sensitive to arithmetic overflows.
If this
occurs with quasi-Newton or conjugate gradient minimization, you
can specify the INSTEP= option to reduce the length
of the first step.
If an arithmetic overflow occurs in the first iteration of the
Levenberg-Marquardt algorithm, you can specify the INSTEP=
option to reduce the trust region radius of the first iteration.
You also can change the minimization technique or the line-search
method. If none of these help, you should consider
- scaling the covariance matrix
- providing better initial values
- changing the model
No Convergence of Minimization Process
If convergence does not occur during the minimization process, perform
the following tasks:
- If there are negative variance estimates
in the diagonal locations of the central model matrices, you can
- -
- specify the BOUNDS statement to
obtain nonnegative variance estimates
- -
- specify the HEYWOOD option,
if the FACTOR model statement is specified
- Change the estimation method to obtain
a better set of initial estimates. For example, if you use
METHOD=ML, you can
- -
- change to METHOD=LSML
- -
- run some iterations with METHOD=DWLS or METHOD=GLS, write the
results in an OUTRAM= data set, and use
the results as initial values specified by an INRAM=
data set in a second run with METHOD=ML
- Change the optimization technique. For example,
if you use the default TECH=LEVMAR, you can
- -
- change to TECH=QUANEW or to TECH=NEWRAP
- -
- run some iterations with TECH=CONGRA,
write the results in an OUTRAM= data set, and
use the results as initial values specified by an INRAM= data
set in a second run with a different TECH= technique
- Change or modify the update technique or
the line-search algorithm, or both, when using TECH=QUANEW
or TECH=CONGRA.
For example, if you use the default update formula and the
default line-search algorithm, you can
- -
- change the update formula with the UPDATE= option
- -
- change the line-search algorithm with the LIS= option
- -
- specify a more precise line search with the
LSPRECISION= option, if you use LIS=2 or LIS=3
- You can allow more iterations and function calls by
using the MAXIT= and MAXFU= options.
- Change the initial values.
For many categories of model specifications done by the
LINEQS, RAM, or FACTOR model, PROC CALIS computes
an appropriate set of initial values automatically. However, for some of the
model specifications (for example, structural equations with
latent variables on the left-hand side and manifest variables
on the right-hand side), PROC CALIS can generate very obscure
initial values. In these cases,
you have to set the initial values yourself.
- -
- Increase the initial values of the parameters located at
the diagonal of central matrices
- manually, by setting the values in the model specification
- automatically, by using the DEMPHAS= option
- -
- Use a slightly different, but more stable, model to obtain
preliminary estimates.
- -
- Use additional information to specify initial values,
for example, by using other SAS software
like the FACTOR,
REG, SYSLIN, and MODEL
(SYSNLIN) procedures for the modified,
unrestricted model case.
- Change the optimization technique. For example,
if you use the default TECH=LEVMAR, you can
- -
- change to TECH=QUANEW or to TECH=NEWRAP
- -
- run some iterations with TECH=CONGRA,
write the results in an OUTRAM= data set, and
use the results as initial values specified by an INRAM= data
set in a second run with a different TECH= technique
- Change or modify the update technique or
the line-search algorithm, or both, when using TECH=QUANEW
or TECH=CONGRA.
For example, if you use the default update formula and the
default line-search algorithm, you can
- -
- change the update formula with the UPDATE= option
- -
- change the line-search algorithm with the LIS= option
- -
- specify a more precise line search with the
LSPRECISION= option, if you use LIS=2 or LIS=3
- Temporarily change the estimation method to obtain
a better set of initial estimates. For example, if you use
METHOD=ML, you can
- -
- change to METHOD=LSML
- -
- run some iterations with METHOD=DWLS or GLS, write the
results in an OUTRAM= data set, and use
the results as initial values specified by an INRAM=
data set in a second run with METHOD=ML
- You can allow more iterations and function calls by
using the MAXIT= and MAXFU= options.
Unidentified Model
The parameter vector x in the covariance structure model
-
C = C(x)
is said to be identified in a parameter space G, if

implies
.The parameter estimates that result from an unidentified model
can be very far from the parameter estimates of a very similar but
identified model. They are usually machine dependent. Don't use
parameter estimates of an unidentified model as initial values for
another run of PROC CALIS.
Singular Predicted Model Matrix
You can easily specify models with singular predicted
model matrices, for example, by fixing
diagonal elements of central matrices to 0. In such cases,
you cannot compute maximum likelihood
estimates (the ML function value F is not defined). Since
singular predicted model matrices can also occur temporarily
in the minimization process, PROC CALIS tries in such cases
to change the parameter estimates so that the predicted model
matrix becomes positive definite. In such cases, the following
message is displayed:
NOTE: Parameter set changed.
This process does not always work well, especially if there
are fixed instead of variable diagonal elements
in the central model matrices. A famous example where you cannot
compute ML estimates is a component analysis with fewer components
than given manifest variables. See the section "FACTOR Model Statement"
for more details. If you continue to get a singular
predicted model matrix after changing initial values and optimization
techniques, then your model is perhaps specified so that ML estimates
cannot be computed.
Saving Computing Time
For large models, the most computing time is needed to compute the
modification indices. If you don't really need the Lagrange
multipliers or multiple Wald test indices (the univariate
Wald test indices are the same as the t values), using the
NOMOD option can save a considerable amount of computing time.
Central Matrices with Negative Eigenvalues
A covariance matrix cannot have negative eigenvalues, since
a negative eigenvalue means that some linear combination of
the variables has negative variance. PROC CALIS displays a warning
if a central model matrix has negative eigenvalues but does not
actually compute the eigenvalues. Sometimes this warning can
be triggered by 0 or very small positive eigenvalues that
appear negative because of numerical error. If you want to be
sure that the central model matrix you are fitting can be
considered to be a variance-covariance matrix, you can
use the SAS/IML command VAL=EIGVAL(U) to compute the vector
VAL of eigenvalues of matrix U.
Negative R2 Values
The estimated squared multiple correlations R2 of the endogenous
variables are computed using the estimated error variances

If the model is a poor fit, it is possible that
, which
results in R2i < 0.
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.