Survey data analysis: reliability, EFA, KMO and regression online
This free tool runs Cronbach's alpha, EFA with the KMO and Bartlett tests, Pearson correlations and multiple regression the way SPSS does, in your browser; on the public mobi data set its regression coefficients match Python's statsmodels to the third decimal. Common cut-offs: alpha of .70 or above (Nunnally, 1978) and KMO of .50 or above (Kaiser, 1974). Upload an Excel or CSV file and it screens out invalid responses, analyses every scale and writes a numbered Results chapter with APA tables that you can download as a Word file.
- Upload your Excel or CSV survey file, or try the sample data
- Check the constructs, scale range, reverse-coded items and dependent variable
- Click Analyse, then copy or download the Results chapter (Word)
CODE: item1 item2 …. The tool has grouped the columns by name; edit if needed. Each construct needs at least 2 items.Was this tool useful? Feedback / report a bug (by email; please do not paste real data).
How to use it
- Prepare the file. One row per respondent. Name each item with its construct code plus a number so the tool can group the items: PU1, PU2, PEOU_1, prefixed codes such as TPB_ATT1, or Qualtrics-style Q1_1. ATT1–ATT4 are read as an Attitude construct, not as an attention check.
-
Check what the tool recognised: the header row (for a two-row merged Excel header, pick the row with the
codes), the scale range (1–5, 1–7…), the constructs (
CODE: item1 item2 …), reverse-coded items, the attention check (for exampleAC1=2) and the demographic variables. - Choose the dependent variable, how to run the EFA (independent and dependent variables separately, or all items together), the extraction and rotation, the number of factors, and any hypotheses that predict a negative effect. Then click Analyse.
Text answers on the standard 5-point agreement scale (Strongly disagree … Strongly agree) are converted to 1–5 automatically, and 6- or 7-point labels with "Somewhat agree" to 1–6 or 1–7; the tool tells you when it does so. The file is read in your browser and never uploaded, and 10,000 responses × 40 items run in a few seconds.
What it computes
- Screening: responses that fail a screening question, have missing answers (listwise), fail the attention check or give the same answer to every item are removed, and section 4.1 reports how many were dropped for each reason. Zero-variance and duplicated items are removed with a warning.
- Reliability: Cronbach's alpha with the SPSS Item-Total Statistics table (Corrected Item-Total Correlation, Cronbach's Alpha if Item Deleted).
- EFA following the conventions of SPSS FACTOR: Principal Components, Principal Axis Factoring or Maximum Likelihood (Jöreskog, 1967) extraction; Varimax (Kaiser, 1958), Promax with kappa = 4 (Hendrickson & White, 1964) or Direct Oblimin (Jennrich & Sampson, 1966) rotation with Kaiser normalisation. You get the KMO measure and Bartlett's test of sphericity, Communalities, Total Variance Explained, the rotated matrix (Pattern, Structure and Factor Correlation matrices for oblique rotations) and Horn's (1965) parallel analysis as a check on the number of factors.
- CR, AVE, Fornell–Larcker and HTMT (Fornell & Larcker, 1981; Henseler et al., 2015). Loadings here come from the first principal component of each scale, so they are close to, but not identical with, SmartPLS outer loadings.
- Pearson correlations and OLS regression: R², adjusted R², the F test, B, standard errors, standardised β, t, p and VIF, plus assumption checks (VIF, Durbin–Watson, skewness and kurtosis of the standardised residuals) and a hypothesis table.
- Group comparisons on the dependent variable for each demographic variable: independent-samples t test or one-way ANOVA, Levene's test, Welch's correction when variances differ, and Bonferroni or Tamhane's T2 post hoc tests.
Worked example: regression on the mobi data
Download mobi.csv from the verification page (250 mobile phone customers,
1–10 scales), set the scale to 1 and 10, and choose CUSL (customer loyalty) as the dependent variable. The tool groups
the columns into six constructs by their prefixes and regresses loyalty on the other five. The results match Python's
statsmodels to the third decimal:
- R² = .371, adjusted R² = .358, F(5, 244) = 28.74, p < .001; Durbin–Watson = 2.079; largest VIF = 3.448.
- Significant predictors: satisfaction (β = .398), perceived value (β = .221) and image (β = .210).
- Not significant: expectations (β = .056, p = .370) and perceived quality (β = −.177, p = .061).
Perceived quality has a negative coefficient even though its correlation with loyalty is positive (r = .444). This is a suppression effect: satisfaction carries most of quality's influence on loyalty, so once satisfaction is in the model the remaining direct path of quality turns slightly negative. Report the coefficient as estimated and explain it; do not drop the variable to make the sign "right".
How to read the output
- Normality: skewness and kurtosis within ±2 are acceptable (George & Mallery, 2019); below 3 and 10 in absolute value is not a serious violation (Kline, 2016).
- Reliability: alpha of .70 or above (Nunnally, 1978) and corrected item-total correlations of .30 or above (Nunnally & Bernstein, 1994); CR between .70 and .95 and AVE of .50 or above (Hair et al., 2022).
- EFA: KMO of .50 or above with a significant Bartlett's test means the data are factorable (Kaiser, 1974); extracted variance should reach 50%, and loadings of .50 or above are practically significant (Hair et al., 2010). See what KMO value is acceptable.
- Discriminant validity: the square root of AVE should exceed the inter-construct correlations (Fornell & Larcker, 1981), and HTMT should be below .85, or .90 for conceptually close constructs (Henseler et al., 2015).
- Regression: a significant F means the model explains variance in the outcome; a hypothesis is supported when its coefficient is significant (p < .05) and has the expected sign. VIF of 5 or more is flagged (Hair et al., 2010; see VIF thresholds), and a Durbin–Watson value between 1 and 3 indicates no autocorrelation (Field, 2013).
Reporting it in APA 7
The Results text is written from the numbers above, with tables numbered 4.1, 4.2… and an APA reference list. A typical regression sentence reads: "The model explained 35.8% of the variance in loyalty, F(5, 244) = 28.74, p < .001. Satisfaction had the strongest positive effect (β = .398)." Statistics bounded by 1 (alpha, r, β, p, KMO) are written without a leading zero. Warnings (removed items, unreadable columns, misnamed reverse-coded items) appear above the results and are not part of the text. Check the wording and compare with SPSS the first time you use the tool; for the overall structure see how to write the Results chapter of a quantitative thesis.
FAQ
Can I run an EFA online for free without SPSS?
Yes. Descriptives, Cronbach's alpha, EFA, correlations, regression, t tests, ANOVA and Levene's test give the same results as SPSS with the same options (extraction, rotation, listwise deletion). The EFA was checked against published SPSS 27 output for six data sets and agrees to the eighth decimal; the comparison and data are on the verification page. The tool does not run CFA, CB-SEM or PLS-SEM.
Does it do Principal Axis Factoring with Promax like SPSS?
Yes. Choose Principal axis factoring and Promax. The tool uses the SPSS stopping rules (PAF stops when communalities change by less than .001 or after 25 iterations; Varimax uses RCONVERGE = .0001) and reports Communalities, Total Variance Explained, the Pattern, Structure and Factor Correlation matrices. R's psych::Promax builds its target matrix differently and can differ in the second decimal; this tool follows SPSS.
Where do I find the KMO and Bartlett's test?
In the EFA section: the first paragraph reports KMO and Bartlett's χ², df and p for each EFA. If KMO is below .50, check your sample size with the sample size calculator (at least 5 responses per item), make sure reverse-coded items are declared, and drop items with low item-total correlations one at a time before re-running.
Why are there fewer valid responses than rows in my file?
Section 4.1 lists how many responses were removed for each reason: failed screening question, missing answers, failed attention check, or the same answer to every item. Untick the straightlining option or clear the attention-check box if those rules do not fit your study.
One of the free research tools of Research Corner.