| Symbol | Meaning |
|---|---|
| Rectangle | Observed (manifest) variable: a survey item, a measured quantity |
| Oval | Latent variable (factor, construct): unobserved, inferred from indicators |
| Single-headed arrow | A directed effect: regression coefficient (structural) or factor loading (measurement) |
| Double-headed arrow | A covariance or correlation, with no direction claimed |
| Small arrow into a variable, or a circle | Error or disturbance: the part not explained by the model |
| Triangle (rare) | The constant, when means and intercepts are modelled |
| Covariance-based SEM (CB-SEM) | Partial least squares SEM (PLS-SEM) | |
|---|---|---|
| What it fits | The full covariance matrix of the indicators, by maximum likelihood or a robust variant | A sequence of regressions on weighted composites of the indicators |
| Latent variables | Common factors: the shared variance of the indicators, error separated | Composites: weighted sums of the indicators, error included |
| Goal | Test a theory: does the implied covariance matrix match the observed one? | Predict and explain: maximise explained variance of the endogenous composites |
| Global fit test | Yes: chi-square and the fit indices | No exact test; SRMR and prediction-based assessment |
| Sample size | Larger; hundreds | Smaller samples tolerated, with caveats |
| Software | lavaan (R), Mplus, AMOS, Stata sem, JASP, semopy (Python) | SmartPLS, SEMinR (R), ADANCO, cSEM (R) |
| Where common | Psychology, sociology, public health, education | Marketing, information systems, management; South Asian business schools |
| Sections | 02 to 08, 10, 11 | 09 |
| Field | Typical constructs | Typical model |
|---|---|---|
| Women's empowerment | Decision-making, mobility, control over assets, attitudes to violence | CFA of a multidimensional scale; invariance across states or languages; effects of a programme on each dimension |
| Health behaviour | Knowledge, attitudes, perceived risk, self-efficacy, intention | Theory of planned behaviour as a mediation chain; intention mediating knowledge to practice |
| Education | Teacher motivation, school climate, student engagement, achievement | Multilevel SEM: students within schools; growth models across grades |
| Service delivery and governance | Trust in institutions, perceived corruption, satisfaction, willingness to pay | Structural model of trust to compliance; invariance across districts |
| Livelihoods and finance | Financial literacy, risk attitude, social capital, savings behaviour | Mediation of programme exposure through social capital |
| Management and marketing (business schools) | Technology acceptance, service quality, job satisfaction, intention to adopt | PLS-SEM of UTAUT or SERVQUAL-type models on convenience samples |
| Psychology and psychometrics | Well-being, depression, resilience scales | CFA and bifactor models; validation of translated instruments |
| Term | Meaning |
|---|---|
| Indicator, item, manifest variable | An observed variable that measures a construct |
| Latent variable, factor, construct | The unobserved variable the indicators measure |
| Loading (λ) | The regression of an indicator on its factor; standardised, its correlation with the factor |
| Exogenous | A variable with no arrows pointing into it |
| Endogenous | A variable with at least one arrow into it |
| Disturbance (ζ), error (ε, δ) | Unexplained variance in an endogenous latent or an indicator |
| Reflective measurement | The construct causes the indicators (arrows from oval to rectangles) |
| Formative measurement | The indicators define the construct (arrows from rectangles to oval) |
| Term | Meaning |
|---|---|
| Free parameter | Estimated from the data |
| Fixed parameter | Set by the analyst (usually 0 or 1) |
| Degrees of freedom | Known covariances minus free parameters |
| Identified | Every parameter has a unique solution |
| χ² (chi-square) | The test of exact fit: implied versus observed covariances |
| Direct, indirect, total effect | A path; a product of paths through a mediator; their sum |
| Invariance | The same measurement model holds across groups |
| Modification index | The expected drop in χ² from freeing one fixed parameter |
model <- '
decide =~ d1 + d2 + d3 + d4 + d5
mobility =~ m1 + m2 + m3
assets =~ a1 + a2 + a3 + a4
'
fit <- cfa(model, data = df, estimator = "MLR")
summary(fit, fit.measures = TRUE, standardized = TRUE)=~ reads 'is measured by'. Three factors, twelve items, the factors correlated by default (a double-headed arrow among the ovals), the first loading of each factor fixed to 1 by default, errors uncorrelated. Twelve lines of output later you have loadings, factor covariances, error variances and fit.sem (Decide -> d1 d2 d3 d4 d5) ...; AMOS by drawing; JASP by dragging items into factors; Python semopy uses lavaan's syntax.| Factor and item | Unstd. λ | SE | Std. λ | R² | Comment |
|---|---|---|---|---|---|
| decide =~ d1 (who decides on food purchases) | 1.000 | — | 0.71 | 0.50 | Marker; fixed |
| decide =~ d2 (large purchases) | 1.18 | 0.09 | 0.79 | 0.62 | |
| decide =~ d3 (visiting family) | 1.05 | 0.09 | 0.74 | 0.55 | |
| decide =~ d4 (own health care) | 0.97 | 0.10 | 0.68 | 0.46 | |
| decide =~ d5 (children's schooling) | 0.62 | 0.11 | 0.41 | 0.17 | Weak; shares little with the others |
| mobility =~ m1 | 1.000 | — | 0.82 | 0.67 | |
| mobility =~ m2 | 0.94 | 0.07 | 0.77 | 0.59 | |
| mobility =~ m3 | 0.88 | 0.08 | 0.70 | 0.49 | |
| decide ~~ mobility (correlation) | 0.46 | Related, distinct |
ordered = c("d1", ..., "d5") and the estimator switches automatically.| Decision | Recommended | Avoid |
|---|---|---|
| Extraction | Principal axis factoring or ML factor analysis | Principal components analysis (it is not factor analysis; it models total variance) |
| Number of factors | Parallel analysis (Horn 1965); scree with judgement; theory | The eigenvalue-greater-than-1 rule alone (over-extracts) |
| Rotation | Oblique (oblimin, promax): factors are allowed to correlate | Varimax by default (forces independence the constructs rarely have) |
| Item retention | Loading above 0.4 on one factor, cross-loadings below 0.3, with content review | Deleting items purely on statistics |
| Sample | A development sample, then CFA on a separate sample | EFA and CFA on the same respondents |
| Correlation matrix | Polychoric for ordinal items | Pearson on binary items |
fa.parallel) and in JASP and jamovi. It compares eigenvalues against those from random data of the same size and is the one factor-count rule that survives scrutiny.| Coefficient | Assumes | Computed from | Use |
|---|---|---|---|
| Cronbach's α (1951) | Equal loadings (tau-equivalence), uncorrelated errors | Item covariances | Familiar; understates reliability when loadings differ; overstates it with many items or correlated errors |
| McDonald's ω (composite reliability) | The CFA model holds | Loadings and error variances | The default for a scale with a fitted CFA; report it instead of or beside α |
| Ordinal α / ω | As above, on the polychoric matrix | Polychoric correlations, thresholds | For Likert and binary items |
| ωh (hierarchical) | Bifactor model | General-factor loadings | How much of the total score is the general factor |
| Test-retest | Stability of the construct | Two administrations | For traits, not states; rarely feasible in field surveys |
| Inter-rater | Multiple observers | Agreement statistics (κ, ICC) | Observational measures, enumerator-rated items |
| Criterion | Rule | Notes |
|---|---|---|
| Fornell-Larcker | √AVE of each construct exceeds its correlation with every other construct | Traditional; weak at detecting problems when loadings vary (Henseler et al. 2015) |
| HTMT (heterotrait-monotrait ratio) | Ratio of between-construct to within-construct item correlations below 0.85 (strict) or 0.90 (lenient); bootstrap CI excludes 1 | Henseler, Ringle and Sarstedt, J Acad Marketing Sci 2015, 43:115; now the default in PLS-SEM and increasingly in CB-SEM |
| Factor correlation CI | The 95% CI of the correlation between two factors excludes 1 | Direct and simple; report the correlation and CI |
| Chi-square difference | A model with the two factors merged fits significantly worse | A nested-model test; sensitive to sample size |
| Cross-loadings | Each item loads more on its own construct than on others | Weak; mainly a PLS-SEM habit |
| Construct | Items | ω | AVE | √AVE | r with decide | r with mobility | HTMT (max) |
|---|---|---|---|---|---|---|---|
| decide | 4 (d5 dropped) | 0.81 | 0.53 | 0.73 | — | 0.52 | |
| mobility | 3 | 0.81 | 0.59 | 0.77 | 0.46 | — | 0.52 |
| assets | 4 | 0.78 | 0.48 | 0.69 | 0.38 | 0.31 | 0.44 |
cluster = "village" in lavaan; vce(cluster) in Stata); a multilevel SEM if the village-level construct is itself of interest; or design-based estimation with survey weights (lavaan.survey). The first is enough for most evaluation uses and is the one referees now expect.meanstructure = TRUE in lavaan; Stata's sem includes means by default.| Question | Answer written down |
|---|---|
| What are the constructs, and is each reflective or formative? | A definition and a direction for each, with the source |
| Which items measure which construct, and why? | The mapping, with the questionnaire numbers |
| Which structural paths exist, and in which direction? | The diagram, with a one-line justification per arrow |
| Which paths are deliberately absent? | The list, because it is what makes the model testable |
| Which variables are exogenous? | Named; treatment if randomised, otherwise argued |
| Which covariates, into which equations? | The list and the reason |
| Is the model recursive? | Yes, or the instruments for each loop |
| Is it identified? | The counting rule and the indicator rule, checked |
| Is the data clustered or weighted? | The cluster variable and the weights |
| Are the items ordinal? | Then the estimator is WLSMV and thresholds are in the model |
| Are means needed? | Yes for group comparison, invariance or growth |
| Registered? | Where, when, with the diagram |
| Estimator | Assumes | Use when | Notes |
|---|---|---|---|
| ML (maximum likelihood) | Multivariate normality of continuous indicators; complete data or FIML | Continuous, roughly normal items; the default in most software | Standard errors and χ² wrong under non-normality, usually too small |
| MLR / MLM (robust ML) | Continuous indicators; corrects SEs and χ² for non-normality (Satorra-Bentler) | Continuous items that are skewed, which is most of them | The safe default for continuous data; lavaan estimator = "MLR" |
| FIML | Data missing at random (MAR); used with ML/MLR | Any missing data on the indicators | Uses every case; better than listwise deletion in almost every situation (Enders 2010) |
| WLSMV / DWLS | Latent continuous response behind each ordinal item | Likert with fewer than five categories, binary items | Pairwise-present for missing data by default; needs several hundred cases |
| Bayesian | Priors on parameters | Small samples, complex models, informative prior knowledge | Mplus and blavaan; report priors and sensitivity |
| ULS / GLS | Weaker assumptions; less used | Rarely | Historical interest |
| PLS | None on distributions; composites, not factors | Section 09 | Not a CB-SEM estimator |
missing = "fiml"). Enders (Applied Missing Data Analysis, Guilford, 2010) is the reference.runMI, or accept pairwise-present with caution.| Rule | Says | Status |
|---|---|---|
| n ≥ 200 | A floor for any SEM | A folk rule; often too few for ordinal items or many parameters, sometimes more than needed |
| n:q ≥ 10 (Jackson 2003) | Ten cases per free parameter; 20 preferred | A better rule; 27 parameters need 270–540 |
| Five to ten per indicator | For CFA | Crude; ignores loadings and the number of factors |
| Power for RMSEA (MacCallum, Browne and Sugawara 1996) | n for a given df to detect misfit | Answers the fit question, not the parameter question |
| Monte Carlo simulation (Muthén and Muthén 2002) | Simulate the planned model with expected loadings and effects; find n for adequate power and bias | The right answer; simsem in R, Mplus's Monte Carlo |
| Wolf et al. 2013 (Educ Psychol Meas 73:913) | Required n ranged from 30 to 460 across ordinary models | The evidence that no single rule works |
| Symptom | Likely cause | What to do |
|---|---|---|
| Non-convergence after many iterations | Under-identification; poor starting values; an empirically weak factor | Check identification; simplify; supply starting values from a simpler model |
| Heywood case: negative error variance | Over-fitting; a factor with two indicators; an outlier; a misspecified model | Do not fix the variance to zero and move on; find the cause; consider dropping the two-indicator factor or merging |
| Standardised loading above 1 | As above, or a factor correlation near 1 (two factors are one) | Discriminant validity check; merge factors |
| Correlation between factors above 1 | Two factors are one | Merge, or the model is wrong |
| Enormous standard errors on one parameter | Empirical under-identification | The parameter is not estimable with these data; fix or drop it |
| Non-positive-definite covariance matrix | Linear dependence among items; a mis-coded item; too few cases | Check the correlation matrix; find the duplicate |
| Different results across software | Different defaults (marker, estimator, missing data, means) | Match the defaults; report them |
| Item | Choice | Reason |
|---|---|---|
| Sample | n = 640 women in 32 villages; 14 cases removed for straight-lining (rule set before analysis) | Design; pre-specified screening |
| Items | 11 items across three constructs, all binary or three-category | Questionnaire |
| Estimator | WLSMV on polychoric correlations, with thresholds | Ordinal items; Flora and Curran 2004 |
| Missing data | 3.1% of item responses missing, at most 6% on any item; pairwise-present under WLSMV; multiple-imputation check (m = 20) gave the same loadings to two decimals | Reported and checked |
| Clustering | Village-clustered standard errors | Sampling design |
| Scaling | First loading of each factor fixed at 1; results reported standardised | Convention |
| Software | R 4.4, lavaan 0.6-19, semTools 0.5-6 | Reproducibility |
| Convergence | Normal; no improper values; all standardised loadings between 0.41 and 0.82 | Checked |
se = "bootstrap", bootstrap = 5000 in lavaan; vce(bootstrap) in Stata; a checkbox in AMOS.| Index | Measures | Conventional threshold | Behaviour |
|---|---|---|---|
| RMSEA (Steiger-Lind; Browne and Cudeck 1993) | Misfit per degree of freedom, in the population; with a 90% CI | ≤ 0.06 (Hu and Bentler 1999); ≤ 0.08 acceptable; CI upper bound < 0.10 | Penalises complexity; unreliable with small df; report the CI |
| CFI (Bentler 1990) | Improvement over the null model of no correlations, 0 to 1 | ≥ 0.95; ≥ 0.90 acceptable | Depends on how bad the null is; inflated when items barely correlate |
| TLI / NNFI | As CFI, with a parsimony penalty; can exceed 1 | ≥ 0.95 | As CFI |
| SRMR | Average standardised residual correlation | ≤ 0.08 | The most direct; not affected by n in the same way |
| AIC, BIC | Likelihood with a complexity penalty | Lower is better; no absolute meaning | For comparing non-nested models on the same data |
| GFI, AGFI | Historical | Do not report | Depend on n; superseded |
| Case | χ² (df) | RMSEA [90% CI] | CFI | SRMR | Reading |
|---|---|---|---|---|---|
| A. 3-factor CFA, n = 640, WLSMV | 112.4 (41), p < .001 | 0.052 [0.041, 0.064] | 0.96 | 0.048 | Rejected by χ² as expected at this n; approximate fit is acceptable on every index; check residuals for the location of misfit |
| B. Same model, n = 140 | 48.7 (41), p = 0.19 | 0.037 [0.000, 0.078] | 0.97 | 0.071 | Not rejected, but the RMSEA CI runs to 0.078 and SRMR is near its limit: the data cannot distinguish good fit from mediocre |
| C. Structural model with 6 constructs, 24 items, n = 640 | 612.0 (237), p < .001 | 0.050 [0.045, 0.055] | 0.91 | 0.062 | CFI at the lenient threshold, RMSEA good: typical of large models where CFI suffers; acceptable, with the misfit located and reported |
lavTestLRT) is needed; the raw difference of scaled χ² values is not χ² distributed.| Model | χ² (df) | RMSEA [CI] | CFI | TLI | SRMR | Δχ² (Δdf) vs M1 |
|---|---|---|---|---|---|---|
| M1: three correlated factors | 112.4 (41) | 0.052 [0.041, 0.064] | 0.96 | 0.95 | 0.048 | — |
| M2: one factor | 418.3 (44) | 0.115 [0.105, 0.126] | 0.77 | 0.71 | 0.104 | 306 (3), p < .001 |
| M3: second-order factor over the three | 115.0 (41) | 0.053 [0.042, 0.065] | 0.96 | 0.95 | 0.050 | 2.6 (0), not nested with M1 in df; equivalent fit |
| M4: M1 with d5 dropped | 78.9 (32) | 0.048 [0.035, 0.061] | 0.97 | 0.96 | 0.041 | Different items; not comparable by χ² |
| Practice | What it does | Tell-tale sign |
|---|---|---|
| Freeing correlated errors from modification indices | Improves fit by describing noise | Several error correlations with no substantive rationale; fit 'after modification' only |
| Deleting items until AVE and fit pass | Changes the construct to whatever the survivors measure | A 12-item scale reported with 6 items and no account of the other 6 |
| Item parcelling (averaging items into a few composites) | Hides item-level misfit; inflates fit | Two or three 'indicators' per factor that are themselves averages; no item-level CFA |
| Reporting the model that converged | Survivorship | No mention of alternatives tried or of warnings |
| Reporting χ²/df instead of χ² and p | Obscures rejection | The ratio without the components |
| Choosing lenient thresholds after seeing the values | Moves the goalposts | Citations to whichever paper's cutoff the model clears |
| Fitting a saturated structural model | Nothing to test | df of the structural part is zero; fit is the CFA's fit |
| Comparing WLSMV indices against ML cutoffs | Flatters the model | WLSMV with CFI = 0.99 on a model that looks ordinary |
| Path | Std. estimate | SE | 95% bootstrap CI | Reads as |
|---|---|---|---|---|
| a: membership → savings (latent) | 0.38 | 0.05 | [0.28, 0.48] | Members score 0.38 SD higher on the savings factor |
| b: savings → decide (latent) | 0.31 | 0.06 | [0.19, 0.42] | Savings behaviour predicts decision-making, membership held constant |
| c′: membership → decide (direct) | 0.09 | 0.05 | [−0.01, 0.19] | Direct effect small and imprecise |
| ab: indirect | 0.12 | 0.03 | [0.07, 0.18] | The indirect path is clear |
| Total (c′ + ab) | 0.21 | 0.05 | [0.11, 0.30] | Overall association of membership with decision-making |
| R² savings | 0.14 | |||
| R² decide | 0.12 |
| Quantity | Report | Interpretation |
|---|---|---|
| Structural path, standardised (β) | Estimate, SE, 95% CI | SD change in the outcome per SD change in the predictor, other predictors held constant |
| Structural path, unstandardised (B) | Estimate, SE, CI, in the marker indicator's units | Needed when the predictor is binary (treatment): the effect in latent-outcome units |
| Treatment effect on a latent outcome | Latent mean difference / reference-group latent SD | A Cohen's d corrected for measurement error |
| Indirect effect | Standardised and unstandardised, bootstrap CI | Product of paths; its interval is the test |
| R² of each endogenous construct | Value | Share of the construct's variance explained; small values are common and honest |
| f² for a path | (R²with − R²without) / (1 − R²with) | Cohen's local effect size; 0.02, 0.15, 0.35 are his small, medium, large, and are too demanding for field data |
| Factor loadings | Standardised, with SE | Measurement quality; not effect sizes |
model <- '
# measurement
savings =~ s1 + s2 + s3
decide =~ d1 + d2 + d3 + d4
# structural
savings ~ a*member + age + educ + hhsize
decide ~ cp*member + b*savings + age + educ + hhsize
# effects
ab := a*b
total := cp + a*b
'
fit <- sem(model, data = df, ordered = c("s1",...,"d4"),
cluster = "village", se = "bootstrap", bootstrap = 5000)a*, b*) name parameters; := defines a new quantity from them and gives it a standard error and, with the bootstrap, an interval. The covariates enter both endogenous equations. Note the limitation: lavaan's bootstrap and its ordinal estimator do not combine in every version, and clustered bootstrapping needs care; check the current documentation and say what was done.sem (Savings -> s1 s2 s3) (Decide -> d1 d2 d3 d4) (Savings <- member age educ hhsize) (Decide <- member Savings age educ hhsize), vce(cluster village), then estat teffects for indirect effects, and bootstrap around it.| Pitfall | Consequence | Fix |
|---|---|---|
| Saturated structural model | Nothing tested; fit is the CFA's | Omit paths the theory does not need; compare with alternatives |
| Baron-Kenny steps as the mediation test | Low power; wrong logic | Bootstrap the indirect effect |
| 'Full mediation' claimed from a non-significant direct path | Sample-size artefact | Report effects and intervals; drop the labels |
| Cross-sectional mediation read as process | Maxwell and Cole (2007) show the bias can be any size and sign | Longitudinal design, or say 'consistent with' |
| Interaction without simple slopes | Uninterpretable | Plot at ±1 SD; Johnson-Neyman |
| Many mediators and moderators on a small sample | One significant result out of many; a finding by chance | Pre-specify one; treat others as exploratory |
| Standardised effects of a binary treatment | Meaningless SD of a dummy | Unstandardised, or the latent d |
| Covariates in some equations and not others without reason | Hidden restrictions | State the rule and apply it |
| Reversed arrows fit identically | Direction asserted, not tested | Name the equivalent model; use design |
| Level | Constrained equal across groups | Licenses | Typical outcome |
|---|---|---|---|
| Configural | Nothing; the same pattern of loadings | The construct has the same structure | Usually holds |
| Metric (weak) | Loadings | Comparing relationships (paths, correlations) across groups | Usually holds, or nearly |
| Scalar (strong) | Loadings and intercepts (thresholds for ordinal items) | Comparing latent means; pooling groups | Often fails on one or two items; partial scalar invariance is the common result |
| Strict | Plus error variances | Comparing observed (summed) scores | Often fails; rarely needed, since latent comparisons do not require it |
measEq.syntax writes the models correctly.| Model | χ² (df) | CFI | RMSEA | Δχ² (Δdf), p | ΔCFI | Verdict |
|---|---|---|---|---|---|---|
| Configural | 96.2 (82) | 0.981 | 0.033 | — | — | Same structure in both |
| Metric | 108.9 (90) | 0.975 | 0.036 | 12.7 (8), 0.12 | −0.006 | Loadings equal: holds |
| Scalar | 151.3 (98) | 0.930 | 0.058 | 42.4 (8), < .001 | −0.045 | Fails |
| Partial scalar (d3 and m2 thresholds freed) | 117.6 (94) | 0.969 | 0.040 | 8.7 (4) vs metric, 0.07 | −0.006 | Holds with two items freed |
| Latent mean difference (Bangla − Hindi), under partial scalar | −0.18 SD, 95% CI [−0.36, 0.00] |
group = "language", group.equal = c("loadings", "intercepts"), then equality labels on the paths.library(semTools)
cfg <- cfa(model, df, group = "lang", ordered = items)
met <- cfa(model, df, group = "lang", ordered = items,
group.equal = "loadings")
sca <- cfa(model, df, group = "lang", ordered = items,
group.equal = c("loadings", "thresholds"))
compareFit(cfg, met, sca)
lavTestScore(sca) # which constraints to release
# or, for the correct ordinal sequence:
measEq.syntax(model, df, group = "lang", ordered = items,
ID.cat = "Wu.Estabrook.2016", group.equal = ...)sem ..., group(lang) ginvariant(mcoef) and estat ginvariant. Mplus: MODEL = CONFIGURAL METRIC SCALAR in one line. AMOS: the multigroup wizard. All produce the same table; the judgement about partial invariance is the analyst's.| A defensible reason | Why |
|---|---|
| The constructs are formative composites (an index of adoption barriers, a service-quality composite) | CB-SEM handles formative constructs awkwardly; PLS is built for them |
| The goal is prediction of a target construct, evaluated out of sample | PLS maximises explained variance and PLSpredict assesses it honestly |
| The model is complex relative to the sample and CB-SEM will not converge | PLS always converges; the estimates are still to be read with the composite caveat |
| Exploratory theory building in a new domain | No fit test to fail; the structure can be revised and reported as exploratory |
| Secondary data with single-item and archival measures | Composites of one item are fine; factors of one item are not |
| A convenient reason | Why it does not hold |
|---|---|
| 'The sample is small' (n = 120) | Goodhue, Lewis and Thompson (MIS Quarterly 2012, 36:981): PLS has no more power than regression at small n; it just produces numbers |
| 'The data are non-normal' | Robust ML and WLSMV handle non-normality in CB-SEM; PLS's distribution-free property is about estimation, not inference |
| 'PLS does not require a fit test' | That is a cost, not a benefit; the model is not tested against the data |
| 'The 10-times rule says 100 is enough' | The rule is discredited; use the inverse-square-root method (Kock and Hadaya, Information Systems Journal 2018, 28:227) or a power analysis |
| 'Everyone in my field uses it' | True, and the field's replication record is the argument against |
| Construct type | Criterion | Threshold (Hair et al. 2019, 2022) | Notes |
|---|---|---|---|
| Reflective | Indicator loadings | ≥ 0.708 (so loading², the indicator reliability, ≥ 0.5) | Loadings 0.4–0.7 retained only if deletion does not raise CR or AVE above threshold |
| Reflective | Internal consistency: Cronbach's α, ρA (Dijkstra-Henseler), composite reliability ρc | 0.70–0.95; ρA is the recommended one | Above 0.95 signals redundant items |
| Reflective | Convergent validity: AVE | ≥ 0.50 | As in CB-SEM |
| Reflective | Discriminant validity: HTMT | < 0.85 (conceptually distinct) or 0.90; bootstrap CI excludes 1 | Fornell-Larcker and cross-loadings are no longer sufficient |
| Formative | Convergent validity: redundancy analysis | Correlation ≥ 0.70 with a single global item measuring the same construct | Requires the global item to have been asked; plan it in the questionnaire |
| Formative | Collinearity: VIF of indicators | < 3 (ideal), < 5 (tolerable) | High VIF means indicators overlap; the weights become unstable |
| Formative | Outer weights significance and relevance | Weight significant by bootstrap; if not, retain if loading ≥ 0.5 and theory supports | Deleting a formative indicator changes the construct |
| Criterion | Threshold or reading | Notes |
|---|---|---|
| Collinearity among predictor composites (VIF) | < 3 | Above 5 the path coefficients are unreliable |
| Path coefficients | Sign, size, bootstrap CI (10,000 subsamples, percentile) | The estimate and interval, not stars |
| R² of endogenous constructs | Hair's 0.75 / 0.50 / 0.25 as substantial / moderate / weak are from marketing and far too demanding for field data; report and interpret in context | Adjusted R² when comparing models |
| f² effect size | 0.02 / 0.15 / 0.35 (Cohen) | The change in R² when a predictor is removed |
| Predictive relevance | PLSpredict (Shmueli et al., European Journal of Marketing 2019, 53:2322): out-of-sample RMSE of the PLS model versus a linear-model benchmark on the indicators | Replaces the older blindfolding Q²; if PLS does not beat the benchmark on most indicators, the model has no predictive power |
| Model fit (approximate) | SRMR < 0.08 (Henseler et al. 2014); dULS, dG bootstrap tests | Contested; report SRMR and say it is approximate |
| Mediation, moderation | As in CB-SEM: bootstrapped indirect effects; interaction terms with simple slopes | Two-stage approach for interactions |
| Construct | Type | Items | ρA | AVE | HTMT max | R² | Notes |
|---|---|---|---|---|---|---|---|
| Performance expectancy | Reflective | 4 | 0.86 | 0.64 | 0.71 | — | All loadings > 0.75 |
| Effort expectancy | Reflective | 3 | 0.81 | 0.61 | 0.71 | — | |
| Social influence | Reflective | 3 | 0.78 | 0.58 | 0.55 | — | One loading 0.66, retained |
| Adoption barriers | Formative | 5 | — | — | — | — | VIF < 2.4; redundancy r = 0.74; two weights not significant, loadings > 0.5, retained |
| Intention to adopt | Reflective | 3 | 0.89 | 0.73 | 0.71 | 0.42 | |
| Use (self-reported transactions) | Single item | 1 | — | — | — | 0.19 | PLSpredict: PLS RMSE lower than LM benchmark on the item; Q²predict = 0.11 |
| Tool | Cost | Strengths | Limits |
|---|---|---|---|
| SmartPLS 4 (Ringle, Wende and Becker) | Licence; free student and time-limited trial licences | Menu-driven, complete: PLSc, bootstrapping, PLSpredict, HTMT with CIs, mediation, moderation, multigroup, necessary condition analysis, and a CB-SEM module since version 4 | Cost; point-and-click makes the analysis hard to reproduce unless the project file is shared |
| SEMinR (R) | Free | Readable syntax that mirrors the PLS-SEM vocabulary; bootstrapping, PLSc, PLSpredict, plots; the Hair et al. companion package | R |
| cSEM (R) | Free | Composite and factor models in one framework; tests of overall fit; the methodologically most complete | Less friendly documentation |
| plspm (R) | Free | The older standard; still works | Fewer recent methods |
| ADANCO | Licence | Henseler's package; strong on composite models and fit tests | Smaller user base |
| Python: semopy (CB), plspm port | Free | For pipelines | PLS coverage is thinner than R's |
| Section | Report |
|---|---|
| Justification | Why PLS-SEM rather than CB-SEM, in terms of the question and the constructs' status (composite or factor) |
| Model | The diagram; each construct's measurement type; the theory behind each path |
| Data | Sample, sampling, n, missing data and treatment, distributional summary, power analysis or inverse-square-root n |
| Settings | Software and version; weighting scheme (path); PLSc or not; bootstrap subsamples (10,000), interval type; PLSpredict folds and repetitions; seed |
| Outer model | The full table from the outer-model slide, initial and final item sets, deletions with reasons |
| Inner model | VIF; paths with bootstrap CIs; R², f²; PLSpredict results against the LM benchmark; SRMR |
| Additional analyses | Mediation, moderation, multigroup (with MICOM invariance test for composites), as pre-specified |
| Limitations | Cross-sectional, self-report, composite measurement, the causal status of the paths |
| Availability | The data and the SmartPLS project file or R script |
| Pitfall | Fix |
|---|---|
| Chosen because CB-SEM would not fit | Say so, and present the CB-SEM misfit as a finding about the model |
| Reflective constructs with ordinary PLS and no PLSc | PLSc, or argue the composite status |
| Fornell-Larcker only for discriminant validity | HTMT with bootstrap CI |
| R² interpreted with marketing benchmarks | Contextual interpretation; compare with the literature's values |
| No out-of-sample prediction | PLSpredict against the LM benchmark |
| Item deletion to pass thresholds | Report initial and final sets; do not delete formative indicators |
| 5,000 bootstrap samples with bias-corrected intervals reported as p < 0.001 on everything | 10,000 percentile; report intervals |
| Multigroup comparison without MICOM | Test measurement invariance of composites first (Henseler, Ringle and Sarstedt 2016) |
| Convenience sample of 150 students generalised to 'consumers in India' | Describe the sample as what it is |
| Causal language throughout | Section 10: 'is associated with', 'predicts' |
| Model | χ² (df) | CFI | Method variance share | Key path (savings → decide) | Reading |
|---|---|---|---|---|---|
| Substantive CFA only | 112.4 (41) | 0.96 | — | 0.31 [0.19, 0.42] | Baseline |
| Plus unmeasured latent method factor (equal loadings) | 104.1 (40) | 0.97 | 8% | 0.27 [0.15, 0.39] | Some method variance; path attenuated a little |
| Plus CFA marker (attitude to cricket, 3 items) | 128.6 (60) | 0.96 | 5% | 0.28 [0.16, 0.40] | Consistent with the ULMC |
| Outcome from a different source (husband's report of who decides) | n/a | n/a | n/a | 0.19 [0.06, 0.32] | The procedural check: smaller, still present |
| Design | Path | Verb | Example sentence |
|---|---|---|---|
| Randomised X | X → latent Y | raises, reduces, has an effect of | 'Membership raises the latent decision-making score by 0.21 SD (95% CI 0.11 to 0.30).' |
| Randomised X, observed M | X → M → Y | is consistent with mediation through; the indirect association | 'The pattern is consistent with mediation through savings; the mediator was not assigned.' |
| Observational, well-controlled, DAG-justified | X → Y | is associated with; predicts; under the assumptions in Figure 1, the estimated effect is | 'Under the adjustment set in Figure 1, savings behaviour is associated with a 0.31 SD higher score.' |
| Observational, cross-sectional, self-report | Any | is associated with; correlates with | 'Performance expectancy is associated with adoption intention (β = 0.31).' |
| Panel with RI-CLPM | Cross-lagged | precedes; within-person increases in X are followed by | 'Within-person increases in trust are followed by increases in participation the next year.' |
| Any | Good fit | the data are consistent with the model; the model was not rejected | Never 'the model is confirmed' or 'proven' |
| Check | What it tests | Report |
|---|---|---|
| Alternative estimator (ML vs WLSMV; PLS vs PLSc) | Sensitivity to distributional treatment | Paths and fit under each |
| Equivalent model | Whether the data can distinguish your story from a rival | Name one, show the fit is the same, argue the choice |
| Item deletion reversed | Whether the results depend on the items dropped | Paths with the full item set |
| Method factor | Common method variance | Paths with and without |
| Mediation sensitivity | Unmeasured mediator-outcome confounding | ρ at which the indirect effect vanishes |
| Cross-validation | Modifications capitalising on chance | Fit on the holdout half |
| Subsample stability | Enumerator, district, language effects | Multigroup or dummies; anything that changes the story |
| Covariate sensitivity | Dependence on the adjustment set | Paths with the minimal and the full set |
| Missing-data assumption | MAR | FIML vs multiple imputation; a pattern-mixture bound |
| Tool | Cost | Strengths | Limits |
|---|---|---|---|
| lavaan (R; Rosseel, J Stat Softw 2012, 48(2)) | Free | The reference implementation: CFA, SEM, multigroup, ordinal (WLSMV), FIML, MLR, bootstrap, growth, multilevel; readable syntax; semTools for invariance and reliability, semPlot for diagrams | Latent interactions need workarounds; some ordinal-plus-missing combinations are awkward |
| Mplus (Muthén and Muthén) | Licence | The most complete: latent interactions (XWITH), mixtures, Bayesian, complex survey designs, alignment | Cost; syntax; closed |
Stata sem / gsem | Licence | Clean integration with survey data (svy), clustering, weights; gsem for ordinal and multilevel; estat commands for fit, invariance, effects | No WLSMV; ordinal models via gsem are slower and lack the usual fit indices |
| IBM SPSS AMOS | Licence (SPSS add-on) | Drawing interface; bootstrap; the tool most Indian universities teach | No robust ML, no ordinal estimator, no FIML with ordinal; encourages modification-index fishing |
| JASP and jamovi (SEMLj) | Free | lavaan with menus; good for learning and for departments without R | Fewer options exposed |
| semopy (Python) | Free | lavaan-style syntax in Python; pipelines | Younger; fewer estimators |
| OpenMx, blavaan (R) | Free | Flexible matrix specification; Bayesian SEM | Specialist |
| Element | Content | Source |
|---|---|---|
| Theory and model | The diagram, every hypothesised path, the omitted paths, the constructs' definitions and status | Kline 2023, ch. 18; APA JARS-Quant SEM table (Appelbaum et al., American Psychologist 2018, 73:3) |
| Sample and data | n, design, missingness, screening, distributions, clustering, weights | Jackson, Gillaspy and Purc-Stephenson, Psychological Methods 2009, 14:6 |
| Measurement | Items (in an appendix, in every language), loadings with SEs, reliability (ω), AVE, discriminant validity, invariance where groups are compared | Hoyle and Isherwood, Archives of Scientific Psychology 2013, 1:14 |
| Estimation | Estimator and why; missing-data method; software and version; identification; convergence; improper solutions | As above |
| Fit | χ² (df, p, scaling), RMSEA with CI, CFI, TLI, SRMR; residuals; nested comparisons; every modification with reason | Section 06 |
| Structural results | Unstandardised and standardised paths with SEs and CIs; indirect effects with bootstrap CIs; R² | Section 07 |
| Causal status | The design, the assumptions, the equivalent models, the sensitivity analyses, the verbs | Section 10 |
| Reproducibility | Data (or synthetic data with the covariance matrix), the syntax, the correlation matrix with SDs in an appendix | A covariance matrix and n is enough to refit any CB-SEM |
| Item | What to write |
|---|---|
| Constructs | Name, definition, reflective or formative, the items (numbered) that measure each |
| Model | The diagram; the list of paths with predicted signs; the omitted paths |
| Hypotheses | Each as a path or a comparison, with the effect size that would matter |
| Sample | Planned n and the power analysis or simulation behind it; the sampling design |
| Estimation | Estimator; missing-data treatment; clustering; software |
| Fit criteria | The indices and the thresholds that will be used, chosen now |
| Modification policy | 'No post hoc modifications' or the specific class allowed (e.g. correlated errors between items with shared stems), with the rule for reporting |
| Invariance | The groups to be compared and the level required before comparison |
| Mediation and moderation | Which effects, which bootstrap, which sensitivity analysis |
| Exploratory | What will be reported as exploratory if run |
| Step | Decision | Section |
|---|---|---|
| Question | Does an SHG programme raise women's decision-making, and does it work through savings? | 01 |
| Instrument | 12 items adapted from a published scale; translated into Hindi and Bangla with cognitive interviews; pilot EFA on n = 180 gives three factors | 02, 03 |
| Design | Village-level randomisation; baseline and endline; n = 640 women | 04, 10 |
| Registration | Diagram, hypotheses, estimator, fit criteria, invariance plan on OSF before endline | 11 |
| Measurement | CFA per wave and language; WLSMV; d5 dropped with reason; partial scalar invariance across languages (two thresholds freed) and waves (one) | 02, 05, 08 |
| Structural | Treatment → savings → decide with covariates; village-clustered; 5,000 bootstrap; CFA-then-structural comparison | 06, 07 |
| Finding (illustrative) | Latent treatment effect on decide 0.21 SD [0.11, 0.30]; indirect through savings 0.12 [0.07, 0.18]; sensitivity ρ = 0.28 | 07, 10 |
| Robustness | Summed-score effect; ML vs WLSMV; method factor; different-source outcome for a subsample; equivalent model stated | 10 |
| Report | Measurement table, invariance table, structural table, two figures, correlation matrix and syntax in the appendix | 11 |
| Error | Section | Fix in one line |
|---|---|---|
| Formative construct modelled as reflective | 02 | Decide the direction from theory; PLS or MIMIC for formative |
| ML on binary or skewed Likert items | 05 | WLSMV or MLR |
| Listwise deletion | 05 | FIML or multiple imputation |
| Fit reached by modification indices | 06 | Report the original model; justify each change; cross-validate |
| χ²/df and GFI as fit evidence | 06 | χ² with df and p, RMSEA with CI, CFI, TLI, SRMR |
| Saturated structural model reported as tested | 07 | Omit theoretically absent paths; compare with rivals |
| Mediation by Baron-Kenny steps, or 'full mediation' claimed | 07 | Bootstrap the indirect effect; report intervals |
| Groups or languages compared without invariance | 08 | Configural, metric, scalar; partial if needed |
| PLS-SEM chosen for small n or non-normality | 09 | State a defensible reason or use CB-SEM |
| Causal verbs from cross-sectional self-report | 10 | Associated with; predicts |
| No common-method check in a single-source survey | 10 | Procedural remedy at design; ULMC or marker after |
| No correlation matrix, syntax or data | 11 | Appendix and repository |
| Measurement | Done |
|---|---|
| Each construct defined and its reflective or formative status stated | |
| Items listed, with translations, in an appendix | |
| CFA fit reported in full; residuals inspected | |
| Loadings with SEs; ω; AVE; HTMT or equivalent | |
| Estimator matched to the items; missing data handled and reported | |
| Invariance tested for every group and wave comparison | |
| Item deletions and modifications listed with reasons |
| Structure and claims | Done |
|---|---|
| Structural model compared with the CFA and with at least one rival | |
| Paths with SEs and CIs, unstandardised and standardised | |
| Indirect effects bootstrapped; sensitivity analysis where the mediator was not assigned | |
| Clustering and weights handled | |
| Common method bias addressed procedurally or statistically | |
| An equivalent model named and argued against | |
| Verbs scaled to the design | |
| Correlation matrix, SDs, n and syntax available |
| Resource | What it covers | Notes |
|---|---|---|
| Kline, Principles and Practice of Structural Equation Modeling (5th ed., Guilford, 2023) | Everything in sections 01 to 08 and 10, with the arguments | The first book to buy |
| Rosseel, lavaan tutorial (lavaan.ugent.be) and J Stat Softw 2012, 48(2) | The software, with worked examples | Free |
| Brown, Confirmatory Factor Analysis for Applied Research (2nd ed., Guilford, 2015) | CFA in depth: ordinal items, invariance, higher-order models | For sections 02, 03, 08 |
| Bollen, Structural Equations with Latent Variables (Wiley, 1989) | The theory | Reference |
| Hayes, Introduction to Mediation, Moderation, and Conditional Process Analysis (3rd ed., Guilford, 2022) | Section 07 with observed variables | PROCESS |
| Enders, Applied Missing Data Analysis (Guilford, 2010; 2nd ed. 2022) | Missing data | Section 05 |
| Putnick and Bornstein, Developmental Review 2016, 41:71 | Measurement invariance: a review and guide | Section 08 |
| Hair, Hult, Ringle and Sarstedt, A Primer on PLS-SEM (3rd ed., Sage, 2022); Rönkkö et al. 2016 | PLS-SEM, from both sides | Section 09 |
| Bollen and Pearl 2013; Antonakis et al. 2010; Imai, Keele and Tingley 2010 | Causality, claims, and mediation sensitivity | Section 10 |
| Podsakoff et al. 2003, 2012 | Common method bias | Section 10 |
| ImpactMojo: Survey Design 101, Item Response Theory 101, Impact Evaluation 101, Econometrics 101 | The instrument, the items, the designs, the regressions | impactmojo.in/101-courses/ |