MATRIX Statement
 MATRIX matrixname < location > = list < , location = list ... > ;
You can specify one or more MATRIX statements with a COSAN or
FACTOR statement. A MATRIX statement
specifies which elements of the matrix are constant and
which are parameters. You can also assign values to
the constant elements and initial values for the parameters.
The input notation resembles that used in the COSAN program of
R. McDonald and C. Fraser (personal communication),
except that in PROC CALIS, parameters are distinguished
from constants by giving parameters names instead of by using
positive and negative integers.
A MATRIX statement cannot be used for an IDE
or ZID matrix. For all other types of matrices, each element is assumed
to be a constant of 0 unless a MATRIX statement
specifies otherwise. Hence, there must be at least one MATRIX
statement for each matrix mentioned in the COSAN statement except
for IDE and ZID matrices.
There can be more than one MATRIX statement
for a given matrix. If the same matrix element is given different
definitions, later definitions override earlier definitions.
At the start, all elements of each model matrix,
except IDE or ZID matrices, are set equal to 0.
Description of location:
There are several ways to specify the starting location
and continuation direction of a list with
n+1, , elements within the parameter matrix.
 [ i , j ]
 The list elements correspond to the diagonally
continued matrix elements [i,j] , [i+1,j+1] , ... , [i+n,j+n].
The number of elements is defined by the length of the
list and eventually terminated by the matrix boundaries.
If the list contains just one element (constant or variable),
then it is assigned to the matrix element [i,j].
 [ i , ]
 The list elements correspond to the horizontally
continued matrix elements [i,j], [i,j+1] , ... , [i,j+n], where
the starting column j is the diagonal position for a DIA, ZDI,
or UPP matrix and is the first column for all other matrix types.
For a SYM matrix, the list elements refer only to the matrix elements
in the lower triangle. For a DIA or ZDI matrix, only one list element
is accepted.
 [ , j ]
 The list elements correspond to the vertically
continued matrix elements [i,j], [i+1,j] , ... , [i+n,j], where
the starting row i is equal to the diagonal position for
a DIA, ZDI, SYM, or LOW matrix and is the first row for each other
matrix type. For a SYM matrix, the list elements refer only to the
matrix elements in the lower triangle. For a DIA or ZDI matrix, only
one list element is accepted.
 [ , ]
 unspecified location: The list
is allocated to all valid matrix positions (except for a ZDI matrix)
starting at the element [1,1] and continuing rowwise.
The only valid matrix positions for a DIA or ZDI matrix are
the diagonal elements; for an UPP or LOW matrix,
the valid positions are the elements above or below the diagonal;
and for a symmetric matrix, the valid positions are the elements in the
lower triangle since the other triangle receives
the symmetric allocation automatically.
This location definition differs from the
definitions with specified pattern locations in one important
respect: if the number of elements in the list is
smaller than the number of valid matrix elements, the list
is repeated in the allocation process until all
valid matrix elements are filled.
Omitting the lefthandside term is equivalent to using [ , ]
for an unspecified location.
Description of list:
The list contains numeric values or parameter names,
or both, that are assigned to a list of matrix
elements starting at a specified position and proceeding in a
specified direction. A real number r in the list defines the
corresponding matrix element as a constant element with this value.
The notation n * r generates n values of r in the list.
A name in the list defines the corresponding matrix
element as a parameter to be estimated. You can use
numbered name lists (X1X10) or the asterisk notation
(5 *X means five occurrences of the parameter X).
If a sublist of n_{1} names inside a list is followed
by a list of real values inside parentheses,
the last n_{2} parameters in the name sublist are given the
initial values mentioned inside the parenthesis.
For example, the following list
0. 1. A2A5 (1.4 1.9 2.5) 5.
specifies that the first two matrix elements (specified by the
location to the left of the equal sign) are constants
with values 0 and 1. The next element is parameter A2 with no
specified initial value. The next three matrix elements are the
variable parameters A3, A4, and A5 with initial values 1.4, 1.9,
and 2.5, respectively. The next matrix element is specified by the
seventh list element to be the constant 5.
If your model contains many unconstrained parameters and it is
too cumbersome to find different parameter names, you can specify
all those parameters by the same prefix name. A prefix is a short
name followed by a colon. The CALIS procedure generates a parameter
name by appending an integer suffix to this prefix name. The prefix
name should have no more than five or six characters so that the
generated parameter name is not longer than eight characters.
For example, if the prefix A (the parameter A1) is already used
once in a list, the previous example would be
identical to
0. 1. 4 * A: (1.4 1.9 2.5) 5.
To avoid unintentional equality constraints, the prefix names should
not coincide with explicitly defined parameter names.
If you do not assign initial
values to the
parameters (listed in parentheses following a name sublist within
the pattern list), PROC CALIS assigns initial values as follows:
 If the PROC CALIS statement contains a
START=r option, each uninitialized
parameter is given the initial value r.
The uninitialized parameters in the diagonals of the
central model matrices are given the initial
value 10r, 100r, or r multiplied by the
value specified in the DEMPHAS= option.
 If the PROC CALIS statement contains a RANDOM=i
option, each uninitialized parameter
is given a random initial value . The uninitialized parameters in the diagonals of the
central model matrices are given the random values multiplied
by 10, 100, or the value specified in the DEMPHAS= option.
 Otherwise, the initial value is set
corresponding to START=0.5.
For example, to specify a confirmatory
secondorder factor analysis model

S = F_{1} F_{2} P_{2} F_{2}' F_{1}' + F_{1} U_{2}^{2} F_{1}' + U_{1}^{2}
with m_{1}=3 firstorder factors, m_{2}=2 secondorder factors,
and n=9 variables and the following matrix pattern,
you can specify the following COSAN and MATRIX statements:
cosan f1(3) * f2(2) * p2(2,dia) + f1(3) * u2(3,dia) * i1(3,ide)
+ u1(9,dia) * i2(9,ide);
matrix f1
[ ,1]= x1x3,
[ ,2]= 3 * 0 x4x6,
[ ,3]= 6 * 0 x7x9;
matrix u1
[1,1]=u1u9;
matrix f2
[ ,1]= 2 * y1,
[ ,2]= 0. 2 * y2;
matrix u2 = 3 * v:;
matrix p2 = 2 * p;
run;
The matrix pattern includes several equality constraints.
Two loadings in the first and second factor of F_{2} (parameter
names Y1 and Y2) and the two factor correlations in the diagonal
of matrix P_{2} (parameter name P) are constrained to be equal.
There are many other ways to specify the same model.
See Figure 19.2 for the path diagram of this model.
The MATRIX statment can also be used with the FACTOR model statement.
See "Using the FACTOR and MATRIX Statements" for the usage.
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.