Minimum via the inverse-square-root method (e.g., detecting β = .20 at 5% needs n ≈ 155), not the discredited '10-times rule'.
Assumptions
Predictor variables not required to be multivariate normal (nonparametric resampling for inference).
Correct measurement mode per construct (reflective vs formative) — misspecification here is the field's classic error.
Independence of observations.
Linear relations among composites.
Hypotheses
H₀ — Each structural path coefficient is zero.
H₁ — Paths differ from zero (bootstrap inference).
The concept
PLS builds each construct as a weighted composite of its indicators, iterating weights to maximize the explained variance of dependent constructs, then estimates structural paths by OLS among the composites. Inference comes from bootstrapping (typically 5,000+ resamples).
Evaluation is two-layered. Measurement: reflective blocks need indicator loadings ≥ .70, composite reliability ≥ .70, AVE ≥ .50, and discriminant validity via HTMT < .85/.90; formative blocks need significant weights, VIF < 3–5, and content validity. Structural: path coefficients with bootstrap CIs, R² of endogenous constructs, f² effect sizes, and out-of-sample predictive power via PLSpredict/Q². PLS trades CB-SEM's global-fit testing for predictive assessment — use each paradigm for what it is built for.
Worked example
A study models drivers of e-HRM adoption (N = 210): perceived usefulness and ease of use (reflective) plus a formative 'implementation resources' index → adoption intention.
Result: CR .84–.91, AVE .61–.72, HTMT max .78; usefulness β = .41 (CI [.29, .52]), ease β = .22, resources β = .19; R²(intention) = .48, Q²predict positive for all indicators — solid explanatory and predictive performance.
How to run it
library(seminr)
mm <- constructs(
composite("Useful", multi_items("pu", 1:4)),
composite("Ease", multi_items("peou", 1:4)),
composite("Resources", multi_items("res", 1:3), weights = mode_B), # formative
composite("Intent", multi_items("int", 1:3))
)
sm <- relationships(
paths(from = c("Useful", "Ease", "Resources"), to = "Intent")
)
model <- estimate_pls(df, mm, sm)
summary(model)
boot <- bootstrap_model(model, nboot = 5000)
summary(boot) # paths with bootstrap CIs
# via plspm (pip install plspm) — or use SmartPLS/R seminr for full diagnostics
import plspm.config as c
from plspm.plspm import Plspm
from plspm.scheme import Scheme
from plspm.mode import Mode
structure = c.Structure()
structure.add_path(["Useful", "Ease", "Resources"], ["Intent"])
config = c.Config(structure.path(), scaled=True)
config.add_lv_with_columns_named("Useful", Mode.A, df, "pu")
config.add_lv_with_columns_named("Ease", Mode.A, df, "peou")
config.add_lv_with_columns_named("Resources", Mode.B, df, "res")
config.add_lv_with_columns_named("Intent", Mode.A, df, "int")
res = Plspm(df, config, Scheme.PATH, bootstrap=True)
print(res.path_coefficients()); print(res.bootstrap().paths())
Not available in SPSS. Standard tool: SmartPLS (smartpls.com; free student version) or R seminr.
SmartPLS workflow: import CSV → draw constructs and drag indicators → set formative mode where applicable → Calculate → PLS-SEM Algorithm, then Bootstrapping (5,000), then PLSpredict.
Report measurement quality (loadings/weights, CR, AVE, HTMT, VIF), then paths with bootstrap CIs, R², f², Q².
Not feasible. Use SmartPLS (GUI, popular with management researchers), R seminr, or plspm in Python.
Interpreting the output
Measurement first: reflective (loadings, CR, AVE, HTMT) or formative (weights, VIF) criteria per block.
Paths with bootstrap CIs; R² (.25/.50/.75 weak/moderate/substantial in many fields) and f² effect sizes.
Predictive relevance via PLSpredict/Q² when prediction is the claim.
Do not report CB-SEM fit indices as if they applied; SRMR in PLS is only a rough heuristic.
APA-style reporting
PLS-SEM results (SmartPLS 4; 5,000 bootstrap resamples) supported measurement quality (CR = .84–.91; AVE = .61–.72; all HTMT < .85). Perceived usefulness (β = .41, 95% CI [.29, .52]), ease of use (β = .22, [.10, .34]), and implementation resources (β = .19, [.07, .30]) each predicted adoption intention, together explaining 48% of its variance (Q²predict > 0).
Common mistakes
Choosing PLS solely to dodge a small-sample problem.
Misspecifying formative constructs as reflective (or vice versa).
Applying reflective criteria (loadings, AVE) to formative blocks.
Ignoring predictive assessment while making predictive claims.
Presenting PLS and CB-SEM as interchangeable rivals rather than tools with different goals.