🧠 MindStat

User Guide

Everything you need to get started with MindStat Suite and make full use of its features

🚀 Quick Start

Run your first analysis in under two minutes — no installation, no sign-up, everything runs in your browser.

  1. 1
    Open mindstat.pro in your browser — every feature is available instantly with no setup.
  2. 2
    From the main page (Home), pick the module that matches your research and click "Open App".
  3. 3
    Load your data: import CSV / Excel / SPSS, type it directly, or paste from Excel with Ctrl+V.
  4. 4
    From the ribbon along the top pick a tab (Descriptives, Compare Means, Regression, Frequencies…), choose the analysis in the options panel beside it, map variables, then press the blue run button or Ctrl+Enter.
  5. 5
    Read the results, click Verify with R Engine, and read the interpretation card MindStat renders under the result.
  6. 6
    Export from the 📤 Export button (PDF, Word, Excel, CSV) or print with Ctrl+P.
💡 Press ? (question mark) anywhere inside the app to open the keyboard shortcuts modal.

🧩 Modules Hub — What's Inside

The main page (mindstat.pro) is a hub of 13 published modules. Each card opens a dedicated workspace with its own tests, forms, and charts.

Between them they cover 250+ statistical procedures.

Two more cards sit beside them on the hub: SPSS Suite v4, marked BETA, and Systematic Review, which is not open yet.

📊 Statistical Analysis
The main workspace: descriptive stats, t-tests, ANOVA/ANCOVA, correlation, regression, non-parametric tests, mediation/moderation, power analysis, charts — plus Bayesian, Bootstrap, and Mixed Models as built-in panels.
🩺 Biostatistics & Medical
Survival analysis (Kaplan-Meier, Cox regression), diagnostic accuracy (ROC, sensitivity/specificity), epidemiology (relative risk, odds ratio), and clinical trial calculations.
📈 Econometrics
Advanced econometric models: ARIMA, VAR, GARCH, cointegration tests, panel data, Granger causality, unit root tests.
🗺️ Spatial Statistics
Moran's I, Geary's C, spatial autocorrelation, density maps, SAR/SEM spatial regression models.
🧠 SEM / CFA Modeling
Structural equation modeling, confirmatory factor analysis, path diagrams, model fit indices (CFI, TLI, RMSEA, SRMR).
🧪 Experimental Design
CRD, RCBD, Latin Square, Factorial, Split-Plot, ANCOVA, Response Surface Methodology (RSM).
🏭 SPC & Quality
Statistical process control: X̄-R, X̄-S, I-MR, p, np, c, u charts; process capability indices (Cp, Cpk, Pp, Ppk).
📋 SPSS Suite v4 (BETA)
A separate app at /spss/ — Clinic, Audit and Defender. Paste SPSS output for a plain-language and APA 7 interpretation, an assumption audit, and a reviewer-rebuttal generator. Arabic-first.
🎯 Psychometrics
Reliability (Cronbach's α, McDonald's ω), item analysis, IRT basics, scale validation.
🧠 ML Lab
Machine Learning: Random Forest, KNN, SVM, neural networks, K-Means, PCA, hierarchical clustering, autoencoders, cross-validation, and conformal prediction.
🎲 SimLab
Simulation Lab: Monte Carlo studies of Type-I error and power, robustness checks under violated assumptions, CLT demonstrations, and synthetic data generation — all seeded and reproducible.
💡 Bayesian Statistics, Bootstrap & Resampling and Mixed Models each have their own hub card, and each is also reachable from inside the Statistical Analysis module — the Bayesian, Resampling & QC and Mixed Models ribbon tabs load the same page as a panel.

📂 Import Data

Supported Formats

CSV / TSV
UTF-8 files. The separator (comma, semicolon, or tab) is auto-detected per row.
Excel (.xlsx)
Parsed via SheetJS. When the workbook holds more than one sheet, the Statistical Analysis app lists them and asks which number to load; leaving the box blank takes the first sheet.
SPSS (.sav)
Read directly in the browser — variable labels, value labels, and missing codes are preserved.
Manual Entry
Type directly into the editable grid, or paste a block from Excel with Ctrl+V: tab- and newline-separated text fills the grid outward from the selected cell, adding rows and columns as it needs them.

Data Formatting Rules

  • The first row must contain column names (variable headers).
  • International numeral formats (Arabic-Indic ٠-٩, European, thousands separators) are auto-converted to standard numbers.
  • Empty cells, the string 'NA', and 'NaN' are all treated as missing values.
  • Avoid merged cells, multi-row headers, and hidden sheets in Excel — they will not be read correctly.
  • File size: keep datasets under ~10 MB for smooth performance (the app runs entirely client-side).
  • The satellite modules (Econometrics, Spatial, SEM/CFA, SPC and the rest) read the first sheet of a workbook without asking — put your data there before importing into one of them.
🔒 Your dataset never leaves the device: parsing, analysis, charts, exports and storage all happen in the browser, and no dataset is uploaded. Three things do reach the network — the AI assistant when you use it (it sends your message and the current result context), the Google Fonts stylesheet, and GA4 analytics, which runs unless you decline it on the first-visit banner or the Privacy page.

🏷️ Variable Types

After import, MindStat auto-detects each column's type based on the values it contains. You can override the type at any time by clicking the type badge above any column header.

🔢 Metric — Continuous / numeric 🏷️ Nominal — Unordered categories 📊 Ordinal — Ordered categories

How auto-detection works

  • Columns where most values are numeric → Metric (continuous).
  • Columns with few unique text values (e.g., 'Male'/'Female', 'A'/'B'/'C') → Nominal.
  • Integer columns with ≤ ~7 distinct values and a Likert-like range (e.g., 1–5) → suggested as Ordinal.
💡 Setting the correct type matters: categorical variables enable Chi-square, Mann-Whitney, Kruskal-Wallis, and frequency tables; metric variables enable t-tests, ANOVA, Pearson correlation, and regression.

🧰 Data Wrangling (Transform Panel)

Before analyzing, you often need to reshape, clean, or derive new variables. Open Descriptive Statistics → Data → 🛠 Variable Transform in the top ribbon — it bundles six operations:

🔄 Reshape
Pivot from long to wide format or vice versa — useful before running repeated-measures ANOVA or mixed models.
🔍 Filter
Keep only rows matching a condition (e.g., age > 30, group = 'treatment').
🧮 Compute
Create a new variable from a formula — basic arithmetic, log, sqrt, z-score, BMI, etc.
✂️ Split & Analyze
Run the current analysis separately for each level of a grouping variable — like SPSS's 'Split File'.
🔗 Merge
Join a second dataset on a shared key column (inner, left, outer). Useful for combining survey waves or lab results.
🏷 Recode
Convert values to new ones — e.g., bin a continuous age into groups, or map 1/2/3 to 'low'/'medium'/'high'.
↩️ Every transformation is undoable. Press Ctrl+Z to roll back the last change, or Ctrl+Y / Ctrl+Shift+Z to redo.

▶️ Running Analyses

MindStat ships with 250+ procedures across 13 modules — 110 of them in the core Statistical Analysis module alone. The workflow is identical in every module:

  1. 1
    From the ribbon at the top, open the tab you need: Descriptives, Compare Means, Regression, Mixed Models, Frequencies, Factor & SEM, Bayesian, Robust & Causal, Time Series, Machine Learning, Resampling & QC, Tools & Workflow.
  2. 2
    Pick a specific test from the panel's dropdown. The options shown adapt to the type of variables in your dataset.
  3. 3
    Map variables to the required roles — dependent variable, grouping factor, covariates, time, event, etc.
  4. 4
    Press the blue run button (label varies: ▶ Run, ▶ Analyze, ▶ Draw, ▶ Calculate…) or hit Ctrl+Enter.
  5. 5
    Results appear instantly in the output panel: formatted tables, interactive Plotly charts, assumption checks, effect sizes, and a plain-language interpretation.
Every chart is interactive — hover for tooltips, drag to zoom, double-click to reset, and use Plotly's camera icon to save the image as PNG.

Command Log

Every analysis you run is recorded automatically. The Command Log button in the top bar opens a drawer that lists them newest first, where you can re-run an entry, edit it and re-run it, reorder it, or download the whole session as a runnable R or Python do-file.

📦 Batch Analysis & Data Quality

Batch Analysis

Instead of running the same test one variable at a time, use the 📦 Batch Analysis panel to run it across many dependent variables at once. Perfect for reliability studies, survey scales, or screening dozens of biomarkers.

  • Pick the test type (t-test, ANOVA, correlation, normality, descriptive…) from the Batch panel.
  • Select multiple dependent variables (hold Ctrl / Cmd to multi-select).
  • Click 📦 Run Batch — results for every variable appear in one summary table.
  • Click 📥 Export to download the full batch report as CSV or Excel.

Data Quality Dashboard

Before you trust any analysis, check the health of your dataset. Open the 🔍 Data Quality button (next to the data grid) or the 📊 Analyze Quality panel to see:

  • Missing-value counts and percentages per column
  • Distinct-value counts, and mean, median, SD, minimum and maximum for each metric column
  • Outlier counts from Tukey's 1.5 × IQR fences
  • Skewness and a Shapiro-Wilk normality flag for every numeric variable, with a Smart Transform suggestion whenever |skew| exceeds 2
  • A cell that is not a number inside a metric column counts as missing — that is how a stray text value surfaces in the missing column

🗺️ Which Test Should I Use?

Use this decision guide to map your research question, data type, sample size, and normality to the correct statistical test. Each row links directly to the corresponding reference card in the Statistical Reference section below.

💡 When in doubt, ask the Statistical Assistant — describe your data and question in plain language and it will recommend the most appropriate test.
t-Tests / Mean Comparisons
Non-parametric
ANOVA Family
Correlation
Regression
Categorical / Chi-Square
Reliability
My research question Data type n Normality → Use this test
Compare ONE group to a fixed value Metric Any Normal One-sample t-test
Compare ONE group to a fixed value Metric Any Non-normal Wilcoxon Signed-rank
Compare TWO independent groups Metric Any Normal Independent t-test (Welch)
Compare TWO independent groups Metric Any Non-normal Mann-Whitney U
Compare TWO related/paired groups Metric Any Normal Paired t-test
Compare TWO related/paired groups Metric Any Non-normal Wilcoxon Signed-rank
Compare THREE+ independent groups Metric Any Normal One-Way ANOVA
Compare THREE+ independent groups Metric Any Non-normal Kruskal-Wallis
Compare THREE+ related measurements Metric Any Normal Repeated-Measures ANOVA
Compare THREE+ related measurements Metric Any Non-normal Friedman Test
Relationship between 2 metric variables Both Metric Any Normal Pearson r
Relationship between 2 ordinal/non-normal Ordinal Any Any Spearman ρ
Predict one variable from another Metric ≥ 20 Normal residuals Linear Regression
Predict binary outcome Binary DV ≥ 50 Any Logistic Regression
Association between categorical variables Categorical n ≥ 20 N/A Chi-Square
Association between categorical variables Categorical n < 20 N/A Fisher's Exact
Scale reliability Ordinal / Metric ≥ 30 N/A Cronbach's Alpha

📘 Statistical Reference — Formulas & When to Use

A concise academic reference for the tests you will use most often in MindStat — what each test answers, when it applies, its assumptions, the underlying formula, and how to read the output. Every card links a specific test in the app to its mathematical foundation.

📐 Mathematical formulas are rendered as native MathML. Use this section alongside the Statistical Assistant for deeper explanations of any symbol or step.
1 · Descriptive Statistics
Arithmetic Mean M, x̄
The centre of gravity of a numeric variable.
x ¯ = 1 n i = 1 n x i
When
Use with metric (continuous) variables that are roughly symmetric and free of extreme outliers. Sensitive to skew.
Read as
Report with standard deviation: M = 42.3 (SD = 5.1).
Sample Standard Deviation SD, s
Average distance of observations from the mean.
s = 1 n 1 i = 1 n ( x i x ¯ ) 2
Why n-1
Bessel's correction gives an unbiased estimate of the population variance from a sample.
Read as
A small SD means observations cluster near the mean; a large SD means they spread out.
Standard Error of the Mean SE, SEM
S E = s n
Meaning
The expected variability of the sample mean across repeated samples — the foundation of every confidence interval and t-test.
Skewness & Kurtosis
G 1 = n ( n 1 ) ( n 2 ) ( x i x ¯ s ) 3 G 2 = n ( n + 1 ) ( n 1 ) ( n 2 ) ( n 3 ) ( x i x ¯ s ) 4 3 ( n 1 ) 2 ( n 2 ) ( n 3 )
What MindStat computes
The type-2 estimators G₁ and G₂ — the ones SPSS and Excel report. s is the sample standard deviation (n − 1 denominator), and G₂ is excess kurtosis, so 0 is the normal value. Kurtosis needs n ≥ 4.
Rule of thumb
|skew| < 1 and |kurtosis| < 1 is usually 'normal enough' for parametric tests.
2 · Normality & Assumption Checks
Shapiro-Wilk Test W
Gold standard for testing whether a sample comes from a normal distribution.
W = ( i = 1 n a i x ( i ) ) 2 i = 1 n ( x i x ¯ ) 2
H₀
The data are drawn from a normal distribution.
Decision
If p < .05 reject normality. Use with n between 3 and 5000.
Caveat
With very large samples it rejects tiny, meaningless deviations — always inspect a Q-Q plot alongside.
Levene's Test for Homogeneity of Variance F
W = ( N k ) ( k 1 ) i = 1 k n i ( z ¯ i z ¯ ) 2 i = 1 k j = 1 n i ( z i j z ¯ i ) 2
Where
z_ij = |x_ij − median_i| (the robust Brown-Forsythe variant MindStat uses).
Purpose
Checks the equal-variances assumption before pooling t-tests or ANOVA. If p < .05 use Welch's correction.
3 · t-Tests (Comparing Means)
One-Sample t-test t
Does a single sample mean differ from a known reference value?
μ₀ −t_crit +t_crit α/2 α/2
Two-tailed t distribution — red areas are rejection regions (α/2 each).
t = x ¯ μ 0 s / n , d f = n 1
Assumptions
  • Metric continuous outcome
  • Independent observations
  • Approximately normal distribution (or n ≥ 30)
Effect size
Cohen's d = (x̄ − μ₀) / s · small 0.2, medium 0.5, large 0.8
In MindStat
Ribbon: Compare Means → Hypothesis Tests → One Sample t-test. Ctrl+H jumps straight to the panel.
Independent-Samples t-test t
Do two independent groups differ on average?
t = x ¯ 1 x ¯ 2 s p 2 ( 1 n 1 + 1 n 2 ) , s p 2 = ( n 1 1 ) s 1 2 + ( n 2 1 ) s 2 2 n 1 + n 2 2
Welch variant
MindStat always runs Welch's t for independent samples, with fractional degrees of freedom. Levene / Brown-Forsythe is printed as a descriptive assumption check and never switches the test.
Why
This is ADR-001. The earlier two-stage rule (pooled unless Levene was significant) was retired because choosing the test from the data distorts the Type-I error rate of the combined procedure — Delacre, Lakens & Leys (2017); Zimmerman (2004).
Effect size
Cohen's d = (x̄₁ − x̄₂) / s_p
Paired-Samples t-test t
Do the same subjects differ between two measurements (pre/post)?
t = d ¯ s d / n , d f = n 1
Where
d_i = x_{i,2} − x_{i,1}, the per-subject difference.
Use for
Pre-post intervention studies, matched pairs, within-subject designs.
4 · Analysis of Variance (ANOVA)
One-Way ANOVA F
Compares the means of three or more independent groups.
F_crit reject H₀ F ≥ 0 (right-skewed)
F is strictly positive and right-skewed — only large F values lead to rejecting H₀.
F = M S b e t w e e n M S w i t h i n = S S B / ( k 1 ) S S W / ( N k )
SS between
S S B = i = 1 k n i ( x ¯ i x ¯ ) 2
SS within
S S W = i = 1 k j = 1 n i ( x i j x ¯ i ) 2
Effect size
η² = SS_B / SS_total · small .01, medium .06, large .14
Post-hoc
Tick Post-hoc Test and pick the method yourself: Tukey HSD (the default), Bonferroni, Scheffé, LSD (Fisher), Games-Howell, Dunnett, or Holm-Bonferroni. MindStat never swaps the method for you — it only warns and suggests Games-Howell when group sizes are severely unequal.
Two-Way ANOVA
Tests two factors and their interaction on a single outcome.
Y i j k = μ + α i + β j + ( α β ) i j + ε i j k
Partition
SS_total = SS_A + SS_B + SS_{AB} + SS_{error}
Read interaction first
If the A×B interaction is significant, interpret simple effects inside each level of B — the main effects lose their individual meaning.
Repeated-Measures ANOVA
Compares 3+ measurements taken on the same subjects (within-subjects factor).
F = M S t r e a t m e n t M S s u b j e c t × t r e a t m e n t
Sphericity
Assumption tested via Mauchly's W. If violated, MindStat applies Greenhouse-Geisser or Huynh-Feldt corrections to df automatically.
Use for
Longitudinal studies, pre/mid/post designs, crossover trials.
ANCOVA — Analysis of Covariance
Combines ANOVA with linear regression — compares group means after adjusting for one or more continuous covariates.
Y i j = μ + τ i + β ( X i j X ¯ ) + ε i j
Key assumption
Homogeneity of regression slopes — the covariate's slope must be equal across groups (tested by the group × covariate interaction).
Output
Adjusted (estimated marginal) means with 95% CIs, plus an F test on the adjusted group effect.
MANOVA — Multivariate ANOVA
Compares group means on two or more correlated dependent variables simultaneously.
Λ Wilks = | E | | H + E |
Statistics
Wilks' Λ, Pillai's trace, Hotelling-Lawley trace, Roy's largest root — MindStat reports all four, with Pillai being most robust to violations.
Assumption
Multivariate normality + homogeneity of variance-covariance matrices (Box's M test).
5 · Non-parametric Alternatives
Mann-Whitney U Test U
Non-parametric alternative to the independent-samples t-test — compares two groups by ranks.
U 1 = n 1 n 2 + n 1 ( n 1 + 1 ) 2 R 1 , U = min ( U 1 , U 2 )
Use when
Data are ordinal, skewed, or contain outliers.
Effect size
r = Z / √N
Wilcoxon Signed-Rank Test W
Non-parametric paired t-test alternative.
W + = i = 1 n 1 ( d i > 0 ) rank ( | d i | )
Use when
Paired differences are not normal, or the outcome is ordinal (e.g., Likert).
Kruskal-Wallis Test H
Non-parametric one-way ANOVA for 3+ groups.
H = 12 N ( N + 1 ) i = 1 k R i 2 n i 3 ( N + 1 )
Post-hoc
Dunn's test on the mean ranks with a Holm step-down adjustment — Benjamini-Hochberg is reported beside it. MindStat runs it automatically when the Kruskal-Wallis p is below .05 and there are more than two groups.
Friedman Test χ²_r
Non-parametric alternative to Repeated-Measures ANOVA — compares 3+ related measurements by ranks.
χ r 2 = 12 n k ( k + 1 ) j = 1 k R j 2 3 n ( k + 1 )
Where
n = number of subjects, k = number of conditions/time points, R_j = column rank sum for condition j.
df
k − 1
Post-hoc
A Dunn-type z test on the mean ranks, with the Conover (1999) tie correction and a Holm step-down adjustment across all pairs — the same procedure as PMCMRplus::frdAllPairsConoverTest.
Use when
Data are ordinal, Repeated-Measures ANOVA assumptions are violated, or distributions are non-normal.
In MindStat
Ribbon: Compare Means → Nonparametric Tests → Friedman Test.
6 · Correlation
Pearson Product-Moment Correlation r
Strength and direction of a linear relationship between two metric variables.
r ≈ +0.95 r ≈ +0.45 r ≈ 0 r ≈ −0.95
Four scatter plots showing how r changes from strong positive (+0.95) through none (0) to strong negative (−0.95).
r = i = 1 n ( x i x ¯ ) ( y i y ¯ ) i = 1 n ( x i x ¯ ) 2 i = 1 n ( y i y ¯ ) 2
Range
−1 ≤ r ≤ +1
Interpretation
|r| ≈ 0.1 weak, 0.3 moderate, 0.5 strong, 0.7+ very strong.
Warning
Correlation ≠ causation. Always inspect the scatter plot for non-linearity and outliers before trusting r.
Spearman's Rank Correlation ρ
ρ = 1 6 i = 1 n d i 2 n ( n 2 1 )
Use when
Variables are ordinal, non-linear but monotonic, or contain outliers that distort Pearson.
7 · Regression
Simple Linear Regression OLS
Predict a metric outcome Y from a single metric predictor X.
X Y ŷ = β₀ + β₁x
OLS fits the line that minimizes the sum of squared residuals (red segments).
y ^ i = β 0 + β 1 x i , β 1 = ( x i x ¯ ) ( y i y ¯ ) ( x i x ¯ ) 2
Fit quality
R 2 = 1 S S r e s S S t o t proportion of variance in Y explained by X.
Assumptions
  • Linearity between X and Y
  • Normally distributed residuals
  • Homoscedasticity (constant variance)
  • Independence of observations
Multiple Linear Regression
β ^ = ( X X ) 1 X y
Multicollinearity
Check VIF: values > 5 (strict > 10) → predictors are redundant. MindStat reports VIF per coefficient.
Adj. R²
R a d j 2 = 1 ( 1 R 2 ) n 1 n k 1
Logistic Regression
Predict a binary (0/1) outcome from one or more predictors.
Pr ( Y = 1 X ) = 1 1 + e ( β 0 + β 1 x 1 + + β k x k )
Odds ratio
O R = e β j multiplicative change in odds for a one-unit increase in predictor j.
Fit check
The panel prints McFadden R², AIC, N, and for each predictor β, SE, Wald z, p, the odds ratio and its 95% CI. The c-statistic (AUC), Nagelkerke R² and a Hosmer-Lemeshow p are computed and handed to the interpretation card; the Biostatistics module also has its own ROC Curve and Hosmer-Lemeshow panels.
Ordinal Logistic Regression polr
Predict an ordinal outcome (≥ 3 ordered levels) from one or more predictors. Implements McCullagh (1980) proportional odds model.
log P ( Y j x ) P ( Y > j x ) = α j x β , j = 1 , , J 1
Brant test
Tests the proportional odds assumption: H₀ = same β across all J−1 binary logits. p < .05 → violation.
Use when
Outcome has a natural order (e.g., pain level 1–5, satisfaction low/medium/high) and you need to model predictors.
Multinomial Logistic Regression multinom
Predict a nominal outcome (≥ 3 unordered categories) from one or more predictors. Uses baseline-category logit model.
log P ( Y = j x ) P ( Y = 0 x ) = α j + x β j , j = 1 , , J 1
IIA assumption
Independence of irrelevant alternatives — tested via Hausman-McFadden test (available in MindStat output).
Use when
Outcome has 3+ unordered categories (e.g., party choice, transport mode, disease subtype).
Zero-Inflated Poisson / NegBin
Count regression when zeros are more frequent than a Poisson distribution predicts. Decomposes into a structural-zero process and a count process.
P ( Y = 0 ) = π + ( 1 π ) e μ , P ( Y = k ) = ( 1 π ) e μ μ k k ! , k 1
Model selection
Vuong (1989) test: H₀ = Poisson fits equally well. LR test (ZIP vs ZINB) selects overdispersion handling.
Use when
Count data (Y ≥ 0 integer) with a suspiciously high proportion of zeros (e.g., doctor visits, insurance claims).
Variance Inflation Factor VIF
Quantifies how much a predictor's variance is inflated by multicollinearity with other predictors.
V I F j = 1 1 R j 2
Where
R j 2 = R² when predictor X_j is regressed on all other predictors.
Cut-offs
< 5 OK · 5-10 concern · > 10 serious — drop or combine variables.
Durbin-Watson Statistic DW
Detects first-order autocorrelation in regression residuals.
D W = t = 2 n ( e t e t 1 ) 2 t = 1 n e t 2
Interpretation
DW ≈ 2 → no autocorrelation · < 1.5 positive · > 2.5 negative.
Use when
Data are ordered in time — the regression assumption of independent errors is critical.
Breusch-Pagan Test χ²
Detects heteroscedasticity in regression residuals.
B P = n R e 2 X 2
Procedure
Regress the squared residuals on the original predictors; BP follows χ² with df = k.
Remedy
If p < .05, use White / HC3 robust standard errors (MindStat offers a one-click switch).
8 · Tests for Categorical Data
Chi-Square Test of Independence χ²
Are two categorical variables associated?
χ 2 = i = 1 r j = 1 c ( O i j E i j ) 2 E i j , E i j = R i C j N
df
(r − 1)(c − 1)
Assumption
Expected frequency ≥ 5 in at least 80% of cells, and no cell below 1. MindStat does not change the test: when Cochran's rule is broken it flags the result and recommends Fisher's Exact — or a Monte-Carlo simulation, or collapsing rare categories — for you to choose.
Continuity correction
The Yates' continuity correction box is ticked by default. It applies to 2×2 tables only, and the box is disabled for anything larger.
Effect size
Cramér's V = √(χ² / (N · min(r−1, c−1)))
Fisher's Exact Test
p = ( a + b a ) ( c + d c ) ( n a + c )
What the formula gives
That expression is the hypergeometric probability of the observed table alone — it is not the p-value.
The p-value
MindStat sums the probabilities of every table with the same margins whose probability is no greater than the observed one — the two-sided p-value, the same rule R's fisher.test applies. Tables larger than 2×2 go through the Freeman-Halton enumeration, which falls back to χ² past 500,000 tables.
Use when
2×2 table with small or zero expected counts — exact p-value with no approximation.
McNemar's Test
Paired version of χ² — for 2×2 tables of matched dichotomous data (e.g., pre/post yes-no outcomes).
χ M c N 2 = ( | b c | 1 ) 2 b + c
b, c
Off-diagonal cells of the 2×2 table (discordant pairs: yes→no and no→yes).
Use for
Diagnostic test agreement, pre/post treatment success-failure, case-control matched pairs.
Kolmogorov-Smirnov Test KS, D
Compares the empirical distribution of a sample against any reference distribution — or two samples against each other.
D n = sup x | F n ( x ) F ( x ) |
Use for
Normality check as an alternative to Shapiro-Wilk, or comparing two empirical distributions (two-sample KS).
9 · Survival Analysis (Biostatistics)
Kaplan-Meier Estimator
Time (t) S(t) 1.0 0.0 Treatment Control
Stepped survival curves drop at each event; tiny upward ticks mark censored subjects.
S ^ ( t ) = t i t ( 1 d i n i )
Where
d_i = events at t_i, n_i = subjects at risk just before t_i.
Output
A stepped survival curve with 95% confidence bands and a risk table.
Log-rank Test χ²
Compares survival curves of 2 or more groups.
χ L R 2 = i = 1 k ( O i E i ) 2 E i
Assumption
MindStat computes the Mantel (1966) log-rank statistic. It stays valid when hazards are not proportional — proportional hazards is the condition under which the test is most powerful, not a condition for using it — and it loses power when the survival curves cross.
Cox Proportional-Hazards Regression
h ( t X ) = h 0 ( t ) exp ( β 1 x 1 + β 2 x 2 + + β k x k )
Hazard ratio
H R = e β j — HR > 1 ↑ risk, HR < 1 ↓ risk.
10 · Reliability & Psychometrics
Cronbach's Alpha α
Internal-consistency reliability for a set of items measuring the same construct.
α = k k 1 ( 1 i = 1 k s i 2 s t o t a l 2 )
Acceptable
α ≥ .70 — research scale; ≥ .80 — clinical use; ≥ .90 — individual decisions.
Alternative
McDonald's ω is preferred when item loadings are unequal — also provided in MindStat's Psychometrics module.
Intraclass Correlation Coefficient ICC
Measures the reliability of ratings or measurements when multiple raters or instruments assess the same subjects.
ICC ( A , 1 ) = M S R M S E M S R + ( k 1 ) M S E + k n ( M S C M S E )
Where
MS_R = row (between-subjects) mean square; MS_E = residual mean square; MS_C = column (between-raters) mean square; n = number of subjects; k = number of raters.
Interpretation
ICC < 0.50 poor · 0.50–0.75 moderate · 0.75–0.90 good · > 0.90 excellent reliability (Koo & Li 2016; the model definitions are McGraw & Wong 1996).
Variants
MindStat offers three single-measure forms: ICC(1,1) one-way random, ICC(2,1) two-way random with absolute agreement — the formula above, McGraw & Wong's ICC(A,1) — and ICC(3,1) two-way mixed for consistency, which is the pre-selected one. Always report which model you used.
Use for
Inter-rater reliability, test-retest reliability, instrument calibration studies.
Cohen's Kappa κ
Agreement between two raters on categorical classifications, corrected for chance agreement.
κ = P o P e 1 P e
Where
P_o = observed proportion of agreement; P_e = expected proportion of agreement by chance.
Interpretation
< 0.20 slight · 0.21–0.40 fair · 0.41–0.60 moderate · 0.61–0.80 substantial · > 0.80 almost perfect.
Use for
Diagnostic agreement, coding reliability in qualitative research, clinical judgment studies.
Caveat
Kappa is sensitive to class imbalance — consider weighted kappa for ordinal categories.
Effect Size Reference Guide
Benchmarks for interpreting the magnitude of an effect — independent of sample size and statistical significance.
Guide
Statistic Test family Small Medium Large
Cohen's d t-tests 0.20 0.50 0.80
Pearson r Correlation 0.10 0.30 0.50
η² (eta-squared) ANOVA 0.01 0.06 0.14
Cohen's f ANOVA / Power 0.10 0.25 0.40
Cohen's w Chi-Square 0.10 0.30 0.50
Cramér's V Chi-Square (2×2) 0.10 0.30 0.50
Regression 0.02 0.13 0.26
Note
These benchmarks (Cohen 1988) are discipline-independent guidelines. Always consider the practical context of your field — a 'small' effect in medicine may be clinically important.
11 · SEM / CFA Fit Indices
χ² Model Fit Statistic
Tests the null hypothesis that the model-implied covariance matrix equals the observed matrix.
χ 2 = ( n 1 ) F M L ( S , Σ ( θ ^ ) )
Caveat
Over-sensitive to large samples — a significant χ² doesn't automatically mean poor fit. Always inspect CFI/TLI/RMSEA/SRMR together.
CFI / TLI — Incremental Fit
C F I = 1 max ( χ M 2 d f M ,   0 ) max ( χ M 2 d f M ,   χ B 2 d f B ,   0 )
T L I = ( χ B 2 / d f B ) ( χ M 2 / d f M ) ( χ B 2 / d f B ) 1
Cut-offs
≥ .90 acceptable · ≥ .95 good fit (Hu & Bentler 1999).
Difference
CFI compares the model to a baseline; TLI adds a complexity penalty per degree of freedom.
RMSEA — Root Mean Square Error of Approximation
R M S E A = max ( χ 2 d f d f ( n 1 ) ,   0 )
Cut-offs
≤ .05 close · ≤ .08 reasonable · > .10 poor. Always report the 90% CI.
SRMR — Standardized Root Mean Square Residual
S R M R = 2 p ( p + 1 ) i = 1 p j = 1 i ( s i j σ ^ i j s i i 1 / 2 s j j 1 / 2 ) 2
Cut-off
< .08 indicates acceptable fit — less sensitive to sample size than χ².
In MindStat
The SEM / CFA module reports χ², df, CFI, TLI, RMSEA (90% CI), SRMR, and AIC/BIC on every model fit.
12 · Time Series (Econometrics)
Autocorrelation Function (ACF / PACF)
Visualize the correlation between a series and its own lagged values — the first step in diagnosing AR / MA structure.
ρ k = t = k + 1 n ( y t y ¯ ) ( y t k y ¯ ) t = 1 n ( y t y ¯ ) 2
Reading
Spikes in ACF suggest MA(q) order; spikes in PACF suggest AR(p) order. Bars inside the dashed 95% band are not significant.
ARIMA(p, d, q) Model
AutoRegressive Integrated Moving Average — the workhorse of univariate time-series forecasting.
( 1 i = 1 p ϕ i L i ) ( 1 L ) d y t = ( 1 + j = 1 q θ j L j ) ε t
p, d, q
p = AR order · d = number of differencings to reach stationarity · q = MA order.
Model selection
MindStat has no auto.arima(). In the Statistical Analysis module, Time Series → Time Series Analysis → ARIMA offers an 'Advise d (Dickey-Fuller test)' button that fills in the differencing order for you; p and q stay manual. The fitted model reports a Ljung-Box test on the residuals.
Augmented Dickey-Fuller (ADF)
Unit-root test — is the series stationary, or does it need differencing before ARIMA / regression?
Δ y t = α + β t + γ y t 1 + i = 1 p δ i Δ y t i + ε t
H₀
γ = 0, i.e. the series has a unit root (non-stationary).
Decision
The ADF panel in the Econometrics module reports τ together with the 1%, 5% and 10% critical values — it prints no p-value. Reject the unit root when τ is more negative than the critical value at your chosen level; when it is not, the panel also shows τ after one differencing.
Granger Causality F
Does the past of X help predict Y beyond Y's own past?
y t = α + i = 1 p ϕ i y t i + j = 1 p β j x t j + ε t
H₀
All β_j = 0 → X does NOT Granger-cause Y. Tested with an F test comparing restricted vs unrestricted VAR.
Caveat
'Causality' here is statistical prediction, not true cause-effect in the philosophical sense.
13 · Statistical Process Control (SPC)
Shewhart X̄-R Control Chart Limits
Three-sigma control limits for the sample mean when subgroup range is used as the variation estimator.
UCL CL LCL Subgroup number
Points beyond the 3σ limits (red) signal a process that is out of control.
U C L X ¯ = X ¯ ¯ + A 2 R ¯ , L C L X ¯ = X ¯ ¯ A 2 R ¯
U C L R = D 4 R ¯ , L C L R = D 3 R ¯
Constants
A₂, D₃, D₄ come from standard SPC tables and depend on subgroup size n. MindStat looks them up automatically.
Out-of-control rules
MindStat flags any of the 8 Western Electric / Nelson rules (point beyond 3σ, 2/3 beyond 2σ, 8 consecutive on one side, etc.).
Process Capability Indices
How well does a process fit inside its specification limits?
C p = U S L L S L 6 σ , C p k = min ( U S L μ 3 σ ,   μ L S L 3 σ )
Benchmarks
Cpk ≥ 1.33 acceptable · ≥ 1.67 good · ≥ 2.00 Six Sigma quality (≈ 3.4 defects per million).
Cp vs Cpk
Cp ignores centring; Cpk penalizes drift of the mean from the midpoint of the spec range.
14 · Spatial Statistics
Moran's I
Global measure of spatial autocorrelation — do nearby locations have similar values?
I = n i j w i j i j w i j ( x i x ¯ ) ( x j x ¯ ) i ( x i x ¯ ) 2
Range
−1 (perfect dispersion) ≤ I ≤ +1 (perfect clustering), expected value ≈ −1/(n−1).
Test
Z-statistic compares observed I to its expected value under spatial randomness.
15 · Item Response Theory (Psychometrics)
2-Parameter Logistic Model (2PL)
Probability that a person with ability θ answers an item correctly, given item difficulty b and discrimination a.
P ( X i = 1 θ ) = 1 1 + e a i ( θ b i )
a — discrimination
How sharply the item separates low- from high-ability respondents. a ≥ 1 is considered adequate.
b — difficulty
The ability level at which P = 0.5. b ≈ 0 is a medium-difficulty item.
Output
Item Characteristic Curves (ICC) plus item & test information functions — all visualized in the Psychometrics module.
16 · Power Analysis
Power & Sample Size (t-test example)
Pre-study planning: how many participants do I need to detect an effect of size d with probability 1−β?
n 2 ( z 1 α / 2 + z 1 β ) 2 d 2
Defaults
α = .05, power (1−β) = .80, small/medium/large d as per Cohen.
In MindStat
The Power Analysis panel solves for power, for sample size, or for a compromise α — covering one-sample, two-sample and paired t-tests, one-way ANOVA, Pearson correlation, chi-square, and Mann-Whitney U.
p-Value & Statistical Significance
The probability of observing a result at least as extreme as this one if the null hypothesis were true — nothing more.
It is not
The probability that the null hypothesis is true, the probability that the finding will replicate, or a measure of how large the effect is. A p-value of .049 and one of .051 are not different kinds of evidence.
Report with
An effect size and a confidence interval. Significance answers "could this be noise?"; only the effect size answers "does it matter?"
In MindStat
Every p-value is printed in APA 7 form — no leading zero, three decimals, and "< .001" below that threshold — so a p is never shown as 0.000.
Source
Wasserstein & Lazar (2016), The ASA Statement on p-Values, The American Statistician 70(2), 129–133.
Information Criteria (AIC, BIC)
Rank competing models fitted to the same data by trading goodness of fit against the number of parameters. Lower is better.
Definition
AIC = −2 ln L + 2k and BIC = −2 ln L + k ln n, where L is the maximised likelihood, k the number of estimated parameters and n the sample size. BIC penalises each extra parameter more heavily than AIC once n ≥ 8.
Reading them
Only differences carry meaning, and only between models fitted to the identical data and response. As a rule of thumb ΔAIC < 2 leaves a model substantially supported, 4–7 considerably less so, and > 10 with essentially none.
In MindStat
Every engine that reports them derives AIC and BIC from its own fitted log-likelihood and parameter count — mixed models, ARIMA and ETS, finite mixtures, GAMLSS and accelerated failure time among them — using the definitions above, so a model comparison here matches the one R prints for the same fit.
Source
Akaike (1974); Schwarz (1978); ΔAIC guidance from Burnham & Anderson (2004), Sociological Methods & Research 33(2), 261–304.
📚 This reference is intentionally concise. For in-depth derivations, assumption diagnostics, or worked examples, ask the Statistical Assistant — it can walk you through any formula step by step, in Arabic or English.

🟢 Verify Results with the R Engine

MindStat embeds a real R interpreter (R 4.5.1) compiled to WebAssembly via the WebR project. This lets you re-compute any analysis with the same R code that a published paper would use — all inside your browser, with no R installation needed.

  1. 1
    Look for the green ✓ Verify with R Engine button below each supported result.
  2. 2
    First click triggers a one-time download of the R engine (~12 MB). The status badge at the top shows 'Loading R Engine…' — expect 30-60 seconds on first use.
  3. 3
    Once ready the badge turns into '🟢 R 4.5.1 Ready'. Any subsequent Verify click runs instantly because packages are cached for the session.
  4. 4
    R's numbers appear beside MindStat's, one row per statistic: ✅ agreement, ⚠️ a small difference, 🔴 a real one, and ❔ for a statistic R did not return. The panel turns green only when every row matched and nothing was left unverified; when anything differs it says so and treats R as authoritative.

What the comparison actually covers

The button compares named statistics, not your analysis as a whole. Each panel hands the comparison a list of quantities — the test statistic, its degrees of freedom, p, the effect size, and whatever else that panel computes — and R is asked for the same list. That is why a clean result says “all n cross-checked statistics match” and not “this analysis is correct”: a quantity no panel submits is never examined, and a statistic MindStat computed but R did not return is counted as unverified rather than quietly dropped.

A row counts as a match when the two values agree to within one part in a thousand, or differ by less than 1e-6 in absolute terms. Between that and one part in a hundred the row is amber; beyond it, red. The absolute shortcut is withdrawn when the two numbers sit on different scales — roughly a hundredfold apart — so two tiny numbers that disagree by an order of magnitude cannot pass as equal. Rows a method makes deliberately random, such as a bootstrap or a Monte-Carlo p, are marked as such and never fail the panel.

The wider picture — every procedure checked against R, with the scenarios and tolerances written out — lives on the Accuracy page.

⚠️ The initial R Engine download requires an internet connection. After the first successful load it runs entirely locally for the rest of the session (and is cached for next time).

R packages loaded on demand

To keep first-load small, MindStat installs R packages only when you click Verify on an analysis that needs them. Typical packages include:

stats / car
t-tests, ANOVA, linear regression, Levene's test, diagnostics
survival
Kaplan-Meier curves, Cox proportional hazards regression
pwr
Power analysis and required sample size calculations
lavaan
SEM, CFA, path analysis, fit indices
💡 Not every test exposes a Verify button — only tests where R gives meaningful cross-validation (e.g., ANOVA, regression, chi-square, survival). If you don't see the button, JavaScript is the single source of truth for that test.

💬 Interpretation & Co-Pilot

MindStat explains a result in two layers. The first is deterministic and runs on your device: a rule engine renders an interpretation card under the result, assembled only from rules that actually fired, each carrying its rule id and the source it rests on.

When some of the rules a card used have not been read by a person yet, the card carries an 'Under methodological review' badge that states the count — for example '3 of 8 applied rules have not yet been human-reviewed'. A rule marked 'Human-reviewed' has had its statistics and its citation checked by a human; the rest are provisional, and the badge disappears once none are left.

The second layer is optional, and it is a cloud language model — Google Gemini, reached through MindStat's own /api/ai proxy so the key never reaches your browser. It is handed the result context and the rules that fired, and every normative sentence it produces has to quote a fired rule or carry that rule's id: it explains, it does not judge.

Academic Mode hides the second layer completely: while it is on, the Co-Pilot, the AI buttons and the AI expansions are all removed from the page. The interpretation card stays.

No setup, no API key, no sign-up: the key lives in the server-side proxy, so the AI layer is ready the moment you open the app on mindstat.pro.

Where to find it

There are three entry points inside the app:

  • The floating Co-Pilot button in the corner — labelled Co-Pilot in the English interface. Click it to open a chat about the analysis already on screen.
  • The "Expand with AI" button on the interpretation card — it sends that result’s context and the rules that fired to the second layer.
  • The Statistical Advisor panel, on the ribbon: Tools & Workflow → Guidance & Workflow → Statistical Advisor — useful for general questions before you run anything.

Four things the AI layer does well

📖 Interpret Results
Plain-language explanation of p-values, confidence intervals, effect sizes, and what they mean for your research question.
📝 APA 7 Write-up
Generates a publication-ready results paragraph in correct APA 7 format, ready to paste into your thesis or paper.
🧭 Suggest a Test
Describe your data and question in natural language and the assistant recommends the most appropriate test plus alternatives.
🧪 Check Assumptions
Explains the assumptions of the current test and which were violated in your data, with suggested remedies.
💡 Inside the chat window you can press Ctrl+Enter (or Cmd+Enter) to send. Use clear prompts like 'Write this in APA 7' or 'Is my sample normal enough?' for the best answers.

📤 Export, Print & Share

After an analysis, the Export button in the results panel offers four file formats, and the browser's own printing covers the fifth. Sharing is a separate panel, described last:

📄 PDF
Full report with results tables and charts, ready for submission (html2pdf.js).
📝 Word (.docx)
Editable Word document — tables and text are preserved so you can paste them into your thesis or paper.
📊 Excel (.xlsx)
Numerical results and data tables as a real .xlsx workbook with multiple sheets.
📋 CSV
Plain-text export of any single table — ideal for re-importing into R, Python, or SPSS.
🖨 Print (Ctrl+P)
Native browser print. A dedicated @media print stylesheet drops the navigation and the forms, so the printed page carries the results and a dated header.
🔗 Share Analysis
Not an Export format but its own panel — Tools & Workflow → Guidance & Workflow → Share Analysis. It packs the grid and a snapshot of the visible results into the link itself (base64 in the fragment, nothing sent to a server); you choose which of the two to include, and a large dataset is truncated. Note that opening such a link does not yet restore the analysis in this build — treat the link as a copy of the payload, and send a .mindstat project file when the recipient needs to carry on working.

🔁 Reproducible Output: Scripts and the Bundle

A reviewer who cannot re-run your analysis cannot check it. MindStat therefore writes the analysis out as code you can run somewhere else — in R, and where it has been checked, in Python — and can package the code together with the data it was run on.

Where to find it

Two routes, both in the Statistical Analysis app: File → Export → Results, or the button row at the top of Tools & Workflow → Reporting → Output. Either offers Reproducibility Bundle and Python script. The Econometrics module has neither — it exports results to Excel, not a bundle.

What is in the bundle

One .zip: analysis.R rewritten to read your data file beside it, the dataset as CSV, an RStudio project file, a bilingual README, a fingerprint.txt holding the SHA-256 of the data and the WebR pin the analysis was checked against, a manifest.json recording the app version, the seeds and the analysis log, and double-click runners for Windows and macOS. analysis.py joins them only for a procedure whose Python script has been verified.

The bundle covers one procedure — the analysis on screen, or the most recent result if you opened it from the Output panel. For the whole session as a single runnable file, download the do-file from the Command Log instead. MindStat does not run R for you here: the script is meant for an R you already have installed.

What “verified” means on a Python script

R is MindStat's citable export and is always offered. Python is a convenience, and it is honest about its own confidence: a script is verified when it has been run against the panel it claims to reproduce and its numbers matched, either because it calls an independent standard package or because it transcribes the same formula. A script that has not been through that check still downloads, but carries a two-line bilingual header saying so, and it is not put in the bundle. Three procedures have no Python at all, because no canonical Python implementation exists for them.

💡 Script coverage is not yet complete: scripts exist for about 160 of the 258 analysis panels. When a procedure has none, the bundle still downloads but says plainly that its analysis.R is a placeholder rather than a reproducible analysis.

Manuscript mode

File → Application → Manuscript mode strips the results down to what a journal will accept: the decorative emoji disappear from result tables, a tick becomes an asterisk, a cross becomes “n.s.”, and a warning becomes a “Note.” line. It is presentation only — no number changes — and it is reversible at any time. It is on unless you turn it off.

🧭 Guided Paths: Basic Mode and the Wizards

A statistics package with 250+ procedures is intimidating on the first day. Three features exist to shrink it.

Basic mode

The Basic mode switch in the top bar — also File → Application → Switch to Basic mode — narrows the ribbon to six tabs and sixteen panels: the data grid and transforms, data quality, descriptives, normality, charts, hypothesis tests, ANOVA, non-parametrics, correlation, reliability, factor analysis, power, the assumption dashboard, the calculator and the outlier tool.

It hides, it never disables. Search, a shared link, a replayed do-file or a restored session all still reach the full surface, and navigating to a panel outside the sixteen simply drops you back into full mode. Nothing you built in full mode is lost by switching.

Two wizards, for two different moments

The Test Wizard sits first in the Analyses ribbon and opens a four-step dialog, “Help Me Choose the Right Test”, which starts from what you are trying to do — describe, compare, relate, predict, reduce, check a scale, analyse time, or plan a sample. It runs before you have any data loaded, which is the point: it is for choosing, not for running.

The Analysis Wizard is a panel rather than a dialog — Tools & Workflow → Guidance & Workflow → Analysis Wizard — and it ends on a button that takes you to the chosen panel with the sub-test already selected. Use the first to decide, the second to be delivered there.

The decision table in “Which Test Should I Use?” above is this guide's own paper version of the same reasoning — useful when you want to see the whole map at once rather than answer questions.

🪟 Your Workspace: Split View and Moving Between Modules

Data and results side by side

On a screen wider than 1024 pixels MindStat opens the data grid beside the analysis by itself, whenever you move to a panel that actually runs something; utility panels such as Data, Output or Help never trigger it. File → Application → Grid View toggles it by hand, and closing it applies to the panel you are on — the next analysis opens split again.

The divider between the two is draggable, from 240 pixels up to 60% of the window, and a double-click returns it to its default width. Your choice is remembered.

Carrying a dataset into another module

The Apps button in the top bar switches between the modules, and takes the dataset with it: on arrival, if the new grid is empty, a banner offers to load what you were working on. Two limits are worth knowing — a dataset larger than 4 MB as CSV is not carried and has to be imported again, and the offer expires after two hours. A few modules mount the switcher without handing their data out, so the offer will not appear when you leave them.

🟩 MindStat for Excel (Beta)

An Excel task-pane add-in exists and is built with every release, but it has not been publicly released: there is no AppSource listing, and the “Add to Excel” button on the home page is switched off by default. If you have been given beta access, the installer and the install guide arrive with it. Please do not expect to find a download link on the site today — when the beta opens, it will appear here.

What it is: MindStat running inside an Excel task pane, Arabic-first, against the sheet you have open — not a separate copy of your data. The beta installer is not code-signed, so Windows will warn about it, and it cannot be installed from a phone.

🎨 Theme & Language

Dark / Light Theme

Click the 🌙 / ☀️ button in the top corner of any page to switch between dark and light themes. The choice is stored in localStorage under mindstat_theme and reapplied automatically on your next visit.

Arabic / English

The 🌐 button toggles the whole interface between Arabic (RTL) and English (LTR), including statistical interpretation replies. You can also force a language via URL (e.g., ?lang=ar).

Both typefaces — IBM Plex Sans for Latin and Noto Naskh Arabic for Arabic — are requested from Google Fonts when the page loads, so switching language needs no new download.

⌨️ Keyboard Shortcuts

Press ? inside the app any time to pop up this same list.

Ctrl + Enter
Run the current analysis
Ctrl + S
Save Project — write a .mindstat file
Ctrl + D
Jump to Descriptive Statistics panel
Ctrl + H
Jump to Hypothesis Tests panel
Ctrl + R
Jump to Correlation panel
Ctrl + P
Print results (uses print stylesheet)
Ctrl + Z
Undo the last data change
Ctrl + Y
Redo
Ctrl + Shift + Z
Redo — alternative to Ctrl+Y
Ctrl + V
Paste data from Excel into the active grid cell
Alt +
Go back to the previous panel / view
Esc
Close the active dialog, modal, or loading spinner
?
Show the full keyboard shortcuts modal
💡 Ctrl+S, Ctrl+D, Ctrl+H, Ctrl+R, Ctrl+P, Ctrl+Z, Ctrl+Y, Ctrl+Shift+Z and ? go through the shortcut map, which ignores them while focus is inside a text field, textarea or select — click outside the field first if they do not respond. Ctrl+Enter, Ctrl+V, Alt+← and Esc are handled by the page's own key listener instead and work anywhere. On macOS, substitute Cmd (⌘) for Ctrl.

💾 Offline Mode & Auto-save

How your work is saved

MindStat writes the grid — your columns, their types, and every row — into the browser's localStorage about a second and a half after each change, and flushes it at once when the tab is hidden or closed. A dataset too large for localStorage (roughly 3 MB of JSON) goes into IndexedDB instead. Close the tab, come back a week later, and the grid is restored.

Alongside it an auto-save manager takes a fuller snapshot every 60 seconds whenever something has changed — data, variable selections, collected output and form state — into IndexedDB, or straight into your project file if you have linked one. If you later open an empty grid while a snapshot exists, a recovery notice offers it back.

There is a manual save too. Ctrl+S, or Project → Save Project, writes a .mindstat file: readable JSON holding the data, the variable definitions, the analysis history, the collected output and the command log. Open it again from the Project menu.

Offline Mode (PWA)

MindStat is a Progressive Web App. A service worker caches the entire app shell on first visit, so after that you can:

  • Open the app fully offline and run any JavaScript analysis (all 110 core procedures, charts, exports).
  • Install the app to your desktop or mobile home screen (Install button in the Home page).
  • Keep your data private: no dataset is ever uploaded. Only three things reach the network at all — the AI assistant when you use it, the Google Fonts stylesheet, and GA4 analytics, which runs unless you decline it.
⚠️ Two features need internet: (1) the first-time WebR engine download, and (2) the optional AI layer, which calls a cloud model through MindStat's proxy. The rule-based interpretation card runs locally, like everything else.

💬 FAQ

Does the app save data automatically?
Yes, in two ways. MindStat writes the grid to the browser's localStorage about a second and a half after each change (or to IndexedDB if the dataset is large), and an auto-save manager takes a fuller snapshot into IndexedDB every 60 seconds. The session restores automatically on reopening. There is a manual save as well: Ctrl+S — or Project → Save Project — writes a .mindstat project file that is yours to keep.
Does my data ever leave the browser?
No. MindStat runs entirely client-side — parsing, analysis, charts and exports all happen inside your browser, and your dataset is never uploaded to any server. Three things do reach the network: the AI assistant when you use it, which sends your message and the current result context to a cloud model through MindStat's proxy; the Google Fonts stylesheet; and GA4 analytics, which runs unless you decline it on the first-visit banner or the Privacy page.
Does the app work offline?
Yes, mostly. All JavaScript analyses (250+ procedures), charts, exports and the rule-based interpretation card work fully offline thanks to the service worker that caches the app. What needs internet: the first-time WebR engine download and the optional AI layer.
Why do my R results differ slightly from JavaScript results?
Small numerical differences (4–5th decimal) are normal, caused by different floating-point algorithms and missing-value handling. Anything larger is flagged by the Verify interface. If you see a big discrepancy, check for missing values or a wrong variable type.
How do I export my results?
From the 📤 Export button: PDF, Word, Excel, CSV, or print with Ctrl+P. You can also copy a Share link.
Can I cite MindStat in my thesis or paper?
Yes. The APA 7 form, taken from the project CITATION.cff file: Azeez, G. K. (2026). MindStat: An offline, bilingual (Arabic/English) browser-based statistical analysis suite (Version 1.29.55) [Computer software]. https://mindstat.pro. For analyses verified with R, also cite the R Core Team and the relevant R package (e.g., survival, lavaan, car).
Can I use MindStat on mobile?
Yes — the interface is responsive and works on tablets and phones. For entering large datasets or running SEM / mixed models, a desktop browser is still recommended.
How do I report a bug or request a feature?
Open the About page for contact details. Include your browser version, a screenshot, and reproduction steps.