csmpower | Power estimation for Covariance Structure Models | csmpower |
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.
The arguments may be listed within parentheses in any order, separated by commas. For example:
%csmpower(data=outram_dataset, alpha=.05);or
%csmpower(n=%str(200, 300, 400), df=23);
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; cards; 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; run; *-- Perform power analysis for the RMSEA statistics in this model; title 'Retrospective power analysis'; %csmpower(data=ram1); *--; 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.