The CALIS Procedure

PATHDIAGRAM Statement

  • PATHDIAGRAM <options>;

You can use the PATHDIAGRAM statement to select particular path diagrams for output, to specify and modify the layout algorithm, to select variables and paths in path diagrams, to control the formatting of parameter labels, and to fine-tune many graphical and nongraphical features of path diagrams. You can use multiple PATHDIAGRAM statements to control different path diagrams or to produce path diagrams from the same model that have different styles and graphical features.

If you specify a PATHDIAGRAM statement without any options, this has the same effect as specifying the PLOTS= PATHDIAGRAM option in the PROC CALIS statement. Both produce a path diagram for the unstandardized solution if you do not specify the METHOD= NONE option in the PROC CALIS statement. By default, the path diagram for the unstandardized solution shows the paths, variables, unstandardized estimates and their significance, and fit summary table. For more information about these default settings, see the section Default Path Diagram Settings. If you specify METHOD=NONE in the PROC CALIS statement, PROC CALIS produces a path diagram for the initial specifications, which shows the paths, the variables, and the input fixed values and parameter names. For introductory examples of creating and editing path diagrams, see Yung (2014).

The options of the PATHDIAGRAM statement can be classified into five categories. The following five tables summarize these options. An alphabetical listing of these options that includes more details follows the tables.

Options for Selecting Different Types of Path Diagrams

You can use the options in the following table to request various types of path diagrams. If you use more than one of these options, PROC CALIS outputs a combination of the specified types of path diagrams.

Option

Description

DIAGRAM=

Specifies the solution types for the output path diagrams

MODEL=

Specifies the models for the output path diagrams

STRUCTURAL

Requests the path diagrams for the structural components of models

Options for Controlling the Layout of Paths and Variables

You can use the following options to specify the path diagram layout algorithm, to define paths and variables that you want to include in or exclude from path diagrams, and to provide useful information that might improve the graphical presentation of the output path diagrams.

Option

Description

ARRANGE=

Specifies the graphical algorithm for laying out variables

DESTROYER=

Specifies paths that should not be considered in laying out variables

EMPHSTRUCT

Emphasizes the structural components in path diagrams

ERRORSIZE=

Specifies the size of error variables relative to observed variables

FACTORSIZE=

Specifies the size of latent factors relative to observed variables

MEANPARM=

Specifies mean parameters to be displayed as either paths or labels

OMITPATH=

Omits specified paths from the output path diagram

STRUCTADD=

Adds observed variables to the definition of the structural component

USEERROR

Requests the use of explicit error variables

VARPARM=

Specifies variance parameters to be displayed as either paths or labels

Options for Selecting the Parameters to Display in the Output Path Diagram

You can use the following options to select the parameters to display in output path diagrams.

Option

Description

EXOGCOV

Enables the display of covariances between exogenous non-error variables

NOCOV

Disables the display of covariance parameters

NOERRCOV

Disables the display of covariances between error variables

NOERRVAR

Disables the display of variances of error variables

NOEXOGCOV

Disables the display of covariances between exogenous non-error variables

NOEXOGVAR

Disables the display of variances between exogenous non-error variables

NOINITPARM

Disables the display of parameters in the path diagram for the initial specification

NOMEANS

Disables the display of means or intercepts of all variables

NOVARIANCE

Disables the display of variances of all variables

Options for Formatting the Parameters in the Output Path Diagram

You can use the following options to control the formats of the parameters that are displayed in path diagrams.

Option

Description

DECP=

Specifies number of the decimal places in the estimates

NOESTIM

Disables the display of numerical estimates

NOFLAG

Disables the display of flags for statistical significance

PARMNAMES

Enables the display of parameter names or labels

Miscellaneous Options for Controlling the Output Path Diagram

You can use the following options to control the displays of the title, the fit table, and the labels of the variables.

Option

Description

DECPFIT=

Specifies the number of decimal places in the fit statistics

DIAGRAMLABEL=

Specifies the label of the diagram in the ODS

FITINDEX=

Selects fit information to display in the fit summary table

LABEL=

Specifies labels of the variables shown in the path diagram

NOFITTABLE

Suppresses the display of fit statistics

NOTITLE

Suppresses the display of the title

TITLE=

Specifies the title to display in the output path diagram

In order to customize your path diagram output effectively by using these options, it is useful to know the default settings of the graphical and nongraphical elements in the output path diagram. For information about these default settings and the corresponding overriding or modifying options, see the section Default Path Diagram Settings.

PATHDIAGRAM Statement Options

ARRANGE=name
ARRANGEMENT=name
METHOD=name

specifies the algorithm for laying out the variables in the path diagram. You can specify the following names:

AUTOMATIC

requests the "best" algorithm. PROC CALIS analyzes the interrelationships among variables (excluding error variables) in the model and selects the most appropriate algorithm from those that you can explicitly request by specifying the FLOW, GRIP, and GROUPEDFLOW options. PROC CALIS first checks whether the ideal conditions for the process-flow algorithm are met; if so, the process-flow algorithm is used. If not, PROC CALIS checks whether the ideal conditions for the grouped-flow algorithm are met; if so, the grouped-flow algorithm is used. Otherwise, the more general GRIP algorithm is used.

FLOW

requests the process-flow algorithm, which is most appropriate when all variables (not including the error variables) exhibit hierarchical functional relationships in the model. That is, all variables in the model can be ordered hierarchically such that functional relationships (or directional paths) can occur only between variables at adjacent levels (that is, no cross-level, within-level, or reciprocal functional relationships). For example, the process-flow algorithm is ideal for confirmatory factor models and higher-order factor models in their pure forms (no cross-level or within-level paths in the model).

GRIP

requests the GRIP (Graph dRawing with Intelligent Placement) algorithm. This algorithm is more general than the process-flow and grouped-flow algorithms. Hence, the GRIP algorithm should be used when the ideal conditions for the process-flow and grouped-flow algorithms are not met.

GROUPEDFLOW

requests the grouped-flow algorithm, which is most appropriate when all latent factors exhibit hierarchical functional relationships in the model. That is, all latent factors can be ordered hierarchically such that their functional relationships (or directional paths) occur only between factors at adjacent levels (no cross-level, within-level, or reciprocal functional relationships). The ideal conditions for the grouped-flow algorithm are the same as those for the process-flow algorithm, except that the grouped-flow algorithm considers only the latent factors that have an ideal process-flow pattern. Because each latent factor is usually clustered with a group of measured variables, this pattern can be described as an ideal "grouped" process-flow pattern (hence the name grouped-flow algorithm).

By default, ARRANGE=AUTOMATIC.

For more information and for illustrations of these methods, see the section The Process-Flow, Grouped-Flow, and GRIP Layout Algorithms.

DECP=i

sets the decimal places of the estimates that are displayed in the path diagram, where i is between 0 and 4. The default value is 2. The displayed estimates are at most seven digits long, including the decimal point for the nonzero value of i.

DECPFIT=i

sets the decimal places of the fit statistics or information that is shown in the fit summary table of the path diagram, where i is between 0 and 4. The default value is 2. The displayed numerical values are at most 10 digits long, including the decimal point for the nonzero value of i.

DESTROYER=[path <, path …>]  |  {path <, path …>}
DESTROYERPATH=[path <, path …>]  |  {path <, path …>}

specifies a list of paths that are considered to be "destroyer" paths to the layout algorithm that is used (or specified using the ARRANGE= option), where path represents var-list direction var-list2 and direction is the direction of the path, as indicated by one of the following: ===>, --->, ==>, -->, =>, ->, >, <===, <---, <==, <--, <=, <-, <, <==>, <-->, <=>, <->, or <>

For example:

pathdiagram destroyer=[x1 ===> x2, x2 <=== x5];
pathdiagram destroyer=[x1 x5 ===> x2];

Note that the two preceding statements specify the same set of destroyer paths: "x1 ===> x2" and "x5 ===> x2."

Destroyer paths are shown in the path diagram, but they are not used in determining the layout of variables. Destroyer paths are paths that violate the ideal conditions for a particular layout algorithm so that the placement of variables in the path diagram cannot take advantage of that algorithm (especially for the process-flow or grouped-flow algorithm). To counter the violations, PROC CALIS ignores the destroyer paths when laying out the variables. After determining the locations of all variables, PROC CALIS adds the destroyer paths back to the path diagram. If you can identify these destroyer paths and you have only a few of them (for example, fewer than five), specifying these destroyer paths in the DESTROYER= option can significantly improve the path diagram. However, if you have too many destroyer paths, this option might not be effective.

For more information and for illustrations, see the section Handling Destroyers in Path Diagrams.

Note: If a path in the model serves as the only directed path that connects to a particular variable, it is generally not advisable to apply the DESTROYER= option to that path. During the layout process, the DESTROYER= option disconnects this variable from the rest of the variables in the model, so the location of this disconnected variable in the path diagram is arbitrary. This might lead to undesirable graphical results when PROC CALIS adds the destroyer paths back to the path diagram.

DIAGRAM=name | [names] | {names}
SOLUTION=name | [names] | {names}

specifies the solution types for the path diagram output. You can specify the following names:

ALL

requests separate path diagrams for the initial, unstandardized, and standardized solutions.

INITIAL | INIT

requests a path diagram for the initial solution. This diagram displays the fixed values and the parameters that you specify for the model. However, it does not display generated parameter names or initial estimates. To produce a "bare-bones" path diagram that shows only the variables and their interrelationships, use the NOINITPARM option, which suppresses the display of fixed values and the parameters.

STANDARD | STAND

requests a path diagram for the standardized solution. This diagram displays the standardized parameter estimates and their significance in paths or as labels of variables. By default, it also displays the fit summary table.

UNSTANDARD | UNSTAND

requests a path diagram for the unstandardized solution. This diagram displays the unstandardized parameter estimates and their significance in paths or as labels of variables. By default, it also displays the fit summary table.

For example, to display only the path diagram for the standardized solutions, you can use the following statement:

pathdiagram diagram=standard;

To display the path diagrams for the initial and unstandardized solution, you can use the following statement:

pathdiagram diagram=[initial unstandard];
DIAGRAMLABEL=name
DLABEL=name

specifies the label of the path diagram. You can use any valid SAS names or quoted strings up to 256 characters for name. However, only up to 40 characters of the label are used by ODS. If you do not specify this option, PROC CALIS uses the name provided in the TITLE= option. If you specify neither the DIAGRAMLABEL= nor TITLE= option, PROC CALIS generates a label for the path diagram. The generated label reflects the model number (if provided in the MODEL statement), the solution type (initial, unstandardized, or standardized), and whether the structural model is being shown. For example:

pathdiagram diagramlabel=MySpecialModel;
pathdiagram diagramlabel="The best Model";

Note that if you specify multiple path diagrams in the same PATHDIAGRAM statement, PROC CALIS applies the same label to all requested path diagrams. If unique labels are preferred, you can use separate PATHDIAGRAM statements to specify labels for different path diagrams.

EMPHSTRUCT<=i>

requests that the structural component of the model be emphasized in the path diagram, where i is any number between 0.2 and 5. The variables in the structural component are called structural variables. Usually, only latent factors are considered as structural variables. For this option, the structural variables have relatively larger sizes than other variables (approximately four times as large as the observed variables in each dimension). You can control the relative size by providing a suitable value for i, which is 4 by default. The corresponding path diagram displays and labels only the structural variables. Nonstructural variables are displayed but not labeled. In addition, the diagram displays and labels paths among structural variables. The diagram displays but does not label paths among structural and nonstructural variables. Finally, the diagram does not display or label paths among nonstructural variables.

If you consider some observed variables as structural variables in your model, use the STRUCTADD= option to include these observed variables in the structural component. This option is not applicable to the path diagram for the structural model that you request by specifying the STRUCTURAL option, which displays only the structural component of the model. In contrast, the EMPHSTRUCT option produces the complete model but emphasizes the structural component.

For more information and for illustrations, see the section Showing or Emphasizing the Structural Components.

ERRORSIZE=size
ERRSIZE=size

specifies the size of error variables relative to that of observed variables, where size is between 0.2 and 5. The default value is 0.5, meaning that the size of error variables is about half that of observed variables.

EXOGCOV
EXOGCOVARIANCE

requests that the path diagram show the double-headed paths that represent the covariances among exogenous non-error variables. By default, these double-headed paths are displayed only for exploratory or confirmatory factor models, which you specify by using the FACTOR statement for other types of models.

FACTORSIZE=size
FACTSIZE=size

specifies the size of latent factors relative to that of observed variables, where size is between 0.2 and 5. The default value is 1.5, meaning that the size ratio of factors to observed variables is about 3 to 2.

FITINDEX=[names] | {names}

defines fit statistics or information in names to display in the fit summary table, which is shown along with the path diagrams for unstandardized and standardized solutions. PROC CALIS uses the order of the fit statistics or information specified in the FITINDEX= option to display the information in the fit summary table.

For example:

pathdiagram fitindex=[chisq df probchi srmr rmsea];
pathdiagram fitindex=all;
pathdiagram fitindex=[default aic sbc caic];

For the default list of fit statistics and information, see the FITINDEX=DEFAULT option.

You can use the following names to refer to all or individual fit statistics or information available in the fit summary table.

ALL

displays all available fit statistics or information. If you specify the ALL option along with other specific options for individual fit statistics or information, PROC CALIS displays the specific fit statistics or information in the fit summary table first, followed by the remaining available fit statistics or information.

DEFAULT

displays a default set of fit statistics or information, which is the same as specifying the following in the FITINDEX= option: AGFI, CFI, CHISQ, DF, LL_RMSEA, LOGLIKE, PROBCHI, PROBCLFIT, RMSEA, SRMR, and UL_RMSEA.

If you specify the DEFAULT option along with other specific options for individual fit statistics or information, PROC CALIS displays the specific fit statistics or information in the fit summary table first, followed by the remaining available default fit statistics or information.

AGFI

displays the adjusted GFI.

AIC

displays the Akaike information criterion.

CAIC

displays Bozdogan’s corrected AIC.

CFI | BENTLERCFI

displays Bentler’s comparative fit index.

CHISQ

displays the chi-square statistic for model fit.

CN | CRITICAL_N

displays Hoelter’s critical N.

DF

displays the degrees of freedom for the chi-square test for model fit.

ECVI

displays the expected cross-validation index.

GFI

displays the goodness-of-fit index by Jöreskog and Sörbom.

LL_ECVI | ECVI_LL

displays the lower confidence limit for RMSEA.

LL_RMSEA | RMSEA_LL

displays the lower confidence limit for RMSEA.

LOGLIKE

displays the fitted model –2 log-likelihood function value for METHOD=FIML only.

NIOBS

displays the number of incomplete observations for METHOD=FIML.

NOBS

displays the number of observations that are used in the analysis.

NPARMS | NPARM

displays the number of independent parameters.

PGFI

displays the parsimonious GFI.

PROBCHI

displays the p-value of the chi-square statistic for model fit.

PROBCLFIT

displays the probability of close fit.

RMR

displays the root mean square residual.

RMSEA

displays the root mean square error of approximation.

SBC

displays the Schwarz Bayesian criterion.

SRMR

displays the standardized root mean square residual.

UL_ECVI | ECVI_UL

displays the upper confidence limit for ECVI.

UL_RMSEA | RMSEA_UL

displays the upper confidence limit for RMSEA.

LABEL= [varlabel <, varlabel …>]  |  {varlabel <, varlabel …>}

specifies the labels of variables to be displayed in path diagrams, where each varlabel is in the form

variable = label

You can use any valid SAS names or quoted strings up to 256 characters for labels. The labels are used to label the corresponding variables in output path diagrams. If you do not specify labels, the original variable names are used as labels.

For example, instead of using x1 and y1 to label the variables in the path diagram, the following statement specifies more meaningful labels:

pathdiagram label=[x1="Start Use" y1="Spending"];

Note that PROC CALIS does not currently use the variable labels from the LABEL statement for the path diagram.

MEANPARM=PATH | LABEL
MEAN=PATH | LABEL

specifies whether mean parameters are displayed as paths (PATH) or as labels that are attached to variables (LABEL). The default MEANPARM= value is LABEL when you model mean structures. This option does not apply when you model only covariance structures.

MODEL=[int-list]  |  {int-list}
MODELS=[int-list]  |  {int-list}

requests path diagrams for a list of models, which are specified by their associated model numbers. By default, the output shows path diagrams of all models in the analysis. This option is useful if you want to restrict the path diagram output to a particular set of models. For example:

pathdiagram model=[1 to 3];
pathdiagram model=[2 4 5];

The first PATHDIAGRAM statement requests path diagrams for models 1, 2, and 3. The second PATHDIAGRAM statement requests path diagrams for models 2, 4, and 5.

NOCOV
NOCOVARIANCE

suppresses the display of covariances between variables.

NOERRCOV
NOERRORCOVARIANCE

suppresses the default display of covariances among error variables.

NOERRVAR
NOERRORVARIANCE

suppresses the default display of error variances, which are represented as either double-headed paths or labels that are attached to error variables.

NOESTIM
NOEST

suppresses the default display of all numerical estimates (including fixed estimates) in path diagrams for unstandardized and standardized solutions.

NOEXOGCOV
NOEXOGCOVARIANCE

suppresses the display of covariances between exogenous non-error variables. By default, only the exploratory or confirmatory factor models, which you specify using the FACTOR statement, show the covariances between exogenous non-error variables. For other models, NOEXOGCOV is the default.

NOEXOGVARIANCE
NOEXOGVARIANCE

suppresses the default display of variances of exogenous non-error variables. This applies to variance parameters that are represented as either double-headed paths or labels that are attached to the exogenous variables.

NOFITTABLE
NOFIT

suppresses the default display of fit summary tables in path diagrams for standardized or unstandardized solutions.

NOFLAG

suppresses the default flagging of significant estimates in path diagrams. By default, estimates that are significant at the 0.05 $\alpha $-level are flagged with "*", and estimates that are also significant at the 0.01 $\alpha $-level are flagged with "**". Fixed estimates are marked with "(fixed)".

NOINITPARM

suppresses the default display of user-specified parameter names and fixed values in path diagrams for initial specifications, which you request by specifying the DIAGRAM=INITIAL option in the PATHDIAGRAM statement. This option is not applicable to path diagrams for unstandardized or standardized solutions.

NOMEAN

suppresses the default display of the mean or intercept parameters and their estimates in models that contain mean structures. These mean parameters and estimates can be in the form of either paths or labels that are attached to variables.

NOTITLE

suppresses the display of the default title. You can use the TITLE= option to provide your own title.

NOVARIANCE

suppresses the default display of all variances. This applies to variance parameters that are represented as either double-headed paths or labels that are attached to nodes.

OMITPATHS=[path <, path …>]  |  {path <, path …>}
OMIT=[path <, path …>]  |  {path <, path …>}

specifies a list of paths to be omitted from the output path diagram, where path represents var-list direction var-list2 and direction is the direction of the path, as indicated by one of the following: ===>, --->, ==>, -->, =>, ->, >, <===, <---, <==, <--, <=, <-, <, <==>, <-->, <=>, <->, or <>

For example:

pathdiagram omitpath=[y1 ===> y4, y4 <=== y3];
pathdiagram omitpath=[y3 y1 ===> y4];

Note that the two preceding statements specify the same set of paths that are omitted: "y1 ===> y4" and "y3 ===> y4."

The omitted paths are not shown in the path diagram, nor are they used in determining the layout of the variables. The OMITPATHS= option is useful when you want to see how a particular set of paths affects the display of a path diagram. If omitting a certain set of paths improves the display, the omitted paths can be considered as destroyer paths. You might then specify these paths in the DESTROYER= option to get an improved diagram.

Note: If a path in the model serves as the only directed path that connects to a particular variable, it is generally not advisable to apply the OMITPATHS= option to that path. The OMITPATHS= option disconnects this variable from the rest of the variables in the model, so the location of the disconnected variable in the path diagram is arbitrary. This might lead to undesirable graphical results.

PARMNAMES
PARM

requests the display of parameter names or labels. By default, path diagrams for unstandardized or standardized solutions do not show any parameter names or labels, whereas path diagrams for initial specifications show only user-specified parameter names or labels (but not the generated parameter names or labels) and fixed values.

STRUCTADD=[variables] | {variables}

specifies a list of observed variables that should be added to the structural component of a model. Traditionally, the structural component of a complete model includes only the latent factors and their interrelationships. However, this definition might be too restrictive in many applications. For the purpose of showing structural components in path diagrams, you can use the STRUCTADD= option to add observed variables to the definition of the structural component. The resulting path diagram for the structural component contains all latent factors, the additional observed variables, and their functional relationships.

For example, the following statement adds the observed variables x1 and x2 to the path diagram for displaying the structural component:

pathdiagram struct structadd=[x1 x2];

The following statement adds the observed variables x3 and x5 to the structural component for displaying the path diagram that emphasizes the structural component:

pathdiagram emphstruct structadd=[x3 x5];

For more information and for illustrations, see the section Expanding the Definition of the Structural Variables.

STRUCTURAL <(ONLY)>
STRUCT <(ONLY)>

requests the path diagram for the so-called structural component of the model, or simply the component model. By default, the output shows this path diagram for the entire model, not just the structural component.

Traditionally, all structural equation models are considered to have two main components. One component is the so-called structural model, which involves latent factors and their functional relationships only. The other is the so-called measurement model, which involves observed variables and latent variables and the functional relationships that connect the observed variables to the latent factors. By specifying the STRUCTURAL option, you request the path diagram for the structural model in addition to the path diagram for the complete model. To display a path diagram for the structural model only, use the STRUCTURAL(ONLY) option.

For example, the following statement produces two path diagrams, one for the complete model and one for the structural component:

pathdiagram struct;

However, the following statement produces one path diagram for the structural component:

pathdiagram struct(only);

If you consider some observed variables as structural variables in your model, you can use the STRUCTADD= option to include these observed variables in the structural component.

For more information and for illustrations, see the section Showing or Emphasizing the Structural Components.

TITLE=name

specifies the title of the path diagram. You can use any valid SAS name or a quoted string of up to 256 characters for name. If you do not specify this option, PROC CALIS generates titles for path diagrams. The generated title reflects the model number (if provided in the MODEL statement), the model label (if provided in the MODEL statement), the solution type (initial, unstandardized, or standardized), and whether the structural model is being shown. For example:

pathdiagram title=ThisTitleDoesNotUseQuotations;
pathdiagram title="Title looks better with the use of quoted strings";

Note that if you specify multiple path diagrams in the same PATHDIAGRAM statement, PROC CALIS applies the same title to all requested path diagrams. If unique titles are preferred, you can use separate PATHDIAGRAM statements to specify titles for different path diagrams.

USEERROR
USEERR

requests that error variables be displayed in the path diagram. By default, PROC CALIS does not display error variables in path diagrams, because showing errors in path diagrams usually creates more clutter. If you prefer to show the error variables explicitly in path diagrams, specify this option.

VARPARM=PATH | LABEL
VARIANCE=PATH | LABEL

specifies whether the variance parameters are displayed as paths (PATH) or as labels that are attached to variables (LABEL). The default VARPARM= value is PATH if your model does not fit mean structures. When you fit a model that contains mean structures, VARPARM= value is set to be the same as the MEANPARM= value.