Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
The CALIS Procedure

MATRIX Statement

MATRIX matrix-name < 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, n \ge 0, 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 left-hand-side 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 (X1-X10) or the asterisk notation (5 *X means five occurrences of the parameter X). If a sublist of n1 names inside a list is followed by a list of n_2 \le n_1 real values inside parentheses, the last n2 parameters in the name sublist are given the initial values mentioned inside the parenthesis. For example, the following list

   0. 1. A2-A5 (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:



For example, to specify a confirmatory second-order factor analysis model
S = F1 F2 P2 F2' F1' + F1 U22 F1' + U12
with m1=3 first-order factors, m2=2 second-order factors, and n=9 variables and the following matrix pattern,
F_1 = \pmatrix{X_1&0&0\cr
 X_2&0&0\cr
 X_3&0&0\cr
 0&X_4&0\cr
 0&X_5&0\cr
 0&X_6...
 ...cr
 &&&&U_5&&&&\cr
 &&&&&U_6&&&\cr
 &&&&&&U_7&&\cr
 &&&&&&&U_8&\cr
 &&&&&&&&U_9}
F_2 = \pmatrix{Y_1&0\cr
 Y_1&Y_2\cr
 0&Y_2} , 
 P_2 = \pmatrix{P&0\cr
 0&P} , 
 U_2 = \pmatrix{V_1&&\cr
 &V_2&\cr
 &&V_3}
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]= x1-x3,
            [ ,2]= 3 * 0 x4-x6,
            [ ,3]= 6 * 0 x7-x9;
   matrix u1
            [1,1]=u1-u9;

   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 F2 (parameter names Y1 and Y2) and the two factor correlations in the diagonal of matrix P2 (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.

Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Top
Top

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.