Learn R Programming

metaSEM (version 0.9.4)

wls: Conduct a Correlation/Covariance Structure Analysis with WLS

Description

It fits a correlation or covariance structure with weighted least squares (WLS) estimation method where the inverse of the asymptotic covariance matrix is used as the weight matrix. tssem2 conducts the second stage analysis of the two-stage strutural equation modeling (TSSEM). tssem2 is a wrapper of wls.

Usage

wls(Cov, asyCov, n, Amatrix=NULL, Smatrix=NULL, Fmatrix=NULL,
    diag.constraints=FALSE, cor.analysis=TRUE, intervals.type=c("z","LB"),
    mx.algebras=NULL, model.name=NULL, suppressWarnings=TRUE,
    silent=TRUE, run=TRUE, ...)
tssem2(tssem1.obj, Amatrix=NULL, Smatrix=NULL, Fmatrix=NULL,
    diag.constraints=FALSE, intervals.type=c("z", "LB"), mx.algebras=NULL,
    model.name=NULL, suppressWarnings=TRUE, silent=TRUE, run=TRUE, ...)

Arguments

tssem1.obj
An object of either class tssem1FEM, class tssem1FEM.cluster or class tssem1REM returned from tssem1()
Cov
A $p$ x $p$ sample correlation/covariance matrix where $p$ is the number of variables.
asyCov
A $p*$ x $p*$ asymptotic sampling covariance matrix of either vechs (Cov) or vech (Cov) where $p* = p(p-1)/2$ for correlat
n
Sample size.
Amatrix
An asymmetric matrix in the RAM approach with MxMatrix-class. If it is NULL, a matrix of zero will be created. If it is a matrix, it will be converted into
Smatrix
A symmetric matrix in the RAM approach with MxMatrix-class. If it is a matrix, it will be converted into MxMatrix-class by the
Fmatrix
A filter matrix in the RAM approach with MxMatrix-class. If it is NULL (the default), an identity matrix with the same dimensions of Cov will be created. If it is a
diag.constraints
Logical. This argument is ignored when cor.analysis=FALSE. If diag.constraints=TRUE, the diagonals of the model implied matrix will be constrained at 1 by nonlinear constraints. The drawback is that standard error will not be
cor.analysis
Logical. Analysis of correlation or covariance structure. If cor.analysis=TRUE, vechs is used to vectorize S; otherwise, vech
intervals.type
Either z (default if missing) or LB. If it is z, it calculates the 95% Wald CIs based on the z statistic. If it is LB, it calculates the 95% likelihood-based CIs on the parameter estimates. Please not
mx.algebras
A list of mxMatrix or mxAlgebra objects on the Amatrix, Smatrix and Fmatrx. It can be used to define
model.name
A string for the model name in mxModel. If it is missing, the default is "TSSEM2 (or WLS) Analysis of Correlation Structure" for cor.analysis=TRUE and "TSSEM2 (or WLS) Analysis of Cova
suppressWarnings
Logical. If TRUE, warnings are suppressed. Argument to be passed to mxRun.
silent
Logical. Argument to be passed to mxRun
run
Logical. If FALSE, only return the mx model without running the analysis.
...
Futher arguments to be passed to mxRun.

Value

  • An object of class wls with a list of
  • callThe matched call
  • CovInput data of either a covariance or correlation matrix
  • asyCovAsymptotic covariance matrix of the input data
  • noObservedStatNumber of observed statistics
  • nSample size
  • cor.analysislogical
  • noConstraintsNumber of constraints imposed on S
  • indepModelChisqChi-square statistic of the independent model returned by .indepwlsChisq
  • indepModelDfDegrees of freedom of the independent model returned by .indepwlsChisq
  • mx.fitA fitted object returned from mxRun

References

Bentler, P.M., & Savalei, V. (2010). Analysis of correlation structures: current status and open problems. In Kolenikov, S., Thombs, L., & Steinley, D. (Eds.). Recent Methodological Developments in Social Science Statistics (pp. 1-36). Hoboken, NJ: Wiley.

Cheung, M. W.-L. (2010). Fixed-effects meta-analyses as multiple-group structural equation models. Structural Equation Modeling, 17, 481-509.

Cheung, M. W.-L. (2014). Fixed- and random-effects meta-analytic structural equation modeling: Examples and analyses in R. Behavior Research Methods, 46, 29-40.

Cheung, M. W.-L., & Chan, W. (2005). Meta-analytic structural equation modeling: A two-stage approach. Psychological Methods, 10, 40-64.

Cheung, M. W.-L., & Chan, W. (2009). A two-stage approach to synthesizing covariance matrices in meta-analytic structural equation modeling. Structural Equation Modeling, 16, 28-53.

Joreskog, K. G., Sorbom, D., Du Toit, S., & Du Toit, M. (1999). LISREL 8: New Statistical Features. Chicago: Scientific Software International.

McArdle, J. J., & MacDonald, R. P. (1984). Some algebraic properties of the Reticular Action Model for moment structures. British Journal of Mathematical and Statistical Psychology, 37, 234-251.

See Also

tssem1, Becker92, Digman97, Hunter83, issp89, issp05

Examples

Run this code
#### Analysis of correlation structure
R1 <- matrix(c(1.00, 0.22, 0.24, 0.18,
               0.22, 1.00, 0.30, 0.22,
               0.24, 0.30, 1.00, 0.24,
               0.18, 0.22, 0.24, 1.00), ncol=4, nrow=4)
n <- 1000
acovR1 <- asyCov(R1, n)

## One-factor CFA model
(A1 <- cbind(matrix(0, nrow=5, ncol=4),
             matrix(c("0.2*a1","0.2*a2","0.2*a3","0.2*a4",0),
             ncol=1)))

(S1 <- Diag(c("0.2*e1","0.2*e2","0.2*e3","0.2*e4",1)))

## The first 4 variables are observed while the last one is latent.
(F1 <- create.Fmatrix(c(1,1,1,1,0), name="F1"))
wls.fit1 <- wls(Cov=R1, asyCov=acovR1, n=n, Fmatrix=F1, Smatrix=S1, Amatrix=A1,
                 cor.analysis=TRUE, intervals="LB")
summary(wls.fit1)


#### Multiple regression analysis
## Variables in R2: y, x1, x2
R2 <- matrix(c(1.00, 0.22, 0.24, 
               0.22, 1.00, 0.30, 
               0.24, 0.30, 1.00, 
               0.18, 0.22, 0.24), ncol=3, nrow=3)
acovR2 <- asyCov(R2, n)

## A2: Regression coefficents
#    y x1 x2
# y  F T  T 
# x1 F F  F 
# x2 F F  F 
(A2 <- mxMatrix("Full", ncol=3, nrow=3, byrow=TRUE,
               free=c(FALSE, rep(TRUE, 2), rep(FALSE, 6)), name="A2"))

## S2: Covariance matrix of free parameters
#    y x1 x2
# y  T F  F 
# x1 F F  F 
# x2 F T  F
(S2 <- mxMatrix("Symm", ncol=3, nrow=3, values=c(0.2,0,0,1,0.2,1),
               free=c(TRUE,FALSE,FALSE,FALSE,TRUE,FALSE), name="S2"))

## F may be ignored as there is no latent variable.
wls.fit2 <- wls(Cov=R2, asyCov=acovR2, n=n, Amatrix=A2, Smatrix=S2,
                cor.analysis=TRUE, intervals="LB")
summary(wls.fit2)


#### Analysis of covariance structure
R3 <- matrix(c(1.50, 0.22, 0.24, 0.18,
               0.22, 1.60, 0.30, 0.22,
               0.24, 0.30, 1.80, 0.24,
               0.18, 0.22, 0.24, 1.30), ncol=4, nrow=4)
n <- 1000
acovS3 <- asyCov(R3, n, cor.analysis=FALSE)

(A3 <- cbind(matrix(0, nrow=5, ncol=4),
             matrix(c("0.2*a1","0.2*a2","0.2*a3","0.2*a4",0),ncol=1)))

(S3 <- Diag(c("0.2*e1","0.2*e2","0.2*e3","0.2*e4",1)))

F3 <- c(TRUE,TRUE,TRUE,TRUE,FALSE)
(F3 <- create.Fmatrix(F3, name="F3", as.mxMatrix=FALSE))

wls.fit3 <- wls(Cov=R3, asyCov=acovS3, n=n, Amatrix=A3, Smatrix=S3,
                Fmatrix=F3, cor.analysis=FALSE)
summary(wls.fit3)

Run the code above in your browser using DataLab