Skip to content

Are the results the same as R and SPSS?

Research Corner · Run on 1 November 2026 · R version 4.6.1 (2026-06-24 ucrt)

Don't trust me. Check against R.

Yes, as far as we have tested. We ran the calculation code of the Research Corner tools (gocnghiencuu.com) on three public datasets and compared 607 numbers with R: Cronbach's alpha, regression, t-tests, ANOVA and PLS-SEM differed by at most 5.0 × 10⁻¹¹, sample sizes matched exactly, and rotated EFA loadings differed by at most 2.4 × 10⁻⁴. For EFA, the tool also matches published SPSS 27 output on 6 matrices to within 6.4 × 10⁻⁹. We have not run SPSS or SmartPLS on these three datasets (we have no licence), so this page never claims "matches SPSS" or "matches SmartPLS" where no real comparison was made.

Summary: how close are the results to R and SPSS?

Each row is one tool. "Maximum difference" is the largest absolute value of "tool's number − reference software's number" across every number compared (coefficients, standard errors, t and p values, R², loadings, AVE, HTMT and so on). Theses report 2 or 3 decimal places, so a difference below 0.0005 does not change the number you write.

Tool Data Compared with Numbers compared Maximum difference
Cronbach's alpha bfi (5 scales), Holzinger-Swineford (3 blocks) psych::alpha 2.6.9 92 4.9 × 10⁻¹¹
EFA, KMO, Bartlett bfi (25 items), Holzinger-Swineford (9 items) psych 2.6.9, EFAtools 1.1.0 (type = "SPSS") 124 2.4 × 10⁻⁴
Multiple linear regression Holzinger-Swineford R's lm() 30 4.8 × 10⁻¹¹
t-test, ANOVA, Levene Holzinger-Swineford, bfi R's t.test(), oneway.test() 14 4.8 × 10⁻¹¹
CFA, CB-SEM Holzinger-Swineford (3-factor CFA), mobi (ECSI structural model) lavaan 0.7.3 227 1.1 × 10⁻⁵
PLS-SEM mobi (ECSI model) seminr 2.6.0 84 5.0 × 10⁻¹¹
Sample size (regression, PLS-SEM) 36 parameter combinations Noncentral F distribution in R; Kock & Hadaya (2018) formula 36 0

The three public datasets

The three CSV files are unmodified exports from the R packages (empty cells are missing values), so you can paste them into the tools and compare with the tables below.

Cronbach's alpha: the tool versus psych::alpha

Across 8 scales, alpha, standardized alpha, corrected item-total correlations and "alpha if item deleted" from the online Cronbach's alpha calculator differ from psych by at most 4.9 × 10⁻¹¹. Each scale uses the respondents who answered every item of that scale.

Scale n Alpha (tool) Alpha (R psych) Lowest corrected item-total correlation (tool / R)
bfi A 2,709 0.7038 0.7038 0.3114 / 0.3114
bfi C 2,707 0.7293 0.7293 0.4553 / 0.4553
bfi E 2,713 0.7609 0.7609 0.4546 / 0.4546
bfi N 2,694 0.8133 0.8133 0.4867 / 0.4867
bfi O 2,726 0.6025 0.6025 0.2199 / 0.2199
HS visual 301 0.6261 0.6261 0.375 / 0.375
HS textual 301 0.8827 0.8827 0.7654 / 0.7654
HS speed 301 0.6885 0.6885 0.4555 / 0.4555

Alpha for bfi O is 0.6, below the commonly used .70 threshold: that is a real property of the data, not a calculation error.

EFA, KMO and Bartlett: the tool versus psych and EFAtools

The survey data analysis tool runs EFA with SPSS defaults: principal axis factoring that stops after 25 iterations or when communalities change by less than 0.001, followed by varimax or promax rotation. The reference is EFAtools with type = "SPSS", an R package that reproduces these steps (Steiner & Grieder, 2020), plus psych for KMO, per-item MSA and Bartlett's test.

Data n, factors KMO (tool / R) Bartlett χ² (tool / R), df Eigenvalue 1 (tool / R) Rotated loadings, maximum difference
bfi 25 items 2,436, 5 0.8486 / 0.8486 18,146.07 / 18,146.07, 300 5.1343 / 5.1343 2.4 × 10⁻⁴
HS x1-x9 301, 3 0.7522 / 0.7522 904.1 / 904.1, 36 3.2163 / 3.2163 2.0 × 10⁻⁵

KMO, MSA, Bartlett and eigenvalues match to 10⁻⁹. Unrotated loadings match to better than 10⁻⁶; the largest difference (2.4 × 10⁻⁴) arises in the rotation step, because the tool and EFAtools stop the rotation iterations at slightly different criteria.

Comparison with real SPSS output. Grieder and Steiner (2022) published SPSS 27 FACTOR output for 6 correlation matrices (the EFAtools package keeps these tables in SPSS_27). Run on the same 6 matrices, the tool's Factor Matrix, Rotated Factor Matrix (varimax) and Pattern Matrix (promax) differ from SPSS 27 by at most 6.4 × 10⁻⁹. This is the only direct comparison with SPSS output on this page.

Multiple linear regression: the tool versus R's lm()

Model: x9 (speeded discrimination) on x1, x4, x7 and age in years (ageyr) for the 301 Holzinger-Swineford pupils. B coefficients, standard errors, t, p, standardized beta, VIF, R², adjusted R², F and Durbin–Watson differ from R by at most 4.8 × 10⁻¹¹.

Statistic Tool R
R² 0.2606 0.2606
Adjusted R² 0.2506 0.2506
F 26.0785 26.0785
B (x1) 0.3121 0.3121
B (x4) 0.0348 0.0348
B (x7) 0.2769 0.2769
B (ageyr) 0.0917 0.0917
Standardized beta (x1) 0.3611 0.3611
Standardized beta (x4) 0.0402 0.0402
Standardized beta (x7) 0.2989 0.2989
Standardized beta (ageyr) 0.0954 0.0954
Durbin–Watson 2.0426 2.0426

t-test, ANOVA and Levene: the tool versus R

Independent-samples t-test: x1 scores by sex (Holzinger-Swineford, 146 and 155 pupils). One-way ANOVA: mean Agreeableness (A1 reversed, through A5) across 5 education levels for 2,493 bfi respondents, with Welch's ANOVA and Levene's test (mean-based, the SPSS default). Maximum difference: 4.8 × 10⁻¹¹.

Statistic Tool R
t (Student, equal variances) 1.4062 1.4062
p (Student) 0.1607 0.1607
t (Welch) 1.4095 1.4095
df (Welch) 298.9025 298.9025
F (one-way ANOVA) 6.017 6.017
F (Welch) 5.9309 5.9309
F (Levene) 1.309 1.309

PLS-SEM: the tool versus seminr

The ECSI model of Tenenhaus et al. (2005) on the mobi data, reduced by dropping perceived quality (PERQ): 6 constructs (Image, Expectation, Value, Satisfaction, single-item Complaints, Loyalty), 9 paths, path weighting scheme. Outer loadings, weights, path coefficients, R², adjusted R², alpha, rho_A, rho_c, AVE and HTMT from the online PLS-SEM tool differ from seminr by at most 5.0 × 10⁻¹¹.

Statistic Tool seminr
Path coefficient Expectation → Satisfaction 0.1672 0.1672
Path coefficient Satisfaction → Loyalty 0.4882 0.4882
Path coefficient Image → Satisfaction 0.4451 0.4451
R² Expectation 0.2565 0.2565
R² Value 0.1286 0.1286
R² Satisfaction 0.5901 0.5901
R² Complaints 0.2801 0.2801
R² Loyalty 0.4578 0.4578
AVE Image 0.4784 0.4784
AVE Expectation 0.4805 0.4805
AVE Value 0.8487 0.8487
AVE Satisfaction 0.6927 0.6927
AVE Loyalty 0.5173 0.5173

AVE below .50 for Image and Expectation is a real property of the mobi data. Bootstrapping is random resampling, so it cannot be compared digit by digit; the tool's bootstrap confidence intervals are checked separately in scripts/check-pls.mjs against 5,000 seminr bootstrap samples, within Monte Carlo error. We have not compared SmartPLS results on these data.

CFA and CB-SEM: the tool versus lavaan

The classic three-factor CFA on Holzinger-Swineford (visual x1–x3, textual x4–x6, speed x7–x9) and the ECSI structural model on mobi (5 multi-item constructs, single-item Complaints, 7 paths), estimated by ML with lavaan defaults. All estimates, standardized coefficients, standard errors and fit indices (χ², CFI, TLI, RMSEA with its confidence interval, SRMR, GFI, AGFI) from the CFA and SEM tool (Vietnamese interface) differ from lavaan by at most 1.1 × 10⁻⁵.

Statistic Tool lavaan
χ² (HS) 85.3055 85.3055
CFI (HS) 0.9306 0.9306
TLI (HS) 0.8958 0.8958
RMSEA (HS) 0.0921 0.0921
SRMR (HS) 0.0652 0.0652
Standardized loading x2 (visual) 0.4236 0.4236
Standardized loading x5 (textual) 0.8551 0.8551
Standardized loading x9 (speed) 0.665 0.665
χ² (mobi) 199.8229 199.8229
CFI (mobi) 0.9379 0.9379
TLI (mobi) 0.9239 0.9239
RMSEA (mobi) 0.0566 0.0566
SRMR (mobi) 0.0493 0.0493
Standardized β VAL → SAT 0.2654 0.2654
Standardized β EXPE → VAL 0.656 0.656
Standardized β SAT → LOY 1.1127 1.1127

Differences of around 10⁻⁵ in a few coefficients arise because lavaan stops its optimizer earlier than the tool: the tool's χ² is never larger than χ² at lavaan's solution. The full test suite (scripts/check-cbsem.mjs) also covers second-order CFA, CFA with cross-loadings, the AMOS χ² convention, a 25-item CFA on bfi, HTMT against semTools, indirect effects and modification indices.

Sample size: the tool versus calculations in R

Sample size for regression is the smallest n at which the F test of R² reaches 80% power at α = .05, computed with the noncentral F distribution as G*Power does (Faul et al., 2009). Sample size for PLS-SEM uses the inverse square root method (Kock & Hadaya, 2018). Across 36 parameter combinations, the sample size calculator gives exactly the same number of respondents as R.

Case (α = .05, 80% power) Tool R
Regression, 2 predictors, f² = 0.15 68 68
Regression, 3 predictors, f² = 0.15 77 77
Regression, 5 predictors, f² = 0.15 92 92
Regression, 8 predictors, f² = 0.15 109 109
Regression, 10 predictors, f² = 0.15 118 118
PLS-SEM, inverse square root, minimum path coefficient 0.1 619 619
PLS-SEM, inverse square root, minimum path coefficient 0.2 155 155
PLS-SEM, inverse square root, minimum path coefficient 0.3 69 69

How to rerun the verification yourself

You do not have to take our word for it. There are two ways to check, from quick to complete:

  1. By hand, 5 minutes. Download bfi.csv, open it in Excel, replace A1 with 7 − A1, delete rows with missing values in A1–A5, and paste the 5 columns into the Cronbach's alpha calculator. Alpha should be 0.7038 with n = 2,709. In R, psych::alpha(na.omit(psych::bfi[, 1:5]), keys = "A1") gives the same value (without na.omit, psych uses pairwise correlations and gives a slightly different value).
  2. In full, with scripts. Run Rscript scripts/kiem_chung_reference.R (requires R with psych, lavaan, seminr, EFAtools and jsonlite) to export the data and reference values, then node scripts/check-kiem-chung.mjs (Node 22) to run the tools' code and print the differences. The verification code is available on request.

The verification script reruns every time the site is updated. If a change to a tool moves any number beyond tolerance, or makes a table on this page no longer true, the site is not published. Beyond this page, each tool has its own test suite on other data (PLS-SEM, for example, is also compared with cSEM and an independent Python implementation).

What this page does not cover

Frequently asked questions

Do the online tools give the same results as SPSS?

The tools are not SPSS, but they use the same formulas. On three public datasets, 607 numbers were compared with R; the largest difference was 2.4 × 10⁻⁴ (rotated EFA loadings), while Cronbach's alpha, regression, t-tests, ANOVA and PLS-SEM differed by less than 10⁻¹⁰. For EFA, the tool matches published SPSS 27 output to within 6.4 × 10⁻⁹.

Is Cronbach's alpha in SmartPLS different from SPSS?

Cronbach's alpha is a closed-form formula (Cronbach, 1951), so SPSS, R and SmartPLS must give the same value on the same data. SmartPLS also reports rho_A and composite reliability (rho_c); these use PLS loadings and therefore differ from alpha. Our PLS-SEM tool reports all three and matches seminr to within 10⁻⁶.

Why do EFA loadings differ in the fourth decimal place?

The difference comes from the rotation step, not the extraction: unrotated loadings match to better than 10⁻⁶. Each program stops the varimax or promax iterations at a slightly different convergence criterion. Theses report loadings to 3 decimal places, so the difference does not change the number you write.

Can I state in my thesis that I analysed my data with these tools?

Yes. Give the tool name, its address and the date you ran it, and if your examiners ask about the software's accuracy, cite this page. Many programmes require SPSS, AMOS or SmartPLS; in that case ask your supervisor first, and use the tools to cross-check your results.

References