csmpower Power estimation for Covariance Structure Models csmpower

SAS Macro Programs: csmpower

$Version: 1.1 (22 Jun 2000)
Michael Friendly
York University

The csmpower macro ( [download] get csmpower.sas)

Power estimation for Covariance Structure Models

csmpower carries out retrospective or prospective power computations for covariance structure models using the method of MacCallum, Browne and Sugawara (1996). Their approach allows for testing a null hypothesis of 'not-good-fit', so that a significant result provides support for good fit.

Effect size in this approach is defined in terms of a null hypothesis and alternative hypothesis value of the root-mean-square error of approximation (RMSEA) index. These values, together with the degrees of freedom (df) for the model being fitted, the sample size (n), and error rate (alpha), allow power to be calculated.

The values of RMSEA are printed by PROC CALIS as "RMSEA Estimate" among the many fit statistics. The statistic also appears in the OUTRAM= data set. Values of RMSEA <= .05 are typically considered 'close fit'; values .05-.08 are considered 'fair', .08-.10, 'mediocre', RMSEA > .10, 'poor'.

For a retrospective power analysis, the macro reads an OUTRAM= data set from a PROC CALIS run, and calculates power for the values of RMSEAEST and its lower and upper confidence limits. For a prospective power analysis, values of RMSEA, DF and N must be provided through the macro arguments. The macro allows several values of rmseaa, alpha, df and sample size to be specified. Power is calculated for each combination of these values.



csmpower is a macro program. Values must be supplied for either DATA=the name of an OUTRAM= dataset obtained from PROC CALIS, or sets of values for the RMSEAA, DF and N parameters. If the DATA= parameter is supplied, the macro ignores values of the RMSEAA, DF and N parameters.

The arguments may be listed within parentheses in any order, separated by commas. For example:

%csmpower(data=outram_dataset, alpha=.05);
%csmpower(n=%str(200, 300, 400), df=23);


Default values are shown after the name of each parameter.
The name of an OUTRAM= data set from PROC CALIS, to carry out a retrospective power analysis using the RMSEA values, DF, and sample size from a given model. If not specified, you should supply values for the N, DF, and RMSEAA parameters.
The name of the output dataset. If not specified, the new dataset is named CSMPOWER.
Value of RMSEA under the null hypothesis
Value(s) of RMSEA under the alternative hypothesis
ALPHA =.05
Error rate (significance level) for tests
DF =
Degrees of freedom for the model
N =%str(40 to 100 by 20, 150 to 400 by 50)
Value(s) of sample size for which power is desired.
PLOT =%str(power * n = df)


This example fits a stringent model to Lord's Vocabulary Data, concerning two vocabulary tests, X, and Y, each given under both speeded and unspeeded conditions.

We then consider the power of the tests of model fit.

%include macros(csmpower);        *-- or include in an autocall library;
title "Power analysis: Lord's Vocabulary Data";
data lord(type=cov);
   input _type_ $ _name_ $  x1 x2 y1 y2;
n    .  649     649     649     649
cov  x1 86.3937   .       .       .
cov  x2 57.7751 86.2632   .       .
cov  y1 56.8651 59.3177 97.2850   .
cov  y2 58.8986 59.6683 73.8201 97.8192
mean .   0       0       0       0
title2 "Lord's data: H1- X1 and X2 parallel, Y1 and Y2 parallel, rho=1";
proc calis data=lord cov summary outram=ram1;
   lineqs  x1  = betax F1  + e1,
           x2  = betax F1  + e2,
           y1  = betay F2  + e3,
           y2  = betay F2  + e4;
   std  F1 F2 = 1 1,
        e1 e2 e3 e4 = vex vex vey vey;
   cov  F1 F2 = 1;

*-- Perform power analysis for the RMSEA statistics in this model;
title 'Retrospective power analysis';

*--; title  'Prospective power analysis';
%csmpower(df=6, rmseaa=%str(.08 to .12 by .02),
          plot=%str(power*n =rmseaa));
Here is the complete output from this example.


MacCallum, R., Browne, M., and Sugawara, H. M. (1996). Power Analysis dnd Determination of Sample Size for Covariance Structure Modeling, Psychological Methods, 2(1), 130-149.

See also

caliscmp Compare model fits from PROC CALIS
fpower Power computations for ANOVA designs
mpower Retrospective power analysis for multivariate GLMs
rpower Retrospective power analysis for univariate GLMs
A discussion of Statistical Power in Structural Equation Models by David Kaplan