Stats Without Walls User Guide

Open the app

Stats Without Walls is a free statistical tool for all levels. It runs entirely in your browser: nothing you load is uploaded anywhere, there is no account, and it never costs anything. This guide explains every menu, what each option does, and how to read what comes back.

1. Start here

Three ways to run it

  1. Web. Open learnwithoutwalls.com/stats in any modern browser (Chrome, Edge, Safari, Firefox). This version always has the newest features.
  2. Install from the browser. In Chrome or Edge, click the install icon in the address bar (or Chrome menu, then "Install Stats Without Walls"). It opens in its own window and works offline after the first visit.
  3. Desktop app. For now the browser version is the better choice: the app is updated almost daily and the desktop app cannot update itself yet (a self-updating version is coming). If you need it, download the Mac or Windows installer from the download page. Mac: pick Apple Silicon (M1 to M4) or Intel. The first time you open it on a Mac, right-click the app and choose Open, because it is not signed with an Apple developer certificate. If your Mac says the app is damaged and offers no Open Anyway button, see Troubleshooting for the one-line fix. The desktop app (version 1.3.0, October 1, 2026) is older than this guide: it does not have the empty start, the separate distrACTION and Learn pages, the new event choices or the phone and keyboard improvements described here, so use the browser version for class.

Privacy

Your data stays on your computer. The app has no server. It opens with an empty table unless your browser remembers data of your own. Your browser (local storage) remembers, on the same device:

Not remembered: a sample dataset you only opened or sorted (open it again from Data, Sample datasets), results, and the distrACTION inputs. Clearing your browser data removes what is stored. To keep a permanent copy, use Results, Save session or Data, Download data as CSV.

A two-minute first run

  1. Data, Sample datasets, pick "Our class data (40 students)", click Open.
  2. Exploration, Descriptives, select GPA, click Run. A card appears in the Analyses tab.
  3. Graph, Histogram, choose Hours_Sleep, click Run. The graph appears in the Graphs tab.
  4. T-Tests, Independent Samples T-Test, dependent variable Hours_Sleep, grouping variable Pet_Owner (Yes or No), click Run. Read the blue interpretation box near the bottom of the card.

2. The screen

PartWhat it is
HeaderTitle, a link to this User guide, a link to install or download the app, a link back to learnwithoutwalls.com.
Menu barData, Exploration, Graph, T-Tests, ANOVA, Regression, Frequencies, distrACTION, Nonparametric, Learn, Advanced, Results. Click a menu, then an item, and a dialog opens. distrACTION and the Learn demonstrations open on their own page instead (see below). On a phone the menu bar wraps onto three rows, so every menu shows. With a keyboard, Enter or Arrow Down opens a menu, the arrow keys move through it and Escape closes it; the first Tab on any page shows a Skip to content link that jumps past the menus.
Empty tableWhen nothing is loaded the table area says "No data yet" with four buttons: Sample datasets, Open CSV file, Paste data and New data table. They do the same as the Data menu items with those names. Under them, two more buttons open distrACTION and Learn, which need no data.
Data tableYour dataset. The name, row count and column count are above it. The header row stays in view as you scroll. Under each column name is its type; click it to change the type. Click a column name to sort; click again to reverse; a third click puts the rows back in their first order. Click any cell to edit it. Rows greyed out are excluded by the current filter. On a wide screen the table is on the left: drag the bar between the table and the results to resize them, and double-click it to reset. Widen table (next to the filter box) folds the results away so every column shows; the next result, or Show results, brings them back. On a phone or an iPad in portrait the table is on top, the results are below it, and there is no bar.
Filter boxShown once data are loaded. Type a condition such as Year == "Freshman" and press Enter. Join conditions with and or or (AND, OR, &&, ||, & and | all work). Every analysis then uses only the kept rows. Blank removes it. A condition that cannot be read says so under the box and leaves all rows in use until it is fixed.
Results (right, or below the table on a phone or an iPad in portrait)Two tabs. Analyses holds numeric results; Graphs holds every graph made from the Graph menu (the StatCrunch habit); a plot ticked inside an analysis (a Descriptives box plot, a residual plot) stays with its card under Analyses, and the empty Graphs tab says so. The number on each tab is how many cards it holds. After a reload, a bar above the tabs offers to bring back the last visit's results (see Saving and sharing work). On a phone or an iPad in portrait, a new result scrolls into view, and a graph title too long for the screen wraps onto a second line.
DialogEvery analysis opens the same kind of box: pick variables, tick options, click Run. Run and Cancel stay at the bottom of the box. Cancel, the Escape key or a tap outside the box closes it. Where a list allows several variables, hold Cmd (Mac) or Ctrl (Windows) while clicking; on a phone or an iPad, tap each one you want. Two boxes that offer the same columns (dependent variable and covariate, rows and columns) open on different columns. Where a test can run from a column or from summary statistics, only the boxes for the way chosen in the Data box are shown.
distrACTION pageEvery item in the distrACTION menu opens a page of its own, with no data table: the inputs on the left (on top on a phone or a narrow iPad), the result on the right. The address ends in #distraction, so it can be bookmarked or linked. Back to data (top left) returns to your table, which is still loaded; the browser's Back button works too. Once a calculator is open, Change distribution at the top of the inputs card switches to another one. Clear this page removes the distrACTION results, and Undo clear brings them back until you do something new.
Learn pageThe nine demonstrations that need no data (coin flips, the Central Limit Theorem, confidence intervals, p-values, mean versus median, outliers and influence, guess the correlation, the sampling distribution simulator and Bayesian) open on their own page, address ending in #learn, with the same Back to data button and Clear this page. Once a result shows, Choose another demonstration switches to another one. Bootstrap and permutation need a data file, so they stay with the table.

Variable types

The app guesses a type for each column when data loads. The type decides which menus can use the column.

TypeShown asMeaningUsed by
Continuousruler, continuousNumbers you can average: age, GPA, minutes.Descriptives, histograms, t-tests, ANOVA, regression, and so on.
OrdinalordinalOrdered categories: Freshman to Senior, agreement scales, small numeric codes.Frequency tables, bar plots, chi-square, grouping variables. Bar plots keep the natural order.
NominalnominalNames with no order: major, ZIP code, yes or no.Frequency tables, bar and pie charts, chi-square, grouping variables.
IDIDA label for each row (student number). Never analysed.Point labels on scatter plots.

If a guess is wrong (a numeric code that is really a category, or a numeric column that was read as text because one cell contains a word), click the type under the column name and pick Continuous, Ordinal, Nominal or ID, the same job as a data setup panel in other tools. A type you set by hand stays set, even after you edit cells. Data, Set variable type does the same thing from the menu.

3. Getting data in

Open CSV file

Data, Open CSV file. Any comma-separated file with one row of column names at the top. Exports from Excel, Google Sheets, Canvas, Qualtrics and survey tools all work. Quoted text with commas inside is handled. Dates stay as text.

Paste data

Data, Paste data. Copy a block from a spreadsheet (including the header row), paste it in, give it a name. Tabs and commas both work.

Sample datasets

Data, Sample datasets. Real and course datasets that ship with the app, listed in section 13. They also work offline in the installed app. A sample dataset is not remembered for your next visit until you change it (see Privacy).

New data table

Data, New data table. Type column names separated by commas and how many rows you want. Then click cells to type values. Good for a small in-class exercise.

Editing cells

Click any cell, type, then click away or press Tab. Enter moves down a row, the arrow keys move between cells, and Escape puts back the value the cell had. Types are re-guessed after each edit. Column names can be changed with Data, Rename or delete column.

Download data as CSV

Saves the current table (including computed, recoded and z-score columns) as a CSV file you can open in Excel or load again later.

4. Preparing data

Filters

Data, Filters, or the filter box above the table. Write a condition using column names exactly as written. Rows that fail the condition are greyed out and left out of every analysis and graph until the filter is cleared. Join conditions with and and or in any spelling (AND, &&, &, OR, ||, |), the habits of Python, R and spreadsheets; a single = is read as ==. A condition that cannot be read is explained under the box (in the dialog, under its field), and all rows stay in use until it is fixed.

Year == "Freshman"
Commute_Minutes < 30
Year == "Senior" and GPA >= 3.5
Major == "Biology" or Major == "Nursing"
Year == "Freshman" && GPA > 3
Employed != "Full-time"

Operators: == equal, != not equal, < <= > >=, AND, OR. Text values go in quotes. A single = is accepted as equal.

Compute a new variable

Data, Compute. Name the new column and write a formula using existing columns.

Hours_Study * 7                       weekly hours
Commute_Minutes / 60                  minutes to hours
(GPA - mean(GPA)) / sd(GPA)           z-score by hand
log(Income)                            natural log
round(Age / 10) * 10                  decade
Hours_Sleep >= 7                       gives true or false

Functions: log (natural), log10, sqrt, abs, exp, round, floor, ceil, pow(x, k). Whole-column summaries: mean(X), sd(X), median(X), min(X), max(X), sum(X), n(X). A row with a missing value in any column used gets a blank.

Transform (recode)

Data, Transform. Turn values into new values, one rule per line, as old = new. Numeric ranges are written 0 to 29 = short. "Everything else becomes" catches what the rules miss; leave it blank to keep the original value.

Full-time = Employed
Part-time = Employed
Not employed = Not employed
0 to 29 = short
30 to 59 = medium
60 to 300 = long

Add z-score column

Data, Add z-score column. Adds z_Variable with (x minus mean) divided by the sample SD, the same as the by-hand formula.

Bin into classes

Data, Bin into classes. Turns a numeric variable into classes of a width you choose ("60 to under 70"), starting where you say. Each class includes its left end. The new column is categorical, kept in numeric order, ready for a frequency table or bar plot.

Stack columns

Data, Stack columns. When each group sits in its own column, stacking makes one column of values and one column naming where each value came from, the layout two-sample tests, ANOVA and side-by-side graphs need. It makes a new data table (your own, so it is remembered), so download the old one first if you need it.

Simulate random data

Data, Simulate random data. Random values from a normal, uniform, discrete uniform, binomial, Poisson, exponential or yes or no distribution, any number of rows and columns (one column per sample). If the row count matches the open table the columns are added to it; otherwise a new table is made. A seed repeats the same numbers, so a whole class can work with identical data.

Random sample of rows

Data, Random sample of rows. A simple random sample from the open table, with or without replacement, with an optional seed. Uses only the rows kept by a filter. The sample becomes a new data table (your own, so it is remembered) in place of the old one.

Sorting

Click a column name: smallest first (or A to Z), again for the reverse, and a third time for the order the rows had before any sorting. Sorting changes the row order for Time Series and for the display; analyses do not depend on it.

5. Reading a result card

Every analysis produces a card with the same layout, top to bottom:

  1. Title and a grey line naming the dataset, the variables and n. Three buttons: edit (reopens the same dialog with your choices filled in; change anything and Run, and the new result replaces this card in place, the StatCrunch habit), copy text (copies the card's words and tables as plain text for a report, without its buttons and graphs; the button then says Copied) and remove. Under every table, copy as CSV (for a spreadsheet) and copy as Markdown (for a report or a slide); under every graph, download PNG, so a result goes into a document without a screenshot.
  2. Tables, named the way the course instructions name them (Descriptives, Independent Samples T-Test, Model Fit Measures, Contingency Tables, and so on), so the instructions transfer as written.
  3. Formula box (grey, monospace): the formula that produced the statistic, with the symbols the course uses: mu and x bar for means, sigma and s for standard deviations, p and p hat for proportions. Under it, Show the numbers in the formula opens the same formula with the actual values in it, worked through to the statistic, the interval and the effect size (t-tests, z-tests, ANOVA, regression, chi-square): the step between the formula and the answer. Then Report it as (APA style), one line such as t(37.98) = −0.15, p = .878, d = −0.05, to paste into a write-up.
  4. Blue box: the decision and a written conclusion in plain English, including the p-value compared with alpha.
  5. Green or pink box: a condition check. Green means the condition for the method is met (for example n at least 30, or at least 10 successes and 10 failures). Pink means it is not, and says what to do instead.
  6. Graphs attached to the analysis (descriptives plots, residual plots), below the text.
Rules that are built in and cannot be switched off: inference about a mean uses t with degrees of freedom, because sigma is almost never known; the Z-Test is there for the textbook problems that do give sigma, and its card says to use t otherwise. Proportions use z only when the success and failure counts are large enough, and the card says so. Every card reports the p-value; "p = 0" is never printed, the smallest shown is "p < 0.0001".

Decimals. Numbers are shown to the number of decimals set under Results, Decimal places shown (4 by default). Internally everything is full precision.

6. Which analysis do I need

Which test? (the button next to the filter box, or the first item of the T-Tests menu) asks three questions: what you measured (a number, a yes or no, or a category), what the question is (one group against a value, two groups, three or more, or a relationship), and for two groups whether they are the same people measured twice. It names the test as you answer and opens its dialog. With no data loaded it leaves a note naming the test instead. The table below is the same decision written out.

QuestionData you haveUse
Describe one numeric variableone continuous columnExploration, Descriptives; Graph, Histogram or Boxplot or Dotplot
Describe one categorical variableone nominal or ordinal columnExploration, Descriptives with Frequency tables; Graph, Bar Plot
Is the mean different from a claimed value?one continuous column and a numberT-Tests, One Sample T-Test
Do two groups have different means?continuous column plus a two-level group columnT-Tests, Independent Samples T-Test (Welch)
Before and after, same peopletwo continuous columns, one per timeT-Tests, Paired Samples T-Test
Do three or more groups have different means?continuous column plus a group columnANOVA, One-Way ANOVA (with Tukey)
Is a proportion different from a claim?one categorical column and a numberFrequencies, 2 Outcomes: Binomial test
Do two groups have different proportions?categorical outcome plus two-level groupFrequencies, Two proportions z test
Do the category counts match expected shares?one categorical columnFrequencies, N Outcomes: chi-square goodness of fit
Are two categorical variables related?two categorical columnsFrequencies, Contingency Tables
Are two numeric variables related? Predict one from the othertwo continuous columnsRegression, Correlation Matrix; Regression, Linear Regression; Graph, Scatter Plot
Predict from several variablescontinuous outcome plus several predictorsAdvanced, Multiple Linear Regression
Predict a yes or no outcometwo-level outcome plus predictorsAdvanced, Logistic Regression
Data are skewed or ranks, small samplesas above but not normalNonparametric menu (Mann-Whitney, Wilcoxon, Kruskal-Wallis)
A probability from a distributionparameters onlydistrACTION menu
Is the mean different from a claim, and sigma is given?a numeric column, or the mean and n, plus sigmaT-Tests, One Sample Z-Test
Is a standard deviation different from a claim? Do two groups differ in spread?a numeric column, or SDs and nAdvanced, Variance tests
Predict y for a new x, with an intervaltwo numeric columnsRegression, Linear Regression, Predict at x
Mean and SD of a discrete random variablex values and their P(x), typed or as two columnsdistrACTION, Custom (discrete x and P(x))
How many people do I need?a margin of error or an effect sizedistrACTION, Sample size for a margin of error; distrACTION, Power and sample size for a test (also Advanced, Power and Sample Size)
Understand what a p-value or a confidence interval isnothing, no data neededLearn, What a p-value is; Learn, What a confidence interval means
Show why a coin does not even out, or why "two of the next ten" is wrongnothing, no data neededLearn, Coin flips and the law of large numbers
Show the Central Limit Theorem, or where sigma / sqrt(n) comes fromnothing, or a column as the populationLearn, The Central Limit Theorem; Learn, Sampling distribution simulator

Exploration

Descriptives

Pick one or more variables; optionally split by a group. Tick the statistics you want: N, missing, mean, median, mode (all modes are listed when there is a tie), sum, standard deviation (sample, n minus 1), variance, population SD, range, minimum, maximum, standard error, IQR, quartiles, fences for outliers, skewness, kurtosis, coefficient of variation, and any other percentiles you list (such as 10, 90). Tick plots: histogram, density, boxplot, dotplot, QQ plot, bar plot for categorical variables. Frequency tables appear for nominal and ordinal variables, with counts, relative frequency, percent, cumulative frequency, cumulative relative frequency and cumulative percent. Classes named by numbers ("60 to under 70") are listed in numeric order.

Quartile method. "Textbook halves" (default) finds Q1 and Q3 as the medians of the lower and upper halves with the overall median excluded, which is what the course teaches by hand. "Type 7" is what R and Excel use by default; the two can differ for small n. Boxplots use the same rule as the descriptives.

Scatterplot

Quick scatterplot with an optional group colour and regression line; the Graph menu version has more options.

Graph

All graphs land in the Graphs tab. Every graph follows the honest-graph rules, and says so under the picture. Every graph dialog has an Appearance section (title, axis labels, color), and the edit button on the card reopens it with your choices filled in. A group (Group by, or Color by on the scatter plot) is a categorical column. A numeric column with 10 or fewer different values works too: each value is a group, in numeric order. With more values, or with an ID column, a message under the box asks for a categorical grouping variable instead; Data, Bin into classes turns a numeric column into classes you can group by. The same holds for Split by in Descriptives.

ItemPickOptionsRead it as
Bar Plota categorical variable, optional groupcounts or percent; order (automatic keeps ordered scales in order, otherwise tallest first); counts above bars; frequency table; horizontalWhich categories are common. With a group, percent within group compares groups of different sizes fairly.
Pie Charta categorical variableshow percent and countParts of one whole only. A bar plot is usually clearer.
Histograma numeric variable, optional groupfrequency, relative frequency or density; bin width and starting point; frequency above each bin; frequency table (with cumulative frequency and cumulative relative frequency); mean and median lines; normal curve overlay with the mean and SD of the dataShape (symmetric, skewed left or right, one peak or more), centre, spread, gaps and outliers. Change the bin width twice before trusting a feature.
Dotplota numeric variable, optional groupmean and median linesOne dot per observation, nothing hidden.
Boxplotone or more numeric variables, optional groupshow all points; horizontalBox from Q1 to Q3, line at the median, whiskers to the last values inside the fences, dots beyond. Skew shows as a long whisker or an off-centre median.
Stem and Leafa numeric variableleaf unitA histogram that keeps every value.
Scatter Plotx and y numeric, optional colour, optional label columnleast-squares lineDirection, form, strength, outliers, in that order.
QQ Plota numeric variable, optional groupPoints near the line mean roughly normal. Curving means skew; tails peeling off mean outliers. Use it to justify t when n is under 30.

T-Tests

The One Sample and Independent Samples t-test dialogs (and both Z-Tests) have a Data switch: from the data table, or "from summary statistics" (type the mean, SD and N from a textbook problem). With no data loaded they open in summary mode. If a summary box is empty, a message says what to type, and no card is made. The Paired Samples T-Test works from two columns of data. Options: mean difference with confidence interval, effect size (Cohen's d), descriptives, descriptives plots.

One Sample T-Test

Tests whether the population mean equals a test value. Reports t, df, p, mean difference, the confidence interval, and the condition check (n at least 30, or a normal-looking QQ plot when n is smaller). The formula box shows t = (x bar minus mu0) / (s / sqrt(n)).

Independent Samples T-Test

Compares two group means. Welch's version (no equal-variance assumption) is the default; untick it for Student's. Hypothesis can be two-sided, group 1 greater, or group 1 less. If the grouping variable has more than two levels, name the two you want, for example Full-time, Not employed; left blank, the first two levels are compared and the card says so. Summary-statistics mode takes mean, SD and N for each group (each SD above 0, each N at least 2).

One Sample Z-Test and Two Sample Z-Test

Only for problems that give the population standard deviation sigma. You type sigma (one, or one per group); the card gives z, the p-value, and the interval x bar plus or minus z* sigma / sqrt(n). If only the sample SD s is known, use the t-test: the card says so.

Paired Samples T-Test

Two columns measured on the same subjects (before and after). The test is a one-sample t on the differences; tick "Histogram of differences" to see them.

ANOVA

One-Way ANOVA

Three or more group means. Fisher's (equal variances) and Welch's F are both available; the homogeneity check compares the largest SD with the smallest (ratio under 2 passes), and Levene's test (deviations from the median, the Brown-Forsythe version) is available as a formal check. Tukey post-hoc tests tell which pairs differ, with adjusted p-values. Descriptives table and plot (means with confidence intervals) are optional.

Two-Way ANOVA

Two factors, with or without their interaction (Type II sums of squares, as R's car::Anova). Main effects, interaction, cell means table and interaction plot: non-parallel lines in the plot are the interaction.

ANCOVA

One factor plus one or more numeric covariates. The ANCOVA table (Type II) tests the factor after the covariates and each covariate after the factor, with partial eta squared; the adjusted means are each group's predicted value at the covariate mean, with standard errors, so the groups are compared as if they had the same covariate value; Holm-adjusted pairwise comparisons of the adjusted means; the homogeneity-of-slopes check (the group by covariate interaction) says whether one adjustment serves every group; and a scatterplot with the parallel fitted lines.

Repeated Measures and Mixed ANOVA

Wide data, one column per condition, with an optional between-subjects factor. Mauchly's sphericity test, Greenhouse-Geisser and Huynh-Feldt corrections, Holm-adjusted pairwise paired t-tests, the ICC and a profile plot.

MANOVA

One factor, two or more outcomes tested at once. Pillai's trace, Wilks' lambda, the Hotelling-Lawley trace and Roy's largest root, each with its F approximation (as R's summary.manova), the group means, a follow-up one-way ANOVA on each outcome with a Bonferroni line, and a profile plot of the standardized group means. Pillai's trace is the one to read when the groups are unequal in size or spread. Checked against R on the iris data.

Kruskal-Wallis and Friedman

The rank-based versions of one-way and repeated measures ANOVA, for ordinal, skewed or small data. Kruskal-Wallis compares three or more independent groups (H on chi-square). Friedman ranks each row across the conditions: the chi-square with the tie correction, Kendall's W as the agreement between rows, median and mean rank per condition, and Holm-adjusted pairwise Wilcoxon signed-rank tests. Both are also under Nonparametric.

Regression

Correlation Matrix

Two or more numeric variables. Pearson (linear) and Spearman (rank) correlations, with p-values if requested, and a grid of scatter plots. r near 0 means no linear relationship, not no relationship.

Linear Regression

One dependent variable and one explanatory variable (covariate). Reports the coefficients table (intercept, slope, SE, t, p, confidence interval), r (with the sign of the slope) and r squared, the residual plot and QQ plot of residuals, and predictions at one or several x values (comma separated). Each prediction comes with a confidence interval for the mean response and a prediction interval for one new value, and a warning when x is outside the data. Tick "Show confidence and prediction bands" to draw both bands around the line. The slope interpretation sentence is written for you.

Sensitivity to a lurking variable (Cinelli-Hazlett benchmark)

After "correlation is not causation", the honest next step. Pick an outcome, a treatment (the cause being studied, a number or a 0/1 column), the covariates you adjust for, and a benchmark covariate. The card fits the regression and reports the robustness value: the share of the remaining variation of both the treatment and the outcome that an unobserved confounder (a lurking variable) would have to explain to bring the estimate to zero, and the smaller share that would make it not significant at alpha. The partial R2 of the treatment is the floor: a lurking variable explaining less than that of the outcome cannot explain the estimate away whatever its link to the treatment. Benchmarking asks what a lurking variable 1, 2 or 3 times as strong as the chosen covariate would do: its R2 with the treatment and the outcome, the adjusted estimate, SE and t. The contour plot shows the adjusted estimate for every strength, with the dashed red line where it reaches zero and the benchmark points marked. Formula, worked numbers and an APA-style sentence follow, as on every card. Cinelli and Hazlett (2020), Journal of the Royal Statistical Society B; the sample dataset Darfur survey is the paper's example (peacefactor on directlyharmed, benchmark female), and the card reproduces its Table 2.

Frequencies

2 Outcomes: Binomial test

One proportion against a test value. The exact binomial p-value is always given; its two-sided p adds every outcome as unlikely as the one observed, the same rule as R and jamovi. Tick "Also show the z test" for the course's by-hand method with the success and failure check (n p0 and n (1 minus p0) both at least 10). Summary mode: successes and n. Interval method: standard (Wald, the by-hand formula, default), plus four, Agresti-Coull, Wilson score, or exact Clopper-Pearson. When there are fewer than 10 successes or failures, the card points you to one of the small-sample methods instead of the standard interval.

N Outcomes: chi-square Goodness of fit

Do observed counts across categories match expected proportions? Choose Equally likely (every level gets 1 / k, the default) or type your own proportions or counts in the level order shown. The card states which null was used, shows the expected counts and the check that all are at least 5.

Contingency Tables: Independent Samples

Two categorical variables, or a typed table of counts. Chi-square test of independence with expected counts, row, column and total percentages; for a 2 by 2 table also Fisher's exact test, the odds ratio and the relative risk with confidence intervals. Fisher's Hₐ, shown when Fisher's exact test is ticked, picks the alternative: two-sided, greater (row 1 has a larger share of the first column, right tailed) or less (left tailed), where row 1 and the first column are the first ones in the Contingency Tables result (a typed table keeps the order you typed); for Ana with 8 makes and 2 misses and Ben with 3 makes and 7 misses, greater gives "Hₐ: Ana has a larger share of make than Ben (right tailed)" with exact p-value 0.0349. Each cell shows whatever you tick under Cells and Percentages, separated by vertical bars. If you untick all of them the table falls back to the observed counts and says so, rather than printing empty cells.

Two proportions: z test

Compares a success proportion between two groups using the pooled z test taught in the course, with the confidence interval for the difference and the success-failure check in each group. Type the success level exactly as in the data (Yes, not yes); if it is not one of the levels, the message under the box lists them. Summary mode takes successes and n per group.

distrACTION

Calculators, no data needed (Custom can also read two columns of the open dataset). Each one opens on the distrACTION page and works out its answer from the starting values at once, so a card is there before you type anything. The probability calculators draw the distribution and shade the probability.

How the page works

Events you can find

Compute list wordingEventDiscrete (binomial and the others)Continuous (normal, uniform, exponential, t, chi-square, F)
P(X at most x1)X ≤ x1includes x1area to the left of x1
P(X less than x1)X < x1excludes x1same as at most
P(X at least x1)X ≥ x1includes x1area to the right of x1
P(X more than x1)X > x1excludes x1same as at least
P(X = x1)X equals x1the bar at x1always 0
P(x1 at most X at most x2)x1 ≤ X ≤ x2includes both endsarea between
P(x1 less than X less than x2)x1 < X < x2excludes both endssame area between
quantile: x for cumulative probability pthe x for a cumulative probability p (type p in x1)the smallest x with P(X ≤ x) at least pthe x with P(X ≤ x) = p

Every calculator lists these events in this order (T-Distribution and Chi-square and F list their t*, p-value and critical value choices first). Binomial opens on P(X = x1); the continuous calculators open on "probability: P(X at most x1)". On the continuous calculators the same choices start with "probability:" (for example "probability: P(X at most x1)"), and the card adds the note "For a continuous variable, < and <= give the same area; P(X = a) = 0." For a discrete variable the strict and inclusive choices differ, and the app computes each one exactly. Example, Binomial with n = 4 and p = 1/6: P(X < 1) = 0.4823, P(X ≤ 1) = 0.8681, P(X = 1) = 0.3858, P(X > 3) = 0.0008, P(X ≥ 3) = 0.0162.

The calculators

Nonparametric

Rank-based alternatives for skewed data, ordinal scores or small samples.

Learn

Teaching tools that show where the theory comes from. Nine of them need no data and open on the Learn page, so they work on a projector in a room where no one has a file open: everything except bootstrap and permutation. The Central Limit Theorem, the sampling distribution simulator and Bayesian can still use a column of the open dataset. Bootstrap and permutation work from your data and stay with the table.

Advanced

For second courses, research methods and upper-division work. Each card still ends with a plain-English reading.

ItemWhat it doesKey options and reading
Multiple Linear RegressionOne numeric outcome, several numeric and categorical predictors (categories are dummy coded; the most frequent level is the reference).Squared terms, one interaction, residual and QQ plots, VIF for collinearity (above 5 is a concern), influence diagnostics (leverage, standardized residuals, Cook's distance), nested F test against a reduced model, backward elimination demo. Read each slope as the change in the outcome per unit of that predictor, holding the others fixed.
Logistic RegressionA two-level outcome. You name the level modelled as 1.Coefficients, odds ratios with confidence intervals, model chi-square, McFadden R squared, classification accuracy, predicted-probability plot. An odds ratio of 1.5 means the odds are 50 percent higher per unit.
Count RegressionPoisson and negative binomial for counts (0, 1, 2, ...).Rate ratios with confidence intervals and a dispersion check; when the dispersion is well above 1, the negative binomial is recommended.
Multinomial Logistic RegressionThree or more unordered outcome levels against a baseline.One set of coefficients per non-baseline level, relative risk ratios.
Ordinal Logistic RegressionAn ordered outcome (proportional odds). You type the levels from lowest to highest.One set of odds ratios that apply across every cut point.
Variance testsOne SD against a claimed value (chi-square), or two SDs compared (F). Data or summary statistics.Test and confidence intervals for sigma and sigma squared, or for the ratio of variances. Both tests need normal populations at any sample size; to check equal spread before ANOVA, Levene's test is safer.
McNemar testPaired yes or no (before and after on the same people).Uses only the discordant pairs; summary mode takes the two discordant counts.
Cochran-Armitage trend testDoes a proportion rise or fall across ordered groups?Trend chi-square and a plot of the proportions.
Power and Sample Sizet-tests, proportions, ANOVA, correlation, chi-square.Find power for a given n, or the n for a target power; power curve and effect-size sensitivity plot. Effect sizes should come from prior studies, not the data you are about to collect.
Bootstrap confidence intervalMean, median, SD, proportion, difference in means or medians, correlation, slope.Resamples, seed (same seed, same answer), percentile interval; a basic interval is added when bias is noticeable.
Permutation testTwo groups, paired, or correlation.Exact logic of a p-value with no normality assumption.
Time SeriesA numeric series in row order.Time plot with moving average, ACF and PACF, additive or multiplicative decomposition, lag-1 plot, linear trend with Durbin-Watson, Holt forecast with the seasonal pattern added back.
Principal Component AnalysisThree or more numeric variables.Eigenvalues, scree plot, loadings (varimax optional), score plot coloured by a group.
Exploratory Factor AnalysisItems of a questionnaire.Principal axis factoring with varimax; loadings below a cutoff hidden; communalities.
Reliability (Cronbach's alpha)Items of one scale.Alpha, alpha if item dropped, item-rest correlations; reverse-keyed items flipped for you. Alpha at least 0.7 is the usual bar.
k-means ClusteringTwo or more numeric variables.Standardized by default, k-means++ starts, elbow plot, cluster plot on the first two principal components, optional cluster column added to the data.
Survival AnalysisTime to event with censoring.Kaplan-Meier curves with confidence bands and censoring ticks, median survival, risk table, log-rank test between groups, Cox proportional hazards model with hazard ratios and a forest plot.
Bayesian InferenceA proportion (beta prior) or a mean (normal prior), from a column or typed numbers.Prior, likelihood and posterior on one plot; posterior mean, SD and credible interval; probability the parameter is above a value you choose.

Results

8. Honest graphs

Statistics software will happily draw a misleading picture. Stats Without Walls refuses to, and prints the rules it followed under each graph so students learn them.

9. Writing up a result

Use the "copy text" button, then write one paragraph with these parts: what was compared, the statistic with its degrees of freedom, the p-value, the decision at alpha, and what it means in context. The blue box gives you most of this sentence. The three examples below come from "Our class data (40 students)", so you can run them and compare.

Students who worked full time drank more coffee than students who were not employed (Welch t(13.1) = 2.45, p = 0.029, mean difference 1.22 cups a day, 95% CI 0.14 to 2.30). At alpha = 0.05 we reject H0. Both groups are small (10 and 9 students), so the result assumes roughly normal populations.

Run it with T-Tests, Independent Samples T-Test: Coffee_Cups_Daily by Employed, with Full-time, Not employed typed as the two levels to compare.

There was no evidence of an association between employment and owning a pet (chi-square(2) = 0.56, p = 0.756). Fail to reject H0. The smallest expected count was 3.83, below 5, so the chi-square p-value is only approximate.

Run it with Frequencies, Contingency Tables: Independent Samples: rows Employed, columns Pet_Owner.

There was no evidence of a linear relationship between study hours and GPA (r = -0.18, p = 0.279). The slope was -0.0098 GPA points per study hour (95% CI -0.028 to 0.008), and study hours explained 3.1 percent of the variation in GPA.

Run it with Regression, Linear Regression: dependent variable GPA, covariate Hours_Study.

Always report the condition check. If it failed, say so and report the nonparametric or exact result instead.

10. Saving and sharing work

11. How it differs from other tools

Menus, option names and table names match the course instructions, so they work as written. Where common statistics software and the course textbook disagree, Stats Without Walls follows the textbook:

TopicOther toolsStats Without Walls
QuartilesType 7 interpolationTextbook halves by default (median excluded); Type 7 available
Mode with tiesShows one valueLists every mode, or "no mode" when all values are unique
Standard deviationSample (n minus 1) onlySample by default, population SD available and labelled
One proportionExact binomial onlyExact binomial plus the z test with the success-failure check
Two proportionsOften missing from the base menusPooled z test with confidence interval
Meanst, or z with a known sigmat by default; the Z-Test needs sigma typed in and its card says to use t when only s is known
One proportion intervalOne methodStandard (Wald) by default; plus four, Agresti-Coull, Wilson and exact on request
Histogram binsAutomatic, may differ by groupEqual nice bins shared across groups, editable width and start
Summary statistics inputOften not availableThe one-sample and two-sample t and z tests, the proportion tests and chi-square accept typed summaries
GraphsMixed with outputOwn Graphs tab
PriceFree to paid subscriptionsFree, always

12. Troubleshooting

SymptomCause and fix
A numeric column is not offered in a t-test or histogramOne cell contains text (such as "NA" or "n/a"), so the column was typed as nominal. Clear the cell, or use Data, Set variable type, Continuous.
"Column not found"A filter or formula uses a name that does not match exactly (case and underscores matter). Copy the header text. Text must be in quotes: Year == Freshman looks for a column called Freshman; write Year == "Freshman".
Only one variable gets selected in a multi-select listHold Cmd (Mac) or Ctrl (Windows) while clicking. On a phone or an iPad, tap each one you want.
Every row is grey and analyses say "no rows"The filter excludes everything. Clear the filter box and press Enter.
"Levels of X: ..." under a boxYou typed a level (a success level, a level to test, a yes level) that is not in the data. The message under the box lists the levels and, when only the capitals differ, names the right spelling; type one exactly. Run makes no result until it matches.
Pink "small group" warningA group has fewer than 5 rows. The result is fragile; say so in the write-up or combine groups.
Results look stale after an updateThe browser cached an old version. Reload with Shift held (or Cmd Shift R). The browser-installed version updates itself on the next launch with internet; the desktop app does not, so download the new version from the download page when one is announced.
Mac says the app "cannot be opened" or "is damaged"The app is not Apple-signed, so macOS quarantines it. Right-click the app in Applications and choose Open, once. If there is no Open Anyway button (newer macOS), open Terminal and run xattr -d com.apple.quarantine "/Applications/Stats Without Walls.app", then open the app normally. Also check you downloaded the right build: Apple Silicon for M1 to M4, Intel for older Macs.
Windows SmartScreen warningClick More info, then Run anyway. The installer is unsigned but the same file as on the download page.
The data table has disappearedYou are on the distrACTION or Learn page. Click Back to data at the top left (or the browser's Back button). The data are still loaded.
The app opens with a sample dataset I did not ask forBefore build 57 a filter counted as a change, so a filtered sample (a share link or a restore often applies one) was remembered as your own. It no longer counts, and a remembered copy that is exactly the sample is forgotten on the next open. If a copy you did change is in the way, use Data, New data table or open another file; the browser then remembers that instead.
The sample dataset I used last time is goneA sample dataset you did not change is not remembered, so the app opens with an empty table. Open it again from Data, Sample datasets. Once you change a sample (a new column, an edited cell), it is remembered as your own, like your own files and pasted data; a filter alone does not count.
A distrACTION card looks fadedAn input is empty or impossible: the card says "Out of date: see the message under the inputs", and the message says which. Fix it and the card updates.
I cleared a page by mistakeOn the distrACTION or Learn page, press Undo clear (where Clear this page was) right away: it goes as soon as you do something new or leave the page.
My numbers show fewer decimals than the keyResults, Decimal places shown, 4 (the default). The setting applies to new results, so run the analysis again.
Nothing printsThe print window was blocked or closed, or the page is open inside another app (Instagram, the Canvas app) that cannot print. Open the page in Safari or Chrome, wait until the graphs have finished drawing, then use Results, Print or save as PDF, or the browser's own Print: both print only the results. On an iPad or iPhone, use Share, then Print, then pinch out on the preview to save a PDF.

13. Sample datasets

DatasetWhat it isGood for
Our class data (40 students)Survey of a statistics class: major, year, age, commute, study and sleep hours, coffee, exercise, employment, satisfaction, GPA.Everything in a first course.
Class data, exam 1 versionThe same class with exam scores added.Paired and regression questions.
Sleep follow-upSleep before and after an intervention.Paired t-test.
Finch beaksBeak depth in Galapagos finches before and after a drought.Two-sample t, histograms.
Global healthCountries: life expectancy, income, health spending, region.Correlation, regression, ANOVA by region.
Police calls for service, academy fitness, community surveyLaw-enforcement course datasets.Proportions, chi-square, one-way ANOVA, time patterns.
CDC teen survey 2023 (1500 students)Youth Risk Behavior Survey extract: marijuana use, sleep, grades, mood.Contingency tables, two proportions, logistic regression.
General Social Survey 2018 and 2022Astrology and science beliefs, politics, wellbeing of US adults.Chi-square, ordinal outcomes, bar plots of ordered scales.
Big Five personality (1200) and Big Five 50 items (500)Personality scores and raw questionnaire items.Correlation, PCA, factor analysis, reliability.
Cadet mile timesTimes at weeks 1, 4, 8, 12 for two training groups.Repeated measures and mixed ANOVA.
Mauna Loa CO2 monthlyNOAA monthly CO2 since 2000.Time series.
Lung cancer survival (227 patients)Survival time, death or censoring, age, sex, performance score.Survival analysis.

A codebook for the real-world datasets is in the app's data folder (README_real_world_datasets).

14. How the numbers were checked

Every procedure was run on the same data in R (and the jmv package where it exists) and compared to four decimals: t-tests, proportion tests, ANOVA and Tukey, chi-square, regression coefficients and intervals, nonparametric tests, multiple and logistic regression with diagnostics, two-way and repeated measures ANOVA, count, multinomial and ordinal models, power calculations, time-series decomposition and autocorrelation, PCA, factor analysis and varimax rotation, Cronbach's alpha, k-means, Kaplan-Meier, log-rank, Cox regression and the Bayesian conjugate updates. Distributions come from jStat; graphs are drawn with Plotly.

The distribution calculators (binomial, custom discrete, Poisson, geometric, hypergeometric, discrete uniform, uniform, exponential) were checked against R's d, p and q functions, and on 2026-10-14 the strict, inclusive, equal-to, between and quantile events again (binomial, normal, uniform, Poisson, geometric, hypergeometric, t, chi-square and F against pbinom, dbinom, qbinom, pnorm, qnorm, punif, ppois, qpois, pgeom, phyper, pt, pchisq and pf); the z tests, the exact binomial test p-value (against binom.test, on 2026-10-15, for n from 5 to 100,000), the five proportion intervals (against prop.test and binom.test), the variance tests (against var.test), Levene's test (against car::leveneTest), kurtosis, percentiles and the regression confidence and prediction intervals (against predict) the same way. Simulated data were checked by their mean and SD against the distribution they came from. On 2026-10-14 every distrACTION calculator and event (967 cases) was checked again against scipy. Binomial probabilities use the same method as R (Loader's saddle point), so they stay right for any number of trials; this was checked for n up to 10,000.

The Learn demonstrations are checked the same way. The simulated sampling distributions are compared against sigma / sqrt(n); the confidence interval demo is checked by its capture rate against the stated level, which also falls below that level on purpose when the success-failure condition fails; and the p-value demo is checked against the exact binomial, computed independently. Where the z formula and the exact answer disagree, the app prints both and says why rather than hiding the gap.

Stats Without Walls was built by Safaa Dabagh for students at Santa Monica College, West Los Angeles College and Loyola Marymount University, and is free for anyone to use.