Previous Page | Next Page

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 McDonald and 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 , , 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 in the list defines the corresponding matrix element as a constant element with this value. The notation generates values of 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 names inside a list is followed by a list of real values inside parentheses, the last parameters in the name sublist are given the initial values mentioned inside the parentheses. For example, the 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:

  • If the PROC CALIS statement contains a START= option, each uninitialized parameter is given the initial value . The uninitialized parameters in the diagonals of the central model matrices are given the initial value , , or multiplied by the value specified in the DEMPHAS= option.

  • If the PROC CALIS statement contains a RANDOM= 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 , , or the value specified in the DEMPHAS= option.

  • Otherwise, the initial value is set corresponding to START=0.5.

Specifying a Second-Order Factor-Analysis Model

For example, to specify a confirmatory second-order factor analysis model

     

with first-order factors, second-order factors, and 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]= 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 (parameter names Y1 and Y2) and the two factor correlations in the diagonal of matrix (parameter name P) are constrained to be equal. There are many other ways to specify the same model. See Figure 25.3 for the path diagram of this model.

The MATRIX statement can also be used with the FACTOR model statement. See Using the FACTOR and MATRIX Statements for the usage.


Previous Page | Next Page | Top of Page