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 linesearch algorithms that work with
cubic extrapolation are especially sensitive to arithmetic overflows.
If this
occurs with quasiNewton 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
LevenbergMarquardt 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 linesearch
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 linesearch algorithm, or both, when using TECH=QUANEW
or TECH=CONGRA.
For example, if you use the default update formula and the
default linesearch algorithm, you can
 
 change the update formula with the UPDATE= option
 
 change the linesearch 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 lefthand side and manifest variables
on the righthand 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 linesearch algorithm, or both, when using TECH=QUANEW
or TECH=CONGRA.
For example, if you use the default update formula and the
default linesearch algorithm, you can
 
 change the update formula with the UPDATE= option
 
 change the linesearch 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 variancecovariance matrix, you can
use the SAS/IML command VAL=EIGVAL(U) to compute the vector
VAL of eigenvalues of matrix U.
Negative R^{2} Values
The estimated squared multiple correlations R^{2} 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 R^{2}_{i} < 0.
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.