Release 1.3.1 (Aug 8, 2023) ==================================== * Lower the tolerance in testing asyCov(), which returns an error in latest R. Release 1.3.0 (Jan 7, 2023) ==================================== * Fix a bug reported by Noel Card that meta() reported incorrect number of statistics and dfs. * Rewrite asyCov() and rename the old one to asyCovOld(). * Add rCor3L() and its summary method. * Add subset.variables argument in tssem2() and wls(). * Rename meta3() to meta3L() and meta3X() and meta3LFIML(). * Fix a critical bug in create.Tau2() that uses variances as SDs. * Add a new argument 'level' in create.Tau2(). * Add a mxModel.Args in wls(). * Add A.lbound and A.ubound arguments in create.vechsR() and osmasem(). * Add data and group arguments in calEffSizes(). * Modify Nohe15A1 and Nohe15A2. * Add a RAM argument in impliedR() and rimpliedR() and an SmatrixSD argument in rimpliedR(). * Add a starting value argument in as.mxAlgebra(). * Teach lavaan2RAM() to recognize functions of parameters and constraints in lavaan and convert them to mxAlgebra and mxConstraint in OpenMx. * Experimental: teach create.mxModel() to recognize mxAlgrebra and mxConstraint converted from lavaan2RAM(). Release 1.2.5.1 (May 17, 2021) ==================================== * Release to CRAN. * Fix a bug in an example in wls.Rd that triggers warning in R-Devel. * Add Id, expCov, and expMean in create.mxModel(). Release 1.2.5 (Nov 29, 2020) ==================================== * Release to CRAN. * Fix a bug in create.vechsR() with S0 argument to ensure that diagonals are 0. * Fix a bug in create.Tau2() with the RE.type = "User" argument that incorrectly fixes all fixed parameters at 0. * Add subset.rows argument in osmasem(). * Rename subset argument in osmasem() to subset.variables. * Add an argument extraTries in rerun(). * Add dataset Mathieu15. * Add calEffSizes(). * Add create.modMatrix(). * Rewrite Cor2DataFrame() to automatically append additional variables. Release 1.2.4 (Jun 13, 2020) ==================================== * Release to CRAN. * Add CFI and TLI in summary.osmasem(). * Rename the "Saturated" argument to "fitIndices" in summary.osmasem(). * Add "@" in the syntax of as.mxMatrix(). * Add as.mxAlgebra(). * Add as.symMatrix(). * Add an argument Jmatrix in osmasem(). * Add an argument ngroups in lavaan2RAM(). * Change the variable names in Becker92 and Becker94 so that they work better with lavaan2RAM(). Release 1.2.3.1 (Dec 8, 2019) ==================================== * Release to CRAN. * Change class(x) == "foo" to inherits(x, "foo") to avoid errors in R 4.0.0. Release 1.2.3 (Oct 10, 2019) ==================================== * Release to CRAN. * Fix a minor bug in lavaan2RAM() that arranges variables according to x1, x10, x2, ... * Improve tssem1FEM() in handling missing variables. * Replace bootstrap vcov() with OpenMx's vcov() when there are constraints in wls(). * Add a subset argument in osmasem(). * Add a plotting method for osmasem object. * Add metaFIML(). * Add an argument autofixtau2 for tssem1REM and osmasem objects in rerun(). * Add an argument RAM=NULL in wls(), tssem2(), and uniR2mx(). * Add dataset Kalaian96. * Add robust argument in vcov.meta(), vcov.meta3X(), vcov.osmasem(), vcov.tssem1REM(), summary.meta(), summary.meta3X(), summary.osmasem(), and summary.tssem1REM(). Release 1.2.2 (May 29, 2019) ==================================== * Release to CRAN. * Add dataset Stadler15. * Add create.mxModel() Release 1.2.0 (Oct 18, 2018) ==================================== * Release to CRAN. * Add .onLoad() * Add osmasem() and its related functions. * Add an argument type=c("tssem", "osmasem") in pattern.na(). * Add datasets Gnambs18 and vanderPol17. Release 1.1.0 (May 09, 2018) ==================================== * Release to CRAN. * Add checkRAM(). * Add list.output argument in smdMTS() and smdMES(). * Add dataset Gleser94. * Add dataset Scalco17. * Modify plotting methods for lavaan models and wls objects. * Fix a bug in list2matrix() for 2x2 matrices when the diag=FALSE. * Fix a minor bug in asyCov() with acov="weighted" or "unweighted" when the cor.analysis=TRUE with covariance matrices as the input. Release 1.0.0 (January 12, 2018) ==================================== * Release to CRAN. * Add lavaan in import. * Change the defaults of tssem1(): From method="FEM" to method="REM", From RE.type="Symm" to RE.type="Diag", and From acov="individual" to acov="weighted." * Add tssemParaVar() to estimate heterogeneity of parameter estimates in tssem approach. * Add basic tests. * Add fixed.x=FALSE automatically in uniR2lavaan(). * Fix coef.wls() so that it always follows the order of the parameter estimates in vcov.wls() * Rename bootMASEM functions to bootuniR functions. * Change the variable names in the output of asyCov(). Release 0.9.16 (September 29, 2017) ==================================== * Release to CRAN. * Add bootMASEM functions. * Rename the argument my.df to Cov in the tssem1 family. * Rename the argument my.df to Cor in uniR1(). * Rename the argument asyCov to aCov in the wls() and tssem2(). * Rename the argument check.asyCov to check.aCov in is.pd(). * Revise meta2semPlot() so that it generates nicer variable labels. * Change the variable names in Becker94 so that they work better with lavaan2RAM(). * Revise lavaan2RAM() to work with mean structure. * Revise as.mxMatrix() to work with definition variables. Release 0.9.14 (May 18, 2017) ==================================== * Release to CRAN. * Fix a minor bug reported by GerardCY in meta() when lm() fails to get the starting values for coef.constraints. * Add rCor(), rCorPop(), rCorSam(), summary.CorPop(), and print.summary.CorPop. * Fix a minor bug reported by John Ma when there are more than 120 variables in tssem1FEM(). * Revise the formula in calculating the standard error in uniR1() by using the second improved approximation of Schmidt and Hunter (2015, p. 101) * Add smdMTS() and smdMES() to calculate standardized mean differences for multiple treatment studies and for multiple end-point studies. Release 0.9.12 (January 23, 2017) ==================================== * Release to CRAN. * Explicitly state "SLSQP" as the optimizer in metaSEM as "CSOLNP" is the default optimizer in OpenMx 2.7.4. * Revise and rename impliedSigma() to impliedR(). * Fix a bug in uniR2mx() that does not work for models with latent variables. * Add dataset Cooke16. * Change solve() to chol2inv(chol()) and ginv() for matrix inversion. * Add dataset Boer16. * Add uniR1(), uniR2mx(), and uniR2lavaan(). * Modify a variable name in Becker09. * Minor changes on how errors are handled in the main functions. * Add datasets Nohe15A1 and Nohe15A2 * Modify some variable names in Hunter83 Release 0.9.10 (August 18, 2016) ==================================== * Release to CRAN. * Add impliedSigma() to calculate the model implied correlation or covariance matrix based on the RAM model * Add VarCorr() to extract variance component matrix for the class meta objects. * Fix a minor bug in summary.tssem1FEM that throws an error when tT is NA. * Add a check on the lengths of df and n in tssem1FEM() and tssem1REM(). * Change mxFitFunctionAlgebra() to mxFitFunctionMultigroup() in tssem1FEM(). * Fix a minor bug in lavaan2RAM() that does not honor the std.lv argument. * Modify the vignette and added examples. * Change the definition of is.pd() from Matrix::nearPD to MASS::mvrnorm(). Release 0.9.8 (April 16, 2016) ==================================== * Release to CRAN * Return NA rather than error in calculating 95% CI of RMSEA when there are errors in summary.wls(). * Fix a minor bug in meta() that does not give a starting value on the last preditcor with intercept.constraints=0 * Add lavaan2RAM() to convert lavaan models to RAM models * Add RMSEA 95% CI for wls and tssem1FEM classes Release 0.9.6 (October 31, 2015) ==================================== * Release to CRAN * Add several packages in NAMESPACE to satisfy R developmental version's (3.3.0) requirements * Add ellipse package in imports * Fix a bug reported by S.-F. Cheung in rerun() for tssem1FEM objects * Add acov argument in asyCov() and tssem1() * Modify wls(diag.constraints=FALSE) so that "mediators" are properly handled * Add datasets Norton13 and Roorda11 * Change default model.name in tssem1REM(), tssem1FEM() and wls() to avoid potential error code with OpenMx 2.2.6 * Add RE.constraints argument and "User" option in RE.type argument in tssem1() and tssem1REM() Release 0.9.4 (June 7, 2015) ==================================== * Modify to fit the CRAN policies * Remove deltaMethod() * Revert the RE.lbound from NA to 1e10 in meta() and meta3() * Change the default "Optimality tolerance" to "6.3e-14" in OpenMx * Change the default "Gradient iterations" to "2" in OpenMx * Change the default arguments in rerun() Release 0.9.3-2 (May 25, 2015) ==================================== * Change the RE.lbound from 1e10 to NA in meta() and meta3() * Add trunction (0 and 1) in calculating R2 in summary.meta() * Change the default optimizer from "NPSOL" to "SLSQP" (default in OpenMx) * Change the default "Gradient algorithm" to "central" in OpenMx * Add metaSEM.Rnw in vignettes Release 0.9.3-1 (May 12, 2015) ==================================== * Correct a typo in the example of Aloe14 (reported by Fred Li) * Modify to fit R-3.2.0 Release 0.9-2 (Jan 23, 2015) ==================================== * Add dataset Cheung00 * Add check.asyCov and cor.analysis arguments in is.pd() Release 0.9-1 (Dec 22, 2014) ==================================== * Add citation in "Frontiers in Psychology" * Release after the official release of OpenMx 2.0 * Remove dataset Craft03 which is duplicated of Becker09 Release 0.9-0 (Nov 16, 2014) ==================================== * Add semPlot package in Suggests and meta2semPlot() to convert wls objects to semPlotModel objects * Fix a bug in tssem1REM() that may throw away correlation coefficients when there are missing correlations (not missing variables) * Add byrow argument in vec2symMat() * Add datasets Aloe14 and Becker09 * Remove ellipse package in the dependence * Add silent=TRUE and run=TRUE arguments in most functions * Fix the package to work in OpenMx 2.0 * Use labels rather than Amatrix and Smatrix in wls() and tssem2() * Fix a bug in create.mxMatrix() to respect byrow=TRUE for "Symm" and "Stand" types Release 0.8-5 (Jun 6, 2014) ==================================== * Change "." to "_" in datasets Jaramillo05 and wvs94a, and indirectEffect.R * Add pattern.n() to display the accumulative sample sizes of the matrices * Add a function deltaMethod() to calculate approximate sampling variance or covariance matrix * Add methods for coef.MxRAMModel and vcov.MxRAMModel * Modify the formula to calculate SRMR in summary.tssem1FEM() * Add xlim and ylim arguments in plot.meta() * Add datasets wvs94b and BCG * Rename the dataset wvs94 to wvs94a * Revise is.pd() so that it returns NA rather than throws an error when there are NA in the input matrices * Add byrow argument in create.mxMatrix() * Add pattern.na() to display the pattern of missing data in TSSEM * Fix a bug in asyCov() returning an error in diffferent dimensions when the input is a list of 2x2 matrices * Fix a bug reported by Andre Plamondon that tssem1FEM() returns an error when acovS is a scalar Release 0.8-4 (May 1, 2013) ==================================== * Fix an issue in diag() that breaks the metaSEM in R-3.0.0 * Add Diag() that preserves the same functions as diag() prior to R-3.0.0 * Add dataset Craft03 Release 0.8-2 (Dec 28, 2012) ==================================== * Finalize features for release Release 0.8-1 (Nov 28, 2012) ==================================== * Add automatic constraint on the diagonals when diag.constraints=FALSE argument in wls() for cor.analysis=TRUE. It is usually not necessary to set diag.constraints=TRUE unless there are mediators. * Add meta3X() to handle missing covariates with FIML for 3-level meta-analysis * Fix the issue that there are missing levels in "cluster" in meta3() (and reml3()) reported by David Stanley * Modify meta(), reml(), meta3() and reml3() functions so that intercept.constraints, coef.constraints, RE.constraints, RE2.constraints and RE3.constraints may accept a scalar or vector as inputs * Add mx.algebras argument in wls() and tssem2() * Add datasets Hunter83 and Jaramillo05 * Change the default in as.mxMatrix. If 'x' is not a matrix, as.matrix(x) is applied on 'x' instead of throwing an error. Release 0.8-0 (Aug 30, 2012) ==================================== * Finalize features for release Release 0.7-1 (Aug 20, 2012) ==================================== * Remove argument RE_diag and added RE.type in tssem1() and tssem1REM() * Remove standard error, z value and p values from summary() when intervals.type="LB" * Add rerun() to refit models * Rename all mx fitted objects to mx.fit * Fix a bug in .minus2LL(), tssem1FEM() and summary.tssem1FEM in calculating the df of the independence model when cor.analysis=FALSE * Fix a bug in tssem1REM() that my.df is a list of covariance matrices when cor.analysis=TRUE * Fix a bug in calculating acov (solve()) in asyCov(), indirectEffect, tssem1.FE() * Add indirectEffect() to calculate the asymptotic covariance matrix of indirect and direct effects * Add create.Fmatrix() and create.mxMatrix() to create mxMatrix objects * Add df.adjustment argument in summary.wls() * Rewrite wls() using RAM specification (A, S and F matrices) * Add diag.constraints argument in wls() to constrain diagonals as 1 * Improve efficiency by removing the call on installed.packages() and summary() from OpenMx * Fix a bug in vec2symMat() reported by Yonghao Lim * Add meta3() and reml3() for 3-level meta-analysis * Add datasets Becker92, Becker94, Cooper03, Mak09, issp05 and Bornmann07 * Add I2 and R2 arguments to calculate heterogeneity and explained variance in meta() * Rewrite meta() so that the predictors are treated as design matrix rather than as variables * Revise meta() to replace NA with 1e5 in v object * Rename coeff.constraints argument to coef.constraints in meta() * Add homoStat argument in summary.meta() * Rename tssem1FE() and tssem1RE() to tssem1FEM() and tssem1REM() Release 0.7-0 (Nov 6, 2011) ==================================== * Fix a bug in meta() that does not include RE.lbound in Tau matrix when RE.lbound is a matrix * Revise tssemFE() to handle incomplete data in the first group * Add tssem1RE() for random-effects TSSEM * Rename tssem1() to tssem1FE() for fixed-effects TSSEM * Modify tssem1() to be a wrapper for tssem1FE() and tssem1RE() * Modify tssem2() to fit both fixed- and random-effects structural models from tssem1() * Add "cluster" argument in tssem1.FE() and some methods for it * Add "select" argument in coef.meta() and vcov.meta() * Fix a bug by removing the characters in matrix column when OpenMx 1.1 is used * Fix a bug in asyCov() that uses only the first sample size Release 0.6-0 (May 24, 2011) ==================================== * Add a dataset WVS94 * Change dropNA argument from TRUE to FALSE in asyCov() * Add data argument in meta() and reml() * Fix a bug by addinng dimnames in M matrix in meta() when OpenMx 1.1 is used * Fix a bug in summary.meta(), summary.reml() and summary.wls() when OpenMx 1.1 is used * Add plot() method for multivariate meta-analysis * Add the ellipse package on "Imports" in the DESCRIPTION * Add the metafor package on "Suggests" in the DESCRIPTION Release 0.5-4 (March 19, 2011) ==================================== * Fix a bug in tssem1() when OpenMx 1.0.6 is used * Fix a bug in tssem1() which ignores start.values argument Release 0.5-3 (February 20, 2011) ==================================== * Add model.name argument in tssem1(), tssem2(), wls(), meta() and reml() * Add anova() method for wls, meta and reml objects * Add no. of studies and no. of observed statistics in reml object (Ad-hoc) * Use Tau2 to represent variance component in both meta() and reml() * Fix a bug in meta() that exists when no. of predictors is larger than 1 Release 0.5-2 (December 11, 2010) ==================================== * Add name argument in as.mxMatrix() * Add reml() to estimate variance components with REML Release 0.5-1 (October 10, 2010) ==================================== * Add bdiagMat() and bdiagRep() functions to create block diagonal matrix * Fix a bug in meta() that ignored RE.lbound when RE.constraints was used * Fix a bug in readFullMat() that converts data into data.frames rather than matrices Release 0.5-0 (October 2, 2010) ==================================== * Add vcov() methods for tssem1, wls objects * Add coef() methods for tssem1, wls and meta objects Release 0.3-9 (September 24, 2010) ==================================== * Add a vignette Release 0.3-8 (September 20, 2010) ==================================== * Add suppressWarnings = TRUE in meta(), tssem1(), tssem2(), and wls() * Add OpenMx.status[[1]] into summary method Release 0.3-7 (September 19, 2010) ==================================== * Add vec2symMat(), matrix2bdiag() and homoStat() functions * Move startValues(), minus2LL() and indepwlsChisq() to hidden functions * Update datasets on Cheung09 and Digman97 Release 0.3-6 (September 16, 2010) ==================================== * Rename the package to "Meta-Analysis using Structural Equation Modeling" * Add vcov() method for meta object Release 0.3-5 (September 14, 2010) ==================================== * Fix a few bugs Release 0.3-4 (September 12, 2010) ==================================== * Add summary.meta() for meta objects Release 0.3-3 (September 8, 2010) ==================================== * Add new arguments in asyCov() * Add meta() for univariate and multivariate meta-analysis * Add as.mxMatrix() to convert matrices to mxMatrices Release 0.3-2 (August 29, 2010) ==================================== * Add indepWLSChisq() to calculate the chi-square statistic for an independent model based on WLS * Add minus2LL() to calculate the chi-square statistic for independent and saturated models based on ML * Add summary.wls() and print.summary.wls() for wls objects * Add summary.tssem1() and print.summary.tssem1() for tssem1 objects Release 0.3-1 (August 09, 2010) ==================================== * First alpha release to R-forge * Add basic functions for TSSEM