Skip to content
Terrence edited this page Jul 6, 2019 · 45 revisions

For more recent developments in the 0.5-* family, see our NEWS file

semTools, Version 0.5-0

Version 0.5-0 of semTools has been released on CRAN, which assimilates lavaan's most recent internal changes (therefore requiring at least lavaan version 0.6-1), adds some minor features to a few existing functions, and fixes some bugs.

The biggest change in this version is the re-design of the runMI() function, which no longer produces an object of class lavaanStar (that object class is no longer supported), which inherited from class lavaan. It now produces an object of class lavaan.mi, which inherits from lavaan's new lavaanList class (see the ?lavaanList help page for details). The reasons to redesign runMI() include:

  • The user was required to choose among available methods for pooling the chi-squared test statistic when fitting the model, and the baseline model was also fit so that incremental fit indices (e.g., CFI and TLI) could be calculated. This lead to more frequent convergence problems.
  • The lavaanStar class could inadvertently mislead users into thinking that certain results were available from multiple imputations that were not. For example, the modindices() function would return modification indices for the first imputation, but those were not appropriately pooled statistics.

The new runMI() no longer includes the chi= argument, because those options have been moved to an anova() method written for lavaan.mi objects. Additional methods have been written: see the class?lavaan.mi help page for a list of methods and details about their use. Additionally, appropriately pooled modification indices and (S)EPCs are now available for multiple imputations (via modindices.mi()), as well as a general score test via lavTestScore.mi().

The parcelAllocation() has also been redesigned with new arguments to improve its flexibility and ease of use. Users are now required to provide lavaan syntax not only for the parcel-level model, but also for the item-level model. This allows parcel allocation to be automatically detected, no longer requiring users to provide a list of item-to-parcel assignments (see new examples on the help page).

The OpenMx enhancements in previous versions of semTools are obsolete now that OpenMx provides fit indices and standardized paths, so they have been removed. However, standardizeMx() is still available (temporarily deprecated) to provide standardized mean-structure parameters, until the OpenMx maintainers add that feature to OpenMx::mxStandardizeRAMpaths().

measurementInvariance() and measurementInvarianceCat() now require users to name all arguments passed to cfa(), including the first argument: model=. This is to prevent errors that occurred when some previous users had passed arguments in a different order than expected, which should not be a limitation.

semTools, Version 0.4-12 06/10/16

This version is available in CRAN. The lavaan package changes the elements in parameter table. Thus, some functions were edited according to the changes. Importantly, runMI did not provide correct results in the combination of lavaan 0.5-20 and semTools 0.4-11 or lower. This version fixes the problem, as well as providing the correct results with the presence of exogenous variables. The asymptotic covariance matrix is also added in the multiply-imputed result so lavWaldTest in lavaan or wald in semTools can be used to implement multivariate Wald test. Furthermore, users can run nested model comparison between two multiply-imputed results using anova. It provides the comparison results using method similar to tests of absolute fit (i.e., LMRR, MR, Mplus, and naive methods). However, the accuracy of the methods has not been investigated yet. The other functions that are fixed based on the change in parameter table are efa, longInvariance, measurementInvariance, measurementInvarainceCat, auxiliary, partialInvariance, partialInvarianceCat, and imposeStart.

Two new functions are introduced in this version. Thanks to Jason Rights and Sonya Sterba, poolMAlloc provides a method to pool results from different parcel allocations. Thanks to Ylenio Longo, htmt is used to assess discriminant validity using heterotrait-monotrait ratio. permuteMeasEq is also updated, such as adding the datafun argument to manipulate data before analyzing a model.

semTools, Version 0.4-11 02/29/16

This version is available in CRAN. The lavaan package changes its internal structure. This version changes some functions in order to make it compatible with lavaan version 0.5-20 or higher. Thanks to Jason Rights and Sonya Sterba, PAVranking function is added to investigate the influence of parcel allocation for model comparison. permuteMeasEq function is also updated by adding an option using modification indices

semTools, Version 0.4-9 06/29/15

This version is available in CRAN. The lavaan package changes how it handles equality constraints. This version changes some functions in order to make it compatible with lavaan version 0.5-18 or higher. Furthermore, permuteMeasEq function is introduced to find the null hypothesis distribution of fit indices in measurement invariance across groups using the permutation method. Thanks to Terry Jorgensen for this contribution. spatialCorrect function is also introduced to correct standard errors in the presence of spatial autocorrelation using Moran's I. Thanks to Jarrett Byrnes for this contribution.

semTools, Version 0.4-7 12/03/14

This version is available in KRAN. The OpenMx features were updated to be compatible with version 2.0. We do not guarantee the backward compatibility so some codes in the older version may not work. We also fix the bug in runMI when categorical indicators and exogenous covariates were used simultaneously.

semTools, Version 0.4-6 10/02/14

This version is available in CRAN and KRAN. Many new features were introduced in this version.

  • The quark function is designed to implement the principal component method to reduce the number of auxiliary variables in missing data handling.
  • Effect size measures for partial invariance are added in the partialInvariance and partialInvarianceCat functions. The details of effect size measures can be found by typing vignette("partialInvariance")
  • reliability can find the reliability for categorical indicators using Green and Yang's (2009) method.
  • The maximalRelia function is designed to find maximal reliability of a composite score.
  • The mvrnonnorm function is designed to have similar feature to the mvrnorm function in MASS package but creates nonnormal distribution. This is simply a short cut to the simulateData in lavaan package when users have population means and covariance in a matrix format.
  • Bug fixes for auxiliary and NET.

semTools, Version 0.4-5 08/04/14

This version is available in KRAN. The measurementInvarianceCat function is available for automatically implementing measurement invariance for categorical indicators. The partialInvariance and partialInvarianceCat functions are also available to easily find partial invariance models. Click here for the detailed explanation of how these functions work. The singleParamTest function is added to run a post-hoc analysis after nested model comparison to find the constraint (with 1 df) that makes nested models different. The SSpower function is added to implement the power analysis using Satorra and Bentler's (1985) method. The averaged variance extracted (AVE) is available in the reliability function. The fixed factor method of scale identification is available in the measurementInvariance function by specifying std.lv=TRUE. Note that this version of semTools is not available on CRAN because we are using hidden functions in lavaan. When this issue is fixed, we will update it on CRAN.

semTools, Version 0.4-3 03/31/14

This version is available in KRAN. This version is required if users use lavaan 0.5-16. Contributed by Ed Merkle, the kd function is added to implement the Kaiser-Dickman (1962) algorithm for data generation. Contributed by Terry Jorgensen, the bsBootMiss function is added to implement the Bollen-Stine bootstrap with missing observations by the method proposed by Savalei and Yuan (2009). He also provided the net function to compare models whether they are equivalent or nested. This method is provided by Bentler and Satorra (2010). This version also fixes the problem of the auxiliary function that the output cannot be run by the parameterEstimates function. The runMI function provides an appropriate error when the number of convergent results across imputed data sets is not over 1.

semTools, Version 0.4-1 06/10/13

This version is available in KRAN. This version fixes the problem of the auxiliary function that cannot account for nonlinear constraints or defined parameters. The efaUnrotate function has the argument to add a list of auxiliary variables to account for missing data. The default of the runMI is to not combine chi-square values if saturate models are specified.

semTools, Version 0.4-0 05/03/13

This version is available in CRAN and KRAN. This version adds the methods to implement exploratory factor analysis (EFA) by the lavaan package. The efaUnrotate function is used to fit an unrotated EFA model. Then, the orthRotate, oblqRotate, or funRotate functions can be used to rotate the standardized loadings from the unrotated solution. Fitting EFA model by the lavaan package allows users to use functionality of the lavaan package, such as scaled chi-square values, diagonal weighted least square for categorical indicators, or full information maximum likelihood. The imposeStart function is added to use parameter estimates of an analysis result as starting values of additional analysis. For example, the parameter estimates from a CFA model can be used as starting values for a multitrait-multimethod model. The compareFit function is also added to build a template for comparing multiple nested and nonnested models in a nice table format. The table can be exported to a file (via the saveFile function) or a clipboard (via the clipboard function). The bug of the parcelAllocation and moreFitIndices functions are also fixed.

semTools, Version 0.3-2 03/17/13

This version is available in CRAN and KRAN. The wald function is added to conduct multivariate Wald test for any linear combinations of parameters. This function is equivalent to MODEL TEST feature in Mplus.

semTools, Version 0.3-1 02/15/13

This version is available in KRAN only. The problem in the lisrel2lavaan function has been fixed.

semTools, Version 0.3-0 02/10/13

This version is available in CRAN and KRAN. The lisrel2lavaan function is added to translate LISREL syntax to lavaan parameter table with an option to analyze data directly. Many useful functions are added as supplementary functions for OpenMx: standardizeMx to standardize parameters in a RAM model, fitMeasuresMx to find fit measures for an OpenMx output, nullMx to analyze null model, and saturateMx to analyze saturate model. The auxiliary function is fixed to take care all possible models with continuous indicators, is designed to handle the script directly (instead of taking the lavaan output), and is designed to forcefully change the missing option as "fiml". The tukeySEM function is added to Ccalculate Tukey's WSD post-hoc test for multiple group means comparison. The runMI function is fixed to appropriately handle the models with categorical variables and with scaled chi-square values. The runMI function is also fixed to provide the standard errors of standardized solutions for the lavaan 0.5-12 or higher. The fmi function is added to calculate fraction missings of means and variances of data with missing values.

semTools, Version 0.2-12 01/01/13

This version is available in CRAN and KRAN. The runMI function is fixed to report the accurate standardized solutions. The reliability function report coefficient alpha, coefficient omega using model-implied indicator variances, and coefficient omega using observed indicator variances. The reliabilityL2 is added to calculate the reliability of a higher-order factor.

semTools, Version 0.2-9 11/14/12

This version is available in KRAN only. The nullRMSEA function is added to calculate the RMSEA of the null (baseline) model. This value will be useful for any people who use David Kenny's guideline. The null RMSEA value is also provided in the moreFitIndices function. Furthermore, the reliability function is created to compute the point estimate of coefficient omega using Raykov's (2001) formula.

semTools, Version 0.2-9 11/14/12

This version is available in KRAN only. The nullRMSEA function is added to calculate the RMSEA of the null (baseline) model. This value will be useful for any people who use David Kenny's guideline. The null RMSEA value is also provided in the moreFitIndices function. Furthermore, the reliability function is created to compute the point estimate of coefficient omega using Raykov's (2001) formula.

semTools, Version 0.2-7 10/15/12

This version is available in both CRAN and KRAN. This package is only the maintenance package. The names of contributors are listed in the package description and some documentations are edited.

semTools, Version 0.2-6 09/11/12

This version is available in both CRAN and KRAN. The auxiliary function is created to automatically handle auxiliary variables. All fit indices are handled correctly when the auxiliary variable is added. The output is still a lavaan object (technically, it is a child class of the lavaan object). All methods (e.g., inspect and summary) can still be used in the provided output. The runMI function is also rewritten to provide the Meng & Rubin (1992) and Mplus styles for pooling the chi-square values across imputations. The Mplus one is used as a default. The cfa.mi, growth.mi, sem.mi, and lavaan.mi are also wrote for an easy use of the runMI function. The output is provided in the lavaan object as well. We renamed the copy function to clipboard function. We wrote the clipboard function for Mac and Linux platforms. However, the clipboard function in Mac is unstable. The xclip application is needed for Linux, which is unstable too. Alternatively, we wrote the saveFile function to save the lavaan output to a file. Finally, the moreFitIndices function currently provides the scaled fit-indices if the scaled chi-squared value is request in running lavaan (e.g., estimator = "mlr").

semTools, Version 0.2-2 07/15/12

This version is available in KRAN only. As the new function, the copy function is created to copy the attributes of the lavaan output into a clipboard, which can be pasted into other programs such as Excel for any further editing. The attributes include parameter estimates, standard errors, fit indices, the result from the summary method, and many other attributes. By not many further adjustments, the copied result should be similar to published articles. Please refer to the documentation of the copy function for further details. In addition, the parameter estimates of the indirect effect is also added in the output of the monteCarloMed function.

semTools, Version 0.2-1 07/11/12

This version is available in KRAN only. The AGFI* formula in the moreFitIndices function is adjusted for the multiple-group SEM (Dudgeon, 2004). The plotRMSEAdist, findRMSEApower, findRMSEAsamplesize, and plotRMSEApower are also adjusted for the multiple-group context based on the Dudgeon's (2004) guideline by adjusting the RMSEA formula provided by Steiger (1998).

semTools, Version 0.2-0 07/06/12

This version is available in both CRAN and KRAN. The Mardia's multivariate skewness and kurtosis are available by the mardiaSkew and mardiaKurtosis functions. The power analysis using RMSEA is more comprehensive. The plotRMSEAdist is added to visualize the sampling distribution of RMSEA. The findRMSEApower is used to find a statistical power from the RMSEA sampling distribution given a sample size. The findRMSEAsamplesize is used to find the minimum sample size for a desired power in rejecting bad models or retaining good models using RMSEA. We also add the indProd function to create the two- or three-way products of indicators without centering, with mean centering, with double-mean centering, or with residual centering by either all possible combination or match-paired method. The probe2WayMC, probe2WayRC, probe3WayMC, and probe3WayRC are also added for probing two- or three-way latent interaction by mean or residual centering approach. The probing result can be plotted by the plotProbe function.

semTools, Version 0.1-5 06/29/12

This version is available on KRAN only. The longInvariance function is added to automatically test the measurement invariance sequence in longitudinal context, as well as similar context (e.g., dyadic data). The splitSample function is also added to randomly split a sample into two halves. Finally, the runMI function can combine multiple group results.

semTools, Version 0.1-4 06/05/12

This version is available on KRAN only. Add the monteCarloMed function to takes an expression for an indirect effect, the parameters and standard errors associated with the expression and returns a confidence interval based on a Monte Carlo test of mediation (MacKinnon, Lockwood, & Williams, 2004).

semTools, Version 0.1-3 06/04/12

This version is available on KRAN only. Add the parcelAllocation function to generate a given number of randomly generated item-to-parcel allocations, fit a model to each allocation, and provide averaged results over all allocations (Sterba, 2011).

semTools, Version 0.1-2 05/31/12

This version is available on KRAN only. Add the plotRMSEApower function to plot the power curve of RMSEA and the miPowerFit function to evaluate model fit using Saris, Satorra, and van der Veld (2009) method.

semTools, Version 0.1-1 05/28/12

This version is available on KRAN only. The runMI function is able to take multiply imputed dataset.

semTools, Version 0.1-0 05/18/12

Upload the package to CRAN. Make this package compatible with the lavaan 0.4-14.

semTools, Version 0.0-3 05/15/12

The orthogonize, runMI, and related functions are added.

semTools, Version 0.0-2 03/15/12

The skew, kurtosis, and related functions are added.

semTools, Version 0.0-1 03/10/12

The moreFitIndices, measurementInvariance, and related functions are added.