Domain-Specific Language for Building and Estimating Structural Equation Models

A powerful, easy to syntax for specifying and estimating complex Structural Equation Models. Models can be estimated using Partial Least Squares Path Modeling or Covariance-Based Structural Equation Modeling or covariance based Confirmatory Factor Analysis.


Build Status

SEMinR brings many advancements to creating and estimating structural equation models (SEM) using Partial Least Squares Path Modeling (PLS-PM):

  • A natural feeling, domain-specific language to build and estimate structural equation models in R
  • Uses variance-based PLS estimation to model both composite and common-factor constructs
  • High-level functions to quickly specify interactions and complicated structural models

SEMinR follows the latest best-practices in methodological literature:

  • Automatically adjusts PLS estimates to ensure consistency (PLSc) wherever common factors are involved
  • Ajusts for known biases in interaction terms in PLS models
  • Continuously tested against leading PLSPM software to ensure parity of outcomes: SmartPLS (Ringle et al., 2015) and ADANCO (Henseler and Dijkstra, 2015), as well as other R packages such as semPLS (Monecke and Leisch, 2012) and matrixpls (Rönkkö, 2016)
  • High performance, multi-core bootstrapping function

Documentation

The vignette for Seminr can be found in the seminr/inst/doc/ folder or by running the vignette("SEMinR") command after installation.

Demo code for use of Seminr can be found in the seminr/demo/ folder or by running the demo("seminr-contained"), demo("seminr-ecsi") or demo("seminr-interaction") commands after installation.

Installation

You can install SEMinR with:

install.packages("seminr")

Usage

Briefly, there are four steps to specifying and estimating a structural equation model using SEMinR:

1 Describe measurement model for each construct and its items:

measurements <- constructs(
  composite("Image",       multi_items("IMAG", 1:5), weights = mode_B),
  composite("Expectation", multi_items("CUEX", 1:3), weights = mode_A),
  reflective("Loyalty",    multi_items("CUSL", 1:3))
)

2 Specify any interactions between constructs:

# Easily create orthogonalized or scaled interactions between constructs
intxns <- interactions(
  interaction_ortho("Image", "Expectation")
)

3 Describe the structural model of causal relationships between constructs (and interactions):

# Quickly create multiple paths "from" and "to" sets of constructs
structure <- relationships(
  paths(from = c("Image", "Expectation", "Image*Expectation"), 
        to = "Loyalty")
)

4 Put the above elements together to estimate and bootstrap the model:

# Dynamically compose SEM models from individual parts
pls_model <- estimate_pls(data = mobi, measurements, intxns, structure)
summary(pls_model)
 
# Use multi-core parallel processing to speed up bootstraps
boot_estimates <- bootstrap_model(pls_model, nboot = 1000, cores = 2)
summary(boot_estimates)

Authors

  • Soumya Ray
  • Nicholas Danks

News

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("seminr")

1.1.0 by Nicholas Patrick Danks, 3 months ago


Browse source code at https://github.com/cran/seminr


Authors: Soumya Ray [aut, ths] , Nicholas Patrick Danks [aut, cre] , Juan Manuel Velasquez Estrada [aut] , James Uanhoro [ctr] , Arturo Heynar Cano Bejar [ctr]


Documentation:   PDF Manual  


GPL-3 license


Imports parallel, lavaan, MASS

Suggests knitr, testthat, rmarkdown


See at CRAN