Build Status
Build Status

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

SEMinR follows the latest best-practices in methodological literature:


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.


You can install SEMinR with:



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:

# Distinguish and mix composite or reflective (common-factor) measurement models
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)

# Use multi-core parallel processing to speed up bootstraps
boot_estimates <- bootstrap_model(pls_model, nboot = 1000, cores = 2)