Getting Started
@Stat (by @Graph) is a macOS statistics application. It draws bar, horizontal bar, line, pie and scatter charts, box plots, estimation plots, group profiles and Kaplan-Meier survival curves, runs @Graph's full statistics engine, and saves in @Graph's native file format, so files move freely between the two apps. For full data visualization and analysis (recordings, imaging, curve fitting), use @Graph.
The Welcome Window
The Welcome to @Stat window shows recent files (one click reopens them) and four buttons: Open File…, New Spreadsheet, Open Data Log and User Guide. A fifth, Sample Chart, appears when Settings › General › "Show Sample Chart button" is on (the default). Dropping a supported file onto the window opens it. Help › Welcome to @Stat… (⌘@) brings the window forward, or hides it when it's already in front.
Opening a file (Open File…, a recent file, or a drop) closes the Welcome window once it succeeds. The other buttons open their window alongside it and leave it open. Clicking Open Data Log, User Guide or Sample Chart again brings that window forward; each click on New Spreadsheet opens another blank spreadsheet.
Uncheck "Show this window at launch" at the bottom of the Welcome window to skip it. @Stat then starts with just its menu bar; open windows from the File, View or Help menu. Settings › General › "Show start-up window at launch" is the same setting.
Opening a File
- Drop a supported file directly onto the Welcome window to open it.
- Click Open File… on the Welcome window (or File › Open File…, ⌘O) to browse for one with a standard file panel.
- Click any entry under Recent Files on the Welcome window, or under File › Open Recent, to reopen it directly.
- You can also drop a file on the @Stat Dock icon, open it from the Finder, or drop it onto an empty Spreadsheet window to load it there.
- A data file opens in a new Spreadsheet window, ready for Data to Chart. A .@graph file opens as what it was saved as: a Chart window or a Spreadsheet window. A chart is read in the background, so @Stat stays responsive while a large one loads; its window opens when it is ready.
- A .txt or .rtf file opens in a Text Editor window named after the file, with an RTF file's formatting removed. Select a table in it and choose Text Tools › Chart Selection… or Send to Spreadsheet…. Save (⌘S) writes a .txt file back as UTF-8 text; an RTF file's text is saved to a new file, so the original keeps its formatting. Dropped onto an empty Spreadsheet window instead, it loads there as tab-separated cells. A text file over 20 MB asks before it opens.
@Stat reads .csv (split at commas, semicolons or tabs, whichever its rows use) and .tsv text, .txt and .rtf text (in a Text Editor, an RTF file's formatting discarded), Microsoft Excel .xlsx, Apple Numbers .numbers, Stata .dta (Stata 7 and later), GraphPad Prism .pzfx and .prism (Prism 10 and later), and @Graph's .@graph charts and spreadsheets. For a workbook or Prism file with several sheets or tables, @Stat asks which ones to open (see Choosing Sheets and Tables below). @Graph's recording formats (.abf, .axgx, .h5, .mat, .nwb and others) and its Graph and Imaging .@graph files open only in @Graph. An unsupported file shows an alert listing what @Stat can open. A .@graph file that won't open says why: it is an @Graph Graph or Imaging file, it is damaged, or it was made by a newer version of @Graph (update @Stat, then open it again).
- Excel: each number is its stored value (a cell formatted as 45% is 0.45), and error values such as #N/A and #DIV/0! count as missing. Cells formatted as dates or times show as dates (2026-10-05), times (14:30:00) or both, as Excel shows them, with milliseconds when they have any; elapsed times such as [h]:mm:ss stay numbers, a count of days (36:00:00 is 1.5). Hidden sheets aren't offered. Sheets of several hundred thousand cells open, but one whose cells span more than 25 million (usually a stray value far from the data) reports an error.
- Numbers: dates show the same way (2024-01-15 or 2024-01-15 13:30:00), and a duration (1h 30m) comes in as its number of seconds (5400). A document whose cells can't be read (one last saved by an old version of Numbers, say) reports an error; open it in a current Numbers and save it again, or export it to Excel.
- Stata: the variable names become the header row, value labels show as their text, dates show as dates, and missing values (., .a to .z) are blank cells.
- Prism: each data table's X values, row titles and data-set subcolumns become columns, named as the R package pzfx names them (Control_1, Control_2 for replicates; Control_MEAN, Control_SD, Control_N for entered means). Values excluded in Prism are left blank, as Prism leaves them out of its analyses. A .prism file comes in exactly as the same project saved as .pzfx, with entered CVs and high/low limits as Prism shows them. Graphs, analysis results and layouts aren't read, and a damaged or incomplete .prism file reports an error rather than opening with wrong values.
Choosing Sheets and Tables
When a workbook or Prism file holds several sheets or tables, @Stat lists them with a checkbox each, with the table's size and kind when the file states them. The first is checked, so Return opens it right away.
- Check the ones you want, or click Select All (⌘A). Select All shows a dash when only some are checked; clicking it then checks them all.
- Click Open (its title counts them, such as Open 3 Sheets): one opens in its own Spreadsheet window, several open as tabs of one window, in the file's order.
- Space checks or unchecks the highlighted row (move with the arrow keys), Return opens, and Escape cancels.
- Double-click a row to open just that one.
- Opening many shows a small progress panel; Stop keeps the ones already open. Any that can't be opened (an empty sheet, say) are listed together at the end.
Renaming Windows
Double-click the title bar of a Chart, Chart Data, Spreadsheet, Text Editor or Statistics window to rename it. The Data Log keeps its name.
Saving
Chart and Spreadsheet windows save as .@graph files (File › Save / Save As…). The format is identical in both apps, so a file saved in @Stat opens in @Graph and vice versa, with nothing lost. Text Editor windows and the Data Log save as plain text (see Data Log). To share a spreadsheet with other programs, click Export… in its window (or File › Export…, ⇧⌘E); a chart's data window (its spreadsheet) has the same Export…, for the table as it shows it: CSV, TSV or an Excel workbook (.xlsx), with numbers as numbers and the header row in bold and kept in view. Values are exported as shown, not formulas. With Numbers installed, check Open in Numbers after exporting to open the file there too, or click Open in Numbers to skip the file: Numbers opens the table as a new spreadsheet (from an Excel workbook it converts), and nothing is saved until you choose File › Save in Numbers, which keeps it as a Numbers spreadsheet. A spreadsheet or text file kept in iCloud Drive or Dropbox is replaced in one step when you save, coordinated with the sync, and a save that fails leaves the old file untouched.
Settings
@Stat › Settings… (⌘,) has four tabs:
- General: Open files (as tabs of one window, the default, or as separate windows), Show start-up window at launch, Show Sample Chart button, and for the Data Log the default font size of the Data Log and Text Editor windows, Timestamp each log entry, and Log routine file and window activity.
- Appearance: App appearance (Dark, the default, Light or System Default, as in the View menu) and Show a line under the front tab, a thin line in your accent color under the front tab of a window with tabs, also when the window is in the background.
- Appearance: Numbers on charts. Match System Region (the default) writes decimals and thousands as your region does (1,5 in Germany); Always 1,234.5 keeps the point. It applies to every chart on screen and in exports. Negative numbers always use a true minus sign (−).
- Appearance: Default font, axis line width, bar color, data point color and symbol for new charts. Default font sets the font new charts use for titles, axis labels, tick labels, legends and pie labels; titles stay bold. Charts you already have keep their fonts; change them in the chart's inspector. Text you add to a chart starts in its tick label font.
- Export: the default format, resolution (72 to 600 dpi; 300 dpi for print, 600 dpi for line art), transparent background and canvas size of Export Chart… and Copy as PDF.
- Statistics: the default confidence level (95%, or 90% or 99%), the Bootstrap CI method (BCa or Percentile), the small-sample bootstrap warning, Always show effect sizes as positive, and the bracket and error bar defaults for new charts.
@Stat does not reopen the windows that were open when you quit. Windows open only when you ask for them.
Spreadsheets & Charts
New Spreadsheet (Welcome window, or File › New Spreadsheet, ⌥⌘N) opens a blank grid. Type or paste your data, then click Data to Chart to turn the table into a chart.
The first toolbar row holds Undo, Redo, Select All, Copy, Paste, Transpose Table and Sort, with the row × column count at the right. The second holds the blue Data to Chart, Kaplan-Meier and Data Statistics buttons, with Clear All in red at the right. Sort, also in each column's dropdown, sorts the rows by the selected column: whole rows move, the column names stay put, numbers come before text, and blanks go last. A formula that reads its own row keeps working; one that reads another row would read different cells, so @Stat asks first.
Entering Data
- Double-click a cell to edit it and press Return to commit and move down (Tab moves right), or select a cell and start typing to replace its contents.
- Name a column by double-clicking its header. Column names are the table's header row: they become the category or series names in a chart. Option-Return starts a new line, which the chart stacks under the bar, and the header grows to show every line.
- Paste a table with its header row into an empty spreadsheet, or at the first row, and the header becomes the column names; the values start in row 1. Blank lines copied before or after the table are left out, and into an empty spreadsheet a table always goes at the top left, wherever the selection is.
- Select cells and press Delete or Backspace to clear them.
- Hover over a column header or row number and click the caret for Insert Column Before/After and Delete Column (or Insert Row Above/Below and Delete Row). To delete several rows or columns at once, select them (Shift-click or Command-click the headers or row numbers, or select a range of cells), then click the arrow on one of them and choose Delete Selected Rows or Delete Selected Columns. With several selected, the Insert items add that many at once, for example Insert 3 Columns Before. Undo brings them all back. Command-click a row number to add it to the selection or remove it. A spreadsheet always keeps at least one column and one row; this works in the Chart Data window too.
- Drag the line between two column headers to resize the column on its left (the table scrolls sideways when it outgrows the window), or double-click the line to fit the column to its contents; a column keeps its width when others are inserted or deleted. This works in the Chart Data window too. A row grows to show every line of a cell typed over several lines (Option-Return starts a new line while you edit).
- Paste (⌘V or the toolbar button) writes a block of tab-separated data over the grid, as Excel, Numbers and Prism copy it, starting at the top-left selected cell (or the first row if nothing is selected), and adds rows or columns as needed. For comma- or semicolon-separated text, open it as a .csv file, or select it in the Data Log and choose Text Tools › Send to Spreadsheet…. ⌘A selects the whole grid and ⌘C copies the selected cells.
- Fill: point at a cell that holds something and a dot appears in the middle of each edge. Drag a dot down, up, left or right to copy the cell into the cells you drag over; with the pointer over a selected block, the dots fill with the whole block, repeated. Edit › Fill Down (⌘D) copies the top row of a selected block into the rest of it, or the row above into a single selected row; Fill Right (⌘R) does the same from the left. Formulas move their references as Copy and Paste do ($ parts stay fixed); values are copied as they are, without continuing a series. One Undo reverses a fill.
- Opening a CSV, TSV, Excel, Numbers, Stata or Prism file fills a new Spreadsheet window with its data. Quoted CSV fields are read as Excel and R write them: "Smith, J" stays one cell, without its quotes.
Formulas
Type = to start a formula, as in Excel or Numbers: =SUM(B2:B20), =AVERAGE(B:B), =B2/$B$1, =IF(C2>0,"up","down"). The cell shows the result and updates when the cells it uses change; double-click it to edit the formula. Use $ to keep a row or column fixed when you copy. The functions are listed below. Copy and Paste move references as Excel does, and inserting or deleting rows and columns keeps them pointing at the same cells; a reference to a deleted cell shows #REF!. Charts, Statistics and exports use the results, and a cell showing an error counts as missing. Formulas are saved with the spreadsheet. Text starting with = in an opened or imported file stays text. To type text that starts with =, begin with an apostrophe ('=). Chart data tables hold values only.
Row 1 is the first row under the column titles. Hover over a column title to see its letter; the bar under the grid shows the selected cell's address and formula.
Functions:
Operators: + − * / and ^ (power); % after a number is a percent (50% is 0.5) and between two values the remainder; & joins text; = <> < > <= >= compare. A range is written B2:B20, or B:B for a whole column. Where a range goes, a list of numbers can be typed in braces instead (an array constant, in Excel's words): {2,3,4} is a row and {2;3;4} a column. SUM, AVERAGE and the other summary functions skip blank and text cells in a range, and an error cell makes their result that error; COUNT skips errors too.
- Totals and averages: SUM, PRODUCT, AVERAGE, MEDIAN, MIN and MAX. MIN and MAX of no numbers are 0, as in Excel.
- Counting: COUNT (cells holding numbers), COUNTA (cells that aren't empty) and COUNTBLANK(range) (empty cells).
- Spread: STDEV or STDEV.S and VAR or VAR.S for a sample (n − 1); STDEV.P or STDEVP and VAR.P or VARP for a whole population (n); SEM, the standard error of the mean (SD / √n).
- Lines and correlation: SLOPE(y range, x range) and INTERCEPT(y range, x range) of the least-squares line, RSQ (r²) and CORREL or PEARSON (Pearson's r). The two ranges must be the same size, or the result is #N/A. Cells are paired by position, and a pair is left out when either cell is blank or text, as in Excel. The x values can be typed as a list: with nine conditions in columns C to K, =SLOPE(C2:K2,{1,2,3,4,5,6,7,8,9}) is row 2's change per condition; fill it down for every row (Edit › Fill Down, or drag the cell's bottom dot), and the list stays the same in each. For unevenly spaced times, type the times themselves, such as {0,5,15,30,60}.
- Rounding: ROUND(x, digits); ROUNDUP and ROUNDDOWN (away from and toward zero); TRUNC(x, digits); INT (down to a whole number); CEIL(x) (up to a whole number); CEILING(x, step) and FLOOR(x, step) (up or down to a multiple of step, 1 if left out).
- Arithmetic: ABS, SIGN, SQRT, CBRT (cube root), POWER(x, y) or POW, HYPOT(x, y) (√(x² + y²)), MOD(x, y) (the remainder, with the sign of y, as in Excel) and FMOD(x, y) (the remainder with the sign of x).
- Exponentials and logarithms: EXP, EXP2 (2 to the x), EXPM1 (eˣ − 1, accurate for small x), LN, LOG(x) (base 10) or LOG(x, base), LOG10, LOG2 and LOG1P (ln(1 + x), accurate for small x).
- Trigonometry, in radians: SIN, COS, TAN, ASIN, ACOS, ATAN, ATAN2(x, y) (the angle of the point (x, y), in Excel's order), SINH, COSH, TANH, ASINH, ACOSH, ATANH and PI().
- Special functions: ERF(x), or ERF(lower, upper) for the integral between two limits; ERFC; GAMMA or TGAMMA; LGAMMA or GAMMALN (the log of the gamma function).
- Logic: IF(test, then, else), AND, OR, NOT, TRUE(), FALSE() and IFERROR(value, value if error).
- Checks: ISBLANK, ISNUMBER, ISTEXT and ISERROR, each TRUE or FALSE; NA() gives #N/A, to mark a value as missing.
Each column is one category or series; each row below the header is one replicate. Whether rows are the same subject measured repeatedly is set with the Paired / Repeated checkbox in the chart's inspector (see Statistics). A blank or non-numeric cell ("NA", "–", or a spreadsheet error such as #N/A or #DIV/0!) is a missing value: it is left out of that column's statistics but keeps its row, so in a paired design each row stays one subject. A cell marked with a limit, such as <0.5 or >29, says only that its value lies past that limit. Every analysis treats it as missing, and the data checks, the result and the figure legend say how many there are; only the mixed model for profiles can fit it instead (Fit values past a limit).
Numbers may use a decimal point or a decimal comma. @Stat reads the convention from the table's number cells themselves (names such as "Dose 0,5" don't count), not from your Mac's region setting, so "12,5" from a European spreadsheet is 12.5, and a semicolon-separated CSV is split on its semicolons. A leading currency sign and a trailing percent sign are dropped and grouped thousands are read, so "45%" is 45 and "$1,234.50" or French Excel's "1 234,5" is 1234.5.
Name your columns (such as "Control" and "Treated") to label the chart. Unnamed columns get generic names.
Creating a Chart
Data to Chart opens a new Chart window named after the spreadsheet (Results Chart for a sheet called Results), usually as Bar / Dot. If the table's layout is ambiguous, @Stat first asks how to read it (one choice makes a Scatter chart). A table with more than 2,000 data points is too large to chart. A column title typed over several lines (common in Prism and Excel files) keeps its lines: the chart stacks them under the bar, as Prism does, while statistics, reports and the Data Log show the name on one line. Series and Kaplan-Meier group names stack the same way. Change the type with the Chart Type picker in the Chart tab of the inspector (right side of the window); see Chart Types for all 8. The Kaplan-Meier button builds a survival curve instead, from a Time/Status/Group table (see Chart Types). File › Duplicate (⇧⌘K) opens an unsaved copy of the front chart.
The chart keeps its own copy of the data. The spreadsheet icon in the chart's toolbar opens its Chart Data window (titled "Data:" and the chart's name), which closes with the chart. Edits there update the chart, its brackets and a Statistics window linked to it right away: the chart, its data and its Statistics window are one analysis.
The Chart Data window has Undo and Redo (⌘Z, ⇧⌘Z), Copy and Paste buttons that copy or replace the whole table (pasted text may be separated by tabs, commas or semicolons; ⌘C and ⌘V work on the selected cells), Transpose (this view only, the chart is unchanged), and Columns Are Conditions and Each Column Is a Category, which re-read the table when the chart came out the wrong way round. For a repeated-measures chart it shows the subject table instead (see Chart Types). Edits in the original spreadsheet don't affect the chart; click Data to Chart again for a new chart from its current contents. Fill (the dots on a cell's edges, Fill Down ⌘D and Fill Right ⌘R) works there too, copying values. Sort, in the toolbar or a column's dropdown, sorts the rows by the selected column, as in a Spreadsheet, and the chart redraws; sorting by X gives a scatter line that rises. A Volcano table has no Sort, as its rows are tied to their points.
Data Statistics opens the Full Statistics window on the spreadsheet's data, no chart needed (see Statistics).
Long and nested tables: Data Layout (Chart tab) can read a table as it stands. When a table read automatically looks like one of the layouts below, the Data Layout box offers to read it that way, and nothing changes until you choose. With either layout, the Chart Data window shows and edits the table itself. When a chosen layout can't read the table, Data Layout says why.
- One Row per Value is for a long table, one row per measurement: a column naming each row's group (WT, KO; or codes 1, 2) and a column of values, with any other columns, such as the batch, plot or classroom each row came from, kept beside them. Choose the Groups and Values columns under it.
- Nested is Prism's nested table: a heading row of categories, each name over its subcolumns (the cells after it left blank), an optional second heading row titling each subcolumn (Mouse 1, Mouse 2…), then the values. Each category's values are its subcolumns' values together, and each value keeps its subcolumn as where it came from (Values from the same). A subcolumn title used under two categories is the same source, such as a batch measured under both, or an animal recorded in both. Nested refuses a table with a heading over every column, and says so.
- Where each row came from: a table with one column per category can also say this, such as a Batch column beside one column per treatment, or an Animal column beside an IT and an ET column (one paired recording per row). When a column's labels repeat beside 2 or more columns of measurements, Data Layout asks what it is: Data (a category of its own) or Names, as it was read, or Where each row came from. The last leaves it out of the chart, keeps each row's label with its values and sets Values from the same to it. With Paired / Repeated on, each row also becomes the second level, so the brackets fit (1 | source/row), such as (1 | animal/row).
Undo, Save and Close
Undo and Redo (the toolbar buttons, or Edit › Undo ⌘Z and Redo ⇧⌘Z) go back up to 50 steps. In a chart window, ⌘Z also takes back changes to the chart's settings, anything in its Chart and Statistics tabs (a color, a font, a line width, Show legend, Data Layout), one step per change; it leaves alone an edit of the data made since, which the Chart Data window undoes. Save (⌘S) and Save As… (⇧⌘S) write a chart or spreadsheet to a .@graph file; in a chart's Data window they save the chart. Opening a file that is already open brings its window forward, and a saved chart reopens at the size and place it was saved at. File menu commands that don't apply to the window in front are dimmed: Duplicate is for charts, Export… for charts, spreadsheets and Data windows. A • after a window's title means unsaved changes. Closing an unsaved window asks whether to save it; closing a window of several tabs asks once for all its unsaved tabs (Save All, Review Changes…, Don't Save or Cancel). Quitting with unsaved changes asks whether to Review Changes… (the default, which goes through each window in turn, then the Data Log), Cancel, or Discard Changes and Quit.
If @Stat Quits Unexpectedly
Your unsaved work isn't lost. While you work, @Stat keeps a recovery copy of each chart, spreadsheet and Text Editor window with unsaved changes, and of the Data Log. The next time you open @Stat, choose Reopen to bring those windows back as they were, still marked as unsaved; windows that came from a file save back to it with ⌘S. Choose Don't Reopen to move the copies to the Trash. Recovery copies never change your own files, and they're removed when you save, close the window or quit normally.
Using VoiceOver
Each chart reads as one item that gives its type, axes, and each group's n, center and spread. Press VO-Shift-Return on it to hear the data as an Audio Graph. Manhattan and UpSet plots have Audio Graphs too. On a heatmap or dot plot, choose a label in the Row labels or Column labels item with VO-Up and VO-Down Arrow, then press VO-Space to rename it.
Printing & Exporting
File › Print… (⌘P) prints the front window. A chart prints as vector graphics on one page, landscape to start. A Spreadsheet or a chart's data table prints over as many pages as needed, with its header row on every page. The Data Log, a Text Editor or a Statistics window prints its text without splitting lines. In the print dialog, Print header and footer adds the title, date and page numbers, and Fit to page width shrinks wide tables to fit. File › Page Setup… (⇧⌘P) sets the paper size, orientation and scale for the front window. The User Guide prints the page you're reading, or the whole guide with Print all sections in the print dialog. Help › Open User Guide in Browser shows the whole guide as one web page in your default browser, with a contents list linking to each section. To keep or share a copy, save it from the browser (in Safari, File › Save As… with Format set to Page Source).
File › Export Chart… (⇧⌘E), or the Export button in the chart's toolbar, exports PNG, JPEG, TIFF, GIF, PDF or SVG. Export Chart sets the size in points, inches, centimeters or millimeters, and for images the resolution, up to 1,200 dpi. Journal width sets a journal's column width (Nature, Cell, Science, PNAS, eLife / PLOS) and keeps the chart's proportions; text keeps its point size, so check that labels still fit. Transparent background leaves the chart's background out of PNG, TIFF and GIF images, and JPEG has a quality slider. The panel starts from the defaults in Settings › Export. An image file records its resolution in sRGB color, so it places at its intended size in Word or a journal's submission system.
Exported PDF and SVG files are laid out like the chart window, title included, and SVG text stays editable. Each label keeps its font's weight, italic and width, so faces such as Avenir Next Medium look the same in Illustrator, Inkscape and browsers as on screen. SVG sizes are in points (72 per inch), so a file opens at the same physical size in Illustrator, Inkscape, Affinity and browsers.
Right-click a chart and choose Copy as PDF to copy it to the clipboard as PDF, PNG and TIFF, at the size and resolution set in Settings › Export: apps that take PDF (Keynote, Pages, Word, Preview) get a vector image, and apps that paste only images get the PNG or TIFF.
Copy Style (⌥⌘C, in the Edit menu or the chart's right-click menu) copies a chart's look; Paste Style (⌥⌘V) applies it to another chart, with one undo. The data and axis ranges stay as they are.
The spreadsheet grid has no image export. To keep a table, save it as .@graph, print it, or keep its original source file.
Chart Types
The Chart Type picker (Chart tab of the inspector) lists 8 types under Basic (Bar / Dot, Horizontal Bar, Line, Scatter (X,Y), Pie) and Statistical (Estimation Plot, Box Plot, Kaplan-Meier Curve); click a heading to expand it. Types that can't show the current data are grayed out. Most share the Plot Style, Axes & Labels and Range panels, and controls that don't apply to the current type are hidden. A pie has no axis range; its wedges are in Plot Style and its label, shape and legend settings in the Axes & Labels panel. The Statistics tab offers different tools for different types (see Statistics).
Legend (Axes & Labels › Appearance): Show legend and Size apply to every chart's legend. A Bar / Dot, Horizontal Bar, Line or Box Plot chart of two or more series, and a Pie, also offer Layout (Side by Side or Top to Bottom), and their legend can be dragged anywhere on the chart. A repeated-measures Estimation Plot's legends take Layout too and stay over their panels. Scatter and Kaplan-Meier charts keep their legend at the right of the plot, one entry per line. A chart with one series has no legend.
Bar / Dot
The default chart type. Each column is one category and rows are replicates. It shows the raw data points over a mean marker and error bar (SD, SEM or a confidence interval, chosen in Plot Style), or a filled bar with the points on top.
Plot Style › Mean / Bar sets the color of what is shown, a bar, mean line, violin or mean symbol (one color per series when there are several), and Box Plot's Box panel the boxes' color, opacity and width. Data Points sets the points' style, symbol, color, size and opacity. Strip points start out lighter the more of them share a column, so piled-up values stay visible; moving Opacity sets it exactly, and Automatic Opacity brings the thinning back. Error Bars are drawn with the means, so they are dimmed with Points only.
Center (Error Bars panel): Mean, or Geometric mean for log-normal data such as concentrations or titers. The geometric mean is exp of the mean of ln x, as in Prism and R. Its error bars are × / ÷ the geometric SD factor, exp(SD of ln x), or its confidence interval, the t-interval of ln x back-transformed. They look longer above the mean on a linear axis and symmetric on a log axis. SEM has no geometric counterpart. Values at or below zero have no logarithm, so they're left out, and the panel and caption say how many. Geometric mean needs individual values: it isn't available for charts made from means with SD, SEM or n, for 0/1 data, or for violins. Copy Geometric Means copies each group's numbers. Tests and effect sizes still use the values as entered. To compare geometric means, take LN of the values in a spreadsheet and test those: the difference of log means, exp(Δ), is the ratio of geometric means. In the same panel, Color sets what colors the error bars: a color you choose, or each series' line (or bar) color, or its point color, since a series can have a different color for each. With data points hidden, the point color follows the line, the color of the mean's symbol. Show caps turns their end caps on or off.
A table of means with their error values (a label column, then value and error columns in pairs) draws the errors as given. The error column's header says what they are: "SEM" or "SE" is read as SEM, "SD" as SD, and "CI" or "95% CI" as a confidence-interval half-width. With no such word the bars are drawn as supplied and the chart legend says their type wasn't stated. When the header names a confidence level, such as "99% CI" or "CI90", the bars are drawn as given and the legend states that level, whatever the level in Settings; a CI header with no level says the level wasn't stated.
The chart's data table and CSV export include a mean-and-error chart's error columns (for example "Control SEM"), so they can be edited there. The data table stays in step with the chart: renaming a category, wedge or series, or Undo in the chart window, shows in the open table right away, and Undo in the table undoes only the table's own edits.
With Paired / Repeated on, lines connect each subject's points: the values in the same table row. A subject missing a value in one category has its line broken there rather than joined to someone else's point.
Choosing Violin in the Mean / Bar panel draws each category as a violin: a kernel density of the group (Gaussian kernel, Silverman's bandwidth as in R), cut off at the smallest and largest values, as ggplot2 and Prism draw it. The width at each value shows how dense the data are there. The solid line marks the median and the dashed lines the quartiles (the same quartiles as Box Plot); Median and quartile lines (on by default) shows or hides them. Violin width (30–100%, 90% by default, as in ggplot2's geom_violin) is the widest violin's share of the space each group has, so at 100% or less neighboring violins never overlap; each violin is scaled to its own widest point, so violins compare in shape. Violin opacity sets how solid the fill is. The bandwidth is 0.9 × min(SD, IQR/1.34) × n^(−1/5), R's default, also used by ggplot2. Because it uses the smaller of the SD and the interquartile range, an outlier or a second peak does not smooth away the real shape. The curve is evaluated at points no more than a quarter of the bandwidth apart, so a long tail or a far outlier cannot hide the peak.
Automatic axis ranges: a filled bar's length is its value, so a bar chart always includes zero (an all-negative chart runs from its lowest point up to 0). Other marks (boxes, violins, mean symbols, points) show values as positions, so zero is included only when that adds no more than half again the height the data needs: a box plot from −25 to −5 gets a zero line, one from −90 to −60 does not. Line charts just pad around the data. Typing a min or max in the Range panel overrides all of this: type a plain number in the data's units, or add a unit to convert it (on an axis titled in mV, -0.08 V means -80 mV). Marks beyond a typed range are cut at the axis. If a bar chart's range leaves out zero, a warning explains that bar lengths then mislead. The Range panel also holds Logarithmic scale (see Logarithmic Axes).
When category names are too long to sit side by side, they are turned 45° (Bar / Dot, Box Plot and Line). A name too long for the room is shortened with an ellipsis (…); the data table keeps the full name. Beeswarm points move sideways just enough to clear each other. Where a group is too crowded for its column, the extra points overlap and a note on the chart says how many.
Tick values and units: automatic ticks step by 1, 2 or 5 times a power of ten (25, 250 and so on also appear, since they stay whole numbers), so labels rarely need two decimals. When an axis title ends with a unit in parentheses or brackets, such as "Current (nA)", Bar, Horizontal Bar, Box Plot, Line and Scatter (X,Y) charts switch the axis to the prefix that avoids long decimals or long numbers, and the title changes to match: 0.02 nA reads 20 pA, 0.25 V reads 250 mV, 25000 pA reads 25 nA. It works for V, A, s, Ω (or ohm), M, mol, g, L, Hz, S, F, W and m, with or without a prefix; other units (%, a.u., mV/ms, min) and titles without a unit are left alone. Only the axis changes: the data, the Range fields and all statistics keep the unit you typed, and exports match the screen. Turn off Rescale units automatically (Axes & Labels panel, Tick Values) to keep the unit as typed.
Horizontal Bar
Bar with categories on the Y axis and values on the X axis, useful for ranked comparisons or long category names.
A long category name wraps onto two lines, or is shortened with an ellipsis (…) when the rows are close together.
Line
Plots each series' mean at each category and joins them with a line, useful for profiles or dose-response data, with multiple series like Bar. Line charts show error bars (SD, SEM or CI, set under Error Bars). Plot Style › Lines sets each series' line color, point color and solid or dashed line, and the point size. Effect-size brackets are drawn on Bar / Dot, Horizontal Bar, Box Plot and Estimation charts, not on Line charts; the Statistics window compares a Line chart's groups. A missing value breaks the line rather than bridging the gap. With several series, Offset the series slightly (Category Spacing panel in Plot Style) draws each series' points and error bars a little to the side of the category, so overlapping error bars stay readable. For a profile of groups of subjects, the Statistics window's Make Chart gives a fuller chart (each subject's line, the group means, and brackets from the mixed model). Curved lines joins the points with a smooth curve through every point instead of straight segments. It never rises above or falls below its neighbors, so it shows no peak the data don't have.
Repeated Measures by Group
For subjects in 2 or more groups, each measured at several conditions: a table with one row per subject, a column of group codes (0, 1, 2…) and one column per condition. The chart puts the conditions across, one color per group, with each group's mean ± error bars joined across conditions and each subject's own line faint behind them. Its brackets come from a linear mixed model, not from a separate test at each condition (see Statistics).
- Making one: chart the table with Data to Chart. When a column holds groups, as codes (2 to 10 different whole numbers) or repeated labels (WT, KO), the Repeated Measures by Group box in Plot Style lists the conditions; pick the Group column and, if several subjects come from one source (a batch, plot, site or animal), Subjects from the same (the column naming each one's source), then click Make Repeated Measures Chart. A Statistics window set to the Split-plot or Mixed model design makes the same chart with Make Chart. For such a table (the group column first, or named like a grouping such as Group, CellType or Treatment, beside measurements), the Chart tab's Data Layout box and the top of the Statistics tab offer this box with a note, so the mixed model is two clicks away.
- Subjects and Means (Plot Style): Each subject's line, Group means ± error bars (with Join the means across conditions), Offset the groups slightly, Data points, and Subject line opacity. The Error Bars box sets the error bar type (SEM unless the chart already had one). With Each subject's line on, set the lines' opacity, width and color there; Match each group's color sets them back after a group's color changes.
- On a profile, Paired / Repeated shows checked and can't be changed: each row is one subject followed across the conditions in its group, which the mixed model accounts for. Its brackets come from that model, with simultaneous CIs (Statistics tab › Compute Brackets): the groups compared at each condition, or their rates of change over the conditions you choose (see Rate of change below).
- Rate of change: Brackets (in the MIXED MODEL zone) chooses Each condition (the default) or Rate of change. Rate of change asks whether one group rises or falls faster than another, which a single condition tests only weakly. Each group's rate is the least-squares slope through its model-based means, in the data's units per unit, and there is one bracket per pair of groups, spanning the conditions the slope covers, labeled with the difference in slope (first group minus second), its CI and its p, adjusted over the pairs (simultaneous CIs to match). The methods text describes whichever was drawn.
- Slope over … to … limits the slope to part of the profile, such as the response after a drug is applied; it starts as every condition, and the model is still fitted to them all. A condition left out of the model (every subject the same, such as a normalization baseline) is left out of the slope too.
- Show each group's fitted line (off at first) draws each group's straight line over those conditions, dashed in its color, so the slopes being compared can be seen. The legend then adds a dashed Fitted lines entry and the figure legend says what the lines are.
- Effect size (under the window), with Rate of change chosen, sets what each bracket reports: Δ change over the window (the default), how much more one group changed than the other there, in the data's units (the difference in slope times the window's length, the gap the fitted lines open); Δ slope per unit, to 3 significant figures; or dGMA, that change in SDs of a single value (Feingold 2009), with the model's SD of a single value over the window's conditions in place of the baseline SD, so it works for data normalized to a baseline, and an approximate CI. The time-point Effect size choices (g*, d*, Δ) are hidden then.
- Counts (Header, on by default) adds the counts behind the model above the brackets: the subjects (rows) used and, with Values from the same, the sources they come from, in all and per group (“n = 60 subjects from 17 animals”, then “CellType 1: 16 from 6 · …”), and which groups share sources, whose comparison is then partly within sources. The figure legend states them too.
- Each bracket in the list shows its Satterthwaite df beside its p, which reflects how much the comparison rests on: with several subjects per source it lies nearer the number of sources than the number of subjects. Group names keep their underscores as typed in bracket labels.
- Back to One Column per Category (in the Subjects and Means box), or Edit › Undo, returns the chart to its earlier layout.
- The chart's Chart Data window shows the subject table (the group column, the conditions and any source column), and editing it updates the chart, its brackets and a linked Statistics window.
Pie
Each category is a wedge. Pie charts show positive values only: negative values are left out, and the inspector says how many.
- Wedges: Plot Style › Wedges lists every wedge of a pie (one per category, or one per series when there are several series). Set each wedge's color, rename it (the label, legend and data table all follow), or click ↺ to restore its default color.
- Explode: check Explode on a wedge to pull it out of the pie; Axes & Labels › Shape › Explode sets how far. With no wedge checked, the Explode slider pulls out every wedge. Shape also sets the inner radius (for a donut) and the wedge stroke color and width.
- Labels: Axes & Labels › Labels chooses what each wedge shows (None, Name, Value, Percent, Name + % or Name + Value). Position, Size and Font appear when labels are shown, and Text color sets the color of the wedge labels and the legend's names.
- Legend: it follows Axes & Labels › Appearance: Layout (Side by Side or Top to Bottom), Size and Show legend. Drag the legend anywhere on the chart and the pie moves to make room for it; Reset Position puts it back at the bottom (Side by Side) or the right (Top to Bottom).
Scatter (X,Y)
A standard scatter plot: one or more series, each with its own X values, on shared numeric axes. Use it when series don't share X values (for example, two calibration curves sampled at different concentrations).
Data are read as X,Y column pairs: column 1 is the X for column 2, column 3 the X for column 4, and so on. A leftover unpaired column is dropped. Each series is named after its Y column's header, and the X axis after the first X column's header. Pairs may differ in length.
A table whose first column is the X for every other column (Prism's XY table: Age, Weight (female), Weight (male)) makes one series per Y column, all against that X. Data to Chart reads a table this way by itself when it has a header row and its first column plainly holds an X: values increasing down the rows, and either named as one (time, age, day, dose, concentration, voltage, a units and the like) or evenly or geometrically spaced (3, 4, 5 … or 1, 10, 100). A first column named like an identifier (Subject, Mouse, ID, Sample) is never taken as X. Otherwise set Data Layout to "Scatter Plot (First Column Is X)". A new chart read this way joins each series' points, as Prism draws an XY table; Connect Points turns that off.
Three ways to make one: chart a table of X,Y pairs; pick Scatter (X,Y) in the Chart Type picker on an existing chart (two columns are plotted one against the other, and columns that are X,Y pairs as pairs; a chart of several series plots, within each category, every other series against the first; otherwise, as for one column per group, the first column is the X for every other); or set Data Layout (Chart tab) to "Scatter Plot (X,Y Column Pairs)". That layout is also offered in the "How Should This Table Be Read?" dialog for a headerless, all-numeric table with an even number of columns.
Plot Style sets point size and opacity, per-series colors, and Connect Points, which joins each series' points in the order they were entered (not sorted by X), so a loop that doubles back keeps its shape. Curved lines smooths the line. Where a series' X values double back, the curve follows the points in table order and can swing past them, and a note says so.
On a scatter, Data Layout's "Switch Row/Column" becomes "Switch X and Y". It swaps the stored X and Y values and axis titles, and clears any fit lines (regressing Y on X is not the same as X on Y). Switching again swaps them back.
Linear regression is on the Statistics tab. See "Linear Regression on a Scatter" under Statistics.
Estimation Plot
Shows the size and precision of an effect directly, following the estimation approach of Cumming & Calin-Jageman (2024) and the DABEST estimation graphics of Ho et al. (2019). Two groups draw a Gardner-Altman plot (the raw data, with the difference on its own axis beside them); three or more draw a Cumming plot (all groups above, the differences below). With 3 or more groups, Differences in the Plot Style panel compares each group with one group (vs Control, vs Drug A and so on), or every pair (All pairwise). Until you choose, it is the control chosen for the chart's brackets, else a group named like a control (Control, Vehicle, Sham, WT and the like), else the first. The choice is kept by the group's name, so reordering or hiding groups doesn't change it, and in the plot it is also the control Glass's Δ uses.
The difference follows the Compare choice in the Statistics tab, once it has been opened (until then, means): the mean difference, the difference in 20% trimmed means, the Hodges-Lehmann shift (with Paired / Repeated on, the Hodges-Lehmann median of the paired differences), or dominance δ, drawn on its own −1 to 1 axis. Each group's marker is its mean, trimmed mean or median to match (the median for Ranks). Every CI on the plot is a bootstrap interval, 10,000 resamples, and the curve beside each estimate is its bootstrap sampling distribution. Means and dominance δ use the plain bootstrap, BCa (bias-corrected and accelerated) unless Settings › Statistics › Bootstrap CI method says otherwise. H-L shift and trimmed means (and the group medians under Ranks) use the smoothed bootstrap (Silverman & Young 1987): each resampled value gets a little Gaussian noise, scaled so the sample's variance is kept. A plain bootstrap of a median from a small sample can only land on a few values (a median of 10 values is always one value or the average of two), so its curve breaks into lumps at those values and gaps between them; the smoothed curve is single-peaked. Its interval is the percentile interval, which in simulations at n = 10 covers as well as the plain bootstrap's (93–95% for a nominal 95%), where BCa would over-correct (82–86%). The brackets and the Full Statistics window use the test-based CIs instead, so the two can differ slightly.
Each difference is the later group minus the earlier one, and the effect size listed for it in the Statistics tab has the same sign: a Hedges' g-family effect size for Means, AKP robust d (Algina, Keselman & Penfield) for Trimmed means, and the estimate itself for H-L shift and Ranks. With Paired / Repeated on, a difference uses the subjects (table rows) that have a value in both groups, resampled as whole rows. A difference that cannot be estimated (fewer than 2 values, or fewer than 2 matched subjects; for 0/1 data, no values or no matched subjects) is left out of the plot and shows as n/a in the Statistics tab.
0/1 data: when every value in the compared categories is 0 or 1 (the rule that switches the brackets to Fisher's exact or McNemar's test), the plot shows proportions instead, after DABEST's proportion plot, in two panels for 2 groups as for 3 or more. The brackets keep their own effect measure, the odds ratio with Fisher's exact p (McNemar's test when paired), so their p and CI need not agree with the Δp interval.
- Upper panel (0/1 data): each group's proportion of 1s as a bar filled to that height (outlined up to 1), with its Wilson score CI beside it and the count (successes/n) above it.
- Lower panel (0/1 data): each difference in proportions (Δp, the risk difference) with Newcombe's hybrid score CI (method 10). With Paired / Repeated on, it uses Tango's score CI for paired proportions (Tango 1998) on the subjects observed in both groups, which keeps a useful width even when no subject changes (10 subjects staying at 1 and 10 at 0 give Δp = 0, 95% CI −0.16 to 0.16; in exact calculations at 10 pairs it never covered less than 93% for a nominal 95%, where Newcombe's paired interval fell to 72%). The label beside each difference is Δp, or Cohen's h (2·asin√p₂ − 2·asin√p₁, Cohen 1988) when Label is set to Cohen's h in the Statistics tab.
- Why score intervals (0/1 data): with few 0/1 values a bootstrap interval is too narrow (in exact calculations at 5 per group a percentile bootstrap covered 84% on average for a nominal 95%, and as little as 40%; Newcombe's covered 95% on average, never below 90%), so no sampling distributions are drawn.
- Paired flows (0/1 data): paired data also get DABEST's flows. Between neighboring bars, bands show the fraction of subjects going 1→1, 1→0, 0→1 and 0→0, in the bar's color for those starting at 1 and gray for those starting at 0 (the bar's 0s are shaded gray to match), and each Wilson CI moves onto its bar to make room. The flows link the groups in order, like the connection lines of paired data, whichever differences the lower panel shows. A pair of bars gets flows only when every subject has a value in both, so the bands always add up to the bars. Turn them off with Show paired flows in Plot Style.
Values from the same: when the values come from shared sources (cells from one animal, plants from one plot), chosen in the Statistics tab, the plot draws the same linear mixed model as the brackets instead of a bootstrap, which would treat values from one source as independent and give intervals that are too narrow. Each group's center is its model-based mean and each difference the difference in model-based means, each with its own t-based CI (Satterthwaite df), and each curve is the t distribution of that estimate (Cumming 2012). Show each source's mean (on by default, under Values from the same) draws each source's mean over the data as a larger hollow marker (a SuperPlot; Lord et al. 2020). Compare must be Means; the figure legend states the model.
Profiles: the Estimation Plot of a profile (groups of subjects measured across conditions) has two panels on one time axis, with times placed at their values when the column names give them (0, 1, 2, 4, 8 h). Everything comes from one fit of the mixed model the brackets and the Statistics window use (Trend, Covariance, Values from the same and Spreads are in the same tab), checked against R (lme4, lmerTest, mmrm and mvtnorm). Copy Chart Legend describes the model, both panels and the intervals drawn.
- Upper panel (profiles): each group's mean at each condition from the chart's mixed model, with its CI, over each subject's line (Show each subject's line).
- Lower panel (profiles): the differences between the groups at each condition: each group against one group, or every pair with 3 or more groups (Differences, as for the plot above, at any number of groups), side by side and colored by group (with every pair, a ring in the other group's color). Each difference has the t distribution of its estimate as a half curve on its outer side and up to two intervals.
- Intervals (profiles), in the Statistics tab: At each condition (on by default) is that difference's own CI. All times together is the simultaneous CI over every difference drawn (single-step, from the multivariate t), wider, for saying where the groups differ without the risk of looking at many conditions. With both, the thick bar is each time's and the thin bar the simultaneous one, as the legend says.
- What the lower panel shows (profiles): At each condition compares the difference itself, or the change since the first condition (the difference at each condition minus the difference at the first), for groups that start apart. Scale shows the difference in the data's units, or standardized as Hedges' g* or Cohen's d* as the brackets give it (not for a change since the first condition).
- Legends (profiles): the legends over the two panels (the groups above, the comparisons below) follow Axes & Labels › Appearance: Show legend, Layout (Side by Side, wrapping onto more lines, or Top to Bottom, one per line) and Size. They stay over their panels rather than being dragged.
The Show Estimation Plot button, at the foot of the Statistics tab's EFFECT SIZE zone, switches a Bar / Dot, Horizontal Bar, Line or Box Plot chart to an Estimation Plot in place, highlighted while on; clicking it again returns the chart to its previous type and bar display. An estimation plot compares the categories of one series, so it is grayed out (with the reason in its tooltip) for a chart with 2 or more series; for those, the brackets give the differences with their CIs. A profile is the exception: its estimation plot shows its groups across conditions (see Profiles above). Hide data points leaves each group's center and CI; Hide mean marker & error bars hides those. Picking Estimation Plot in the Chart Type picker does the same, and picking another type turns it off.
Box Plot
A box from the first to the third quartile, a line at the median, whiskers reaching the most extreme value within 1.5 × IQR (the interquartile range) of the box, and points beyond them drawn as outliers (Tukey's convention). Raw points can be overlaid. It uses the same data as Bar, and effect size brackets work the same way.
Quartiles use the (n + 1) rule (Hyndman–Fan type 6), as in GraphPad Prism and Excel's QUARTILE.EXC; R's ggplot2 and Python's NumPy use type 7 by default. The method decides which points count as outliers, so state it when publishing. The Data Points panel restates these conventions, and the "Copy Chart Legend" button on the Statistics tab writes the sentence for you.
Notches (Plot Style › Box) narrow each box at median ± 1.58 × IQR/√n, as R's boxplot(notch = TRUE) (McGill, Tukey & Larsen 1978), using the IQR of the box drawn. Boxes whose notches don't overlap suggest their medians differ (roughly 95% confidence; an informal guide, not a test). With small samples a notch can reach past its box. It's then drawn folded outward, as in R, and a note says so. The axis widens to show the notches. Copy Box Statistics copies each box's n, whiskers, quartiles, median and, with notches on, the notch ends.
Kaplan-Meier
A survival curve: one step line per group, starting at 100% and dropping at each event, with tick marks where subjects were censored. The numbers-at-risk table counts subjects whose time is at or after each tick, as R's summary(fit, times =) does.
- The table (separated by tabs, commas or semicolons) has a header row (required) and 2 to 4 columns in this order: Time, Status, Group, Stratum. From a Spreadsheet window the column names are the header row; unnamed columns are called Time, Status, Group and Stratum. The first row is always the header, so if it looks like a subject (a time and a status), the Data Log says it was left out.
- Group is optional; without it everyone is one group called "All". Stratum is optional too and is used only by the stratified tests.
- Status accepts 1/0 (1 = event), event/censored, dead (or death)/alive, yes/no or true/false, in any capitalization. A Status column coded 1 and 2 is read as in R's survival package, 2 = event and 1 = censored. Time must be 0 or more. Rows with any other status or time are skipped, and the Data Log says how many.
- Log-rank test: with 2 or more groups the chart shows χ², degrees of freedom and p-value; a group with nobody at risk at any event time is left out, as R does. The p is a large-sample approximation that runs too small with few events (about 11% false positives at the 5% level for 3 vs 3), so with fewer than 10 events in all the legend adds "Approximate p".
- Hazard ratio: with exactly 2 groups the chart also shows a hazard ratio with its confidence interval, labeled with its direction (vs. the reference group: the first unless you pick another under Tests). It comes from a Cox proportional-hazards model with group as its only covariate, with Efron's handling of tied times and a Wald confidence interval, matching R's survival package.
- When a ratio has no finite estimate: if one group has no events, or every event in one group comes after the last subject of the other has left follow-up, the ordinary ratio is 0 or infinite. The legend then shows Firth's penalized estimate instead (see Firth-penalized Cox below), labeled "Firth-penalized", with a line saying why. With strata, where Firth is not available, the legend says the ratio is not estimable.
The shaded band is a pointwise confidence interval for each curve (Greenwood's variance). Band scale, in the Kaplan-Meier Curve box, sets how the band and the median's interval are computed: Log-log (recommended, as in SAS and Stata) stays within 0 to 100% and covers best in small samples; choose Log to match R's survfit, or Plain (linear). Range › Time Axis Range cuts the curves at a fixed follow-up time, e.g. Max 60 for five years in months; the survival axis is always 0 to 100%. Median survival is where the curve first drops to 50% or below; if it sits exactly at 50% over an interval, the median is that interval's midpoint, as in R. The median's confidence interval is read off the band (Brookmeyer & Crowley 1982): from the first event time whose band contains 50% to the last. An upper limit the band never reaches (for example when the curve falls to 0) is shown as NR, and a lower limit the band leaves undefined (the curve drops straight to 0) as NE (not estimable); R reports NA for both. At 99% with small groups the band's lower edge can dip below 50% at the first event and rise again; that first time is the lower limit here, while R's quantile() reports a later one.
The Kaplan-Meier Curve box in Plot Style turns on or off the censor marks, median survival lines, log-rank test result, confidence band (with its Band scale) and numbers-at-risk table, and sets the line widths and each group's color.
Tests, in the same box: Weighting is the log-rank test by default, the most powerful when the hazards are proportional. The weighted alternatives are Gehan-Breslow (Wilcoxon) and Tarone-Ware, which give early times more weight, and Fleming-Harrington, which weights each event time by S(t−)^ρ · (1 − S(t−))^γ for the pooled survival S just before it (ρ = 1, γ = 0 is R's survdiff(rho = 1); a γ above 0 stresses late differences). Choose the weighting before looking at the curves: trying several and reporting the smallest p inflates false positives. The legend names the test used. Stratify by the Stratum column compares the groups within each stratum (such as a study site) and combines the results, as R's survdiff(... + strata(stratum)); it also stratifies the Cox model, while the curves stay pooled, and blank Stratum cells form a stratum of their own. A group alone in its strata (no other group at risk alongside it) carries no information and is left out of the test, with one fewer degree of freedom, where R reports none. HR reference sets the group the hazard ratios are relative to: the first group unless you pick another (a group named like a control is offered with a Use button, never picked for you).
- Show Cox model adds each group's hazard ratio vs. the reference with its CI (Efron ties, Wald interval, as R's coxph), the likelihood-ratio test of all groups at once, and the Schoenfeld-residual test of proportional hazards (as R's cox.zph: global, plus one per group with 3 or more groups, which is cox.zph(terms = FALSE)). A note appears when a PH p is below α (0.05 at the default 95% level): the hazard ratio may change over follow-up, so it is an average. When a ratio has no finite estimate (a group with no events, or one group's events all happening after the other has nobody left at risk), the model is refit by Firth's method automatically and labeled so; with strata such a ratio reads "not estimable (0)" or "(infinite)" instead.
- Firth-penalized Cox (off by default) fits every hazard ratio by Firth's penalized likelihood (Heinze & Schemper 2001), as R's coxphf with its defaults. The penalty keeps an estimate finite where the ordinary one runs off to 0 or infinity, and it reduces small-sample bias, so it also suits small studies. Each ratio comes with a profile penalized-likelihood CI (not a Wald interval) and a penalized likelihood-ratio p for that group; Show Cox model adds the penalized likelihood-ratio test of all groups at once. Tied times use Breslow's method, as coxphf does (the ordinary fit uses Efron's), and the legend says so. The proportional-hazards test is not computed for Firth fits, since coxphf has none. Firth is not available with strata (coxphf has no strata): the ordinary stratified fit is shown, with a note.
- Show pairwise tests (Holm), for 3 or more groups, tests every pair with the same weighting and strata and adjusts the p-values by Holm's method, as survminer's pairwise_survdiff. A pair that can't be tested reads "not testable" and counts as p = 1 in the adjustment, as there.
Kaplan-Meier Curve is grayed out in the picker for an ordinary chart, since its data has no event times. Build one from a selected table with Kaplan-Meier Selection… on the Text Tools or File menu, or with the Kaplan-Meier button in a Spreadsheet window.
Logarithmic Axes
Turn on Logarithmic scale in the Range panel (or in the sheet you get by double-clicking the tick labels) to draw the value axis, or a scatter's X axis, on a base-10 log scale. Decades are labeled (1, 10, 100, or 10ⁿ for very wide ranges) with unlabeled minor ticks between; a narrower range gets 1, 2, 5 or round-number labels. Available for Bar / Dot, Horizontal Bar, Box Plot, Line and Scatter (X,Y) charts.
- A log axis can't show zero or negative values, so they are left out, and the Range panel and the figure caption say how many. A typed Min or Max must be above zero.
- Bars are shown as mean symbols, since a bar's length from zero means nothing on a log axis. Your bar setting comes back when you turn the log scale off.
- Error bars are the mean ± SD, SEM or CI as computed, so they look longer below the mean. One that reaches zero or below is cut at the axis with no cap.
- Error bars around a geometric mean (× / ÷ a factor) are symmetric on a log axis.
- Violins are drawn from a density of the log of the values, so their shape matches the axis. Box plot quartiles and whiskers come from the values as they are.
- A scatter's fit line is the least-squares line of the values as they are, so on log axes it curves. For a straight line on log axes, fit the log10 of your values instead.
Colors, fonts and all other appearance settings are in the inspector. Legend font (Axes & Labels › Appearance) sets the font of the legend and of the text a chart adds itself, such as effect-size brackets; a new chart starts in Settings' default font. Switching chart type doesn't change the data (Scatter and Kaplan-Meier read it differently, as described above), and a chart switched to Scatter and back keeps its original data.
Statistics
Every chart's inspector has a Statistics tab next to its Chart tab, which works on the categories or series the chart shows. Its Open Full Statistics Window button opens the Full Statistics window linked to the chart (see Chart Link, below); each chart has one such window, and clicking again brings it forward. The same window opens from a Spreadsheet's Data Statistics button, or from Text Tools › Statistics… or File › Statistics… (⌘T) on a table selected in the Data Log or a Text Editor window. All routes use the same tests, effect sizes and data checks.
What the Statistics tab offers depends on the chart type. Bar / Dot, Horizontal Bar, Line and Box Plot get effect size brackets (below). An Estimation Plot gets the same data checks and EFFECT SIZE zone, which there decides what its difference axis shows, plus the effect size of each plotted difference. A Scatter gets linear regression (below). Pie and Kaplan-Meier charts have no statistics on the Statistics tab (just a note saying which chart types do) and no Open Full Statistics Window button. A Kaplan-Meier chart shows its log-rank test and hazard ratio on the chart itself, with its test options (weighting, strata, Cox model, Firth-penalized Cox, pairwise tests) in the inspector's Kaplan-Meier Curve box. For other tests, use the source spreadsheet's Data Statistics button.
The Full Statistics window's Analysis box has four segments: Compare (covered below, including one-sample, two-way, split-plot and whole-distribution designs), Categorical (Fisher's exact 2×2 and r×c, McNemar's 2×2, Cochran's Q, chi-square goodness-of-fit and independence, one-sample binomial), Correlation, and Regression (simple linear, multiple regression, ANCOVA and a 4-parameter dose-response fit). Each reports its own effect sizes and confidence intervals.
Effect Size First: How @Stat Approaches Statistics
@Stat follows the estimation ("new statistics") approach of Cumming & Calin-Jageman (2024): the estimate and its confidence interval are the main result, and the p-value is supporting context. You choose what to compare (Compare, below), and that one choice fixes the estimate, its effect size and the test together, so the p-value and the CI always answer the same question: a CI that excludes zero goes with a significant p. That is why the button that runs a comparison is called Determine Effect, and why results show p-values and effect sizes side by side with no significance stars. You decide what threshold suits your field.
Opening the Statistics tab or window runs only the data checks. A comparison runs when you click Determine Effect in the window or Compute Brackets on a chart. Results go to the Data Log only when you click Send to Data Log. Exporting a report adds just a short note, which Settings › General › Log routine file and window activity can leave out.
The Zones
The chart's Statistics tab and the Full Statistics window's Compare page lay out the same zones in the same order, with the same words:
- Paired / Repeated: on when each table row is one subject measured in every group. Paired tests, effect sizes and the chart's connecting lines then match values by row.
- Values from the same: when values aren't independent (samples from one batch, plants from one plot, students in one classroom, cells from one animal), choose the column naming each value's source, or Subcolumns for a Nested table. It needs a table read as One Row per Value or Nested (Chart tab › Data Layout) and Compare set to Means; a likely column (named like Animal, Subject, Classroom or Plate) is offered with a link. Within category and 0/1 data can't be combined with it, and the Statistics tab says why.
- The model (Values from the same): brackets come from a linear mixed model with a random intercept for each source, as lme4's lmer fits value ~ category + (1 | source). Each shows an effect size (Hedges' g by default, below) with its CI and the p for the difference in model-based means, simultaneous over the comparisons (multivariate t) when there are 3 or more categories. The bracket header gives the ICC and the counts of values and sources, and the figure legend states the model. The numbers equal the Full Statistics window's Mixed model with one value column.
- Within that chooses a second level inside the first (classrooms within each school, plants within each plot, slices within each animal). Each gets its own random intercept within its source (lme4's (1 | source/unit), such as (1 | school/classroom)); the same label in two sources is two units. The result then gives both SDs, the share of the variance at each level, and an ICC for rows from the same source and from the same second-level unit, with the counts at every level.
- Repeated measures in a long table (Participant | Condition | Score, with Values from the same set to Participant): a random intercept per participant, which with two conditions and complete data gives exactly the paired t, and unlike the paired t keeps participants with a missing condition. With Paired / Repeated on, say which rows go together under Within that.
- One column per category, with a column saying where each row came from (Data Layout): turning on Paired / Repeated makes each row the second level within its source, so the values in one row count as one pair or subject.
- Nested tables work the same way: with Paired / Repeated on, row 1 of a subcolumn under each category is one pair within that subcolumn (animal A's first cell before and after the drug), and so on down the rows. The numbers equal a long table read In order within each source.
- Effect size with Values from the same: EFFECT SIZE asks how big the typical difference was, and the Statistics window's table reports g, d and Δ. Hedges' g, the default, is Cohen's d with Hedges' exact small-sample correction at the df of the SD it divides by, ν = S²/(2·Var S), as Hedges (2007) corrects dT in clustered designs. Δ is the difference between the model-based means in the data's own units.
- Cohen's d with Values from the same divides the difference by the two categories' total SDs, each the SD of a single value with every level's variance included, √(σₐ² + σₑ²) or √(σₐ² + σᵦ² + σₑ²) (Hedges 2007; Westfall, Kenny & Judd 2014). They are combined as the design asks: their average, (S₁ + S₂)/2, when the two categories are measured within the same sources (gav and dav, as for paired data; Lakens 2013), or their root mean square, √((S₁² + S₂²)/2), when they come from different sources (g* and d*, as for independent groups; Delacre et al. 2021). The bracket's label says which. Their CIs are approximate (delta method): a little wider than the difference's own, as they also count the uncertainty in the SDs, so one can reach 0 when p is just below α.
- Spreads with Values from the same works as for independent groups. May differ (the default) gives each category its own residual SD (nlme's varIdent), the mixed model's counterpart of Welch's test, so the two SDs combined can differ. Assumed equal uses one residual SD for every category; the two total SDs are then equal and d is the difference in units of the SD of a single value.
- Estimation plots with Values from the same: the means, the differences and their CIs come from the same model instead of a bootstrap (which would treat values from one source as independent). Each curve is the t distribution of its estimate (Cumming 2012), each CI is the comparison's own rather than simultaneous, and the label is the effect size chosen under EFFECT SIZE.
- Show each source's mean (on by default) draws each source's mean over the data as a larger hollow marker (a SuperPlot; Lord et al. 2020), so the plot shows how many sources there are as well as how many values.
- DATA: which groups are compared. The Groups checklist (collapsed, every group checked) leaves out a group you uncheck: on a chart it disappears from the chart and every statistic, its data kept and saved, and a Full Statistics window linked to a one-series chart shares the same checklist. On a chart with 2 or more series, "Within category (compare series, not categories)" compares the series separately within each category instead (such as WT vs. KO at each condition). In the Full Statistics window this zone also holds the Descriptive table and Normality tests buttons, and what the chosen design needs from the data (μ₀, the A×B layout, the group column).
- DATA CHARACTERISTICS: labeled checks of normality, variance, outliers and shape, and the Compare choice the data's shape suggests. Advisory only (see Data Checks and the Suggestion, below).
- EFFECT SIZE: the Compare choice (Means, Ratio, Trimmed, H-L shift or Ranks) with a line stating the estimate; then, for independent Means, Spreads (May differ, the default, or Assumed equal, with Levene's result beside it for information), or, for paired Means, the Question (Magnitude or Consistency); then the effect size, with a line saying what it divides by. On a chart the zone ends with the Show Estimation Plot button, since the Compare choice decides what that plot's difference axis shows.
- TEST: in the Full Statistics window, the Design picker first. With 3 or more groups, the comparisons: All pairwise or vs. Control, with a Control picker. The comparisons start at All pairwise and the control at the first group, and the picker changes it. A group named like a control (Control, Vehicle, Sham, Placebo, Baseline, WT, Pre and similar) is only suggested ("'WT' looks like a control"), with a Use button that makes it the control; a name never changes the comparisons by itself. On a chart that computes brackets once per category, Adjust p across categories (below) follows. They come first because they decide the family: which post-hocs fit, and how many comparisons the p-values and simultaneous CIs are adjusted for. Then a "Will run: …" line naming the test that follows from the choices above (the effect size is shown once, in EFFECT SIZE); for Means with 3 or more groups, a "Multiple comparisons" post-hoc picker; and, for Means, a Tails picker. The test follows Spreads, in EFFECT SIZE.
- On a chart, BRACKETS: the Compute Brackets button, then Display (what each bracket shows) and Position (the list of brackets). In the Full Statistics window, DISPLAY: "Show the comparison on other scales".
There is deliberately no free choice of test. The test is the one that goes with the estimate, so a different test means a different Compare choice.
Compare: What Is Compared
Compare offers four choices (the ⓘ beside it explains each). Each fixes the estimate, its effect size and the test at once:
- Means: the difference in means, with a standardized effect size from the Hedges' g family (below). Two groups: Welch's t-test (Student's t with Spreads set to Assumed equal), or the paired t-test. Three or more: Welch's ANOVA (the classical F with Spreads Assumed equal) with ω² and Cohen's f, or repeated-measures ANOVA with the Greenhouse-Geisser correction, then the post-hoc chosen under Multiple comparisons. The usual choice for roughly symmetric data without far-out values, and the only one with one-tailed tests.
- Ratio: the ratio of geometric means, from Welch's or the paired t-test on the natural logs of the values, back-transformed. A ratio of 1 means no difference. For positive values where a change is proportional, such as concentrations, expression levels and titers. It is offered only when every value is above zero, and is not for values already on a log scale. An estimation plot shows it on its own log axis, marked in ratios, with 1 as no difference; its groups' centers are geometric means. With 3 or more groups, Welch's ANOVA on the logs comes first for independent groups, and the pairs are Holm-adjusted.
- Trimmed means ("Trimmed" in the picker): the difference in 20% trimmed means, which set the highest and lowest 20% of each group aside, with AKP robust d (Algina, Keselman & Penfield 2005) and its bootstrap CI. Tested by Yuen's trimmed t, independent or paired, which does not assume equal variances. Three or more independent groups get Wilcox's trimmed-means ANOVA as the omnibus test; three or more paired conditions have no matching omnibus test, so the Holm-adjusted pairwise tests stand on their own. For data with outliers or long tails.
- H-L shift: the Hodges-Lehmann estimate, in the data's own units, a shift only when the groups have the same shape, or the paired differences are symmetric, and not in general a difference in medians. For independent groups it is the median of all differences between a value in one group and a value in the other; paired, the median of the Walsh averages (all pairwise averages) of the differences. Its CI inverts the Mann-Whitney U or Wilcoxon signed-rank test. It's exact for tie-free data at the sample sizes that get exact p-values (below); otherwise it uses the normal approximation. Paired, the estimate and CI keep zero differences, which the test leaves out. Three or more: Kruskal-Wallis or Friedman, then Holm-adjusted pairwise tests. For skewed data, where the mean is not a typical value.
- Ranks: dominance δ, from −1 to 1. Independent: Cliff's δ = P(A > B) − P(A < B), tested by Brunner-Munzel, which allows unequal spreads; with 10 or fewer values in a group its p and CI come from the studentized permutation distribution (Pauly et al. 2016). Paired: the share of subjects higher in the first condition minus the share higher in the second (subjects with equal values left out), tested by the exact sign test with its Clopper-Pearson CI. Three or more: Kruskal-Wallis or Friedman, then Holm-adjusted pairwise tests. For ordinal scores and any data whose units don't carry meaning.
| Compare | Estimate (effect size) | 2 groups | 3+ groups |
|---|---|---|---|
| Means, independent | mean difference (Hedges' g*; g with Spreads Assumed equal; Cohen's d*, d; Glass's Δ with a control) | Welch's t (Student's t) | Welch's ANOVA (classical F), then the chosen post-hoc |
| Means, paired | mean difference (Magnitude: gav, dav; Consistency: gz, dz) | paired t | repeated-measures ANOVA (Greenhouse-Geisser), then paired t-tests adjusted by Holm, Šidák or Bonferroni |
| Ratio | ratio of geometric means | Welch's t on logs (paired: paired t on logs) | Welch's ANOVA on logs (independent only), then t on logs, Holm-adjusted |
| Trimmed means | 20% trimmed-mean difference (AKP robust d) | Yuen's trimmed t (paired: Yuen's paired t) | trimmed-means ANOVA (independent only), then Yuen's t, Holm-adjusted |
| H-L shift | Hodges-Lehmann shift, or median of the paired differences (HL) | Mann-Whitney U (paired: Wilcoxon signed-rank) | Kruskal-Wallis (paired: Friedman), then Mann-Whitney or Wilcoxon, Holm-adjusted |
| Ranks | dominance δ | Brunner-Munzel (paired: exact sign test) | Kruskal-Wallis (paired: Friedman), then Brunner-Munzel or sign test, Holm-adjusted |
Small samples get exact p-values: Mann-Whitney with fewer than 50 values per group and Wilcoxon with fewer than 50 non-zero differences (using the exact conditional distribution when values tie, as R does), and Brunner-Munzel gets a permutation p-value when either group has 10 or fewer values (exact when there are 20,000 or fewer ways to split the data, otherwise from 10,000 random splits). Beyond that the table marks a p-value "approx.". Wilcoxon drops zero differences from the test, as R and SciPy do. With paired data and 3 or more conditions, each pairwise comparison uses every subject observed in both of its conditions, and the omnibus test uses the subjects observed in all of them.
At very small n the rank-based (Hodges-Lehmann) CI may be unable to reach the requested level; the table and the chart legend then state the level the widest possible interval actually reaches. With tied values in small samples (up to 20 values in all, or 30 pairs) the CI inverts the same exact conditional test as the p-value, so a non-significant p always has 0 inside the CI. A Hodges-Lehmann CI's ends are the limits of the shifts the test does not reject, and an end can itself be rejected: a CI that ends exactly at 0 beside a significant p has 0 just outside, and the table says so. For Ranks, when every value in one group exceeds every value in the other (δ = ±1), no finite-sample CI exists and "—" is shown. For H-L shift on independent groups whose spreads differ (Levene's test), the result warns that Mann-Whitney and Kruskal-Wallis then reject too often for a difference in medians, and points to Ranks or Trimmed means.
Means: Effect Sizes, Post-hocs and Tails
- Independent groups: Hedges' g* by default, the mean difference divided by the square root of the average of the two groups' variances, √((s₁² + s₂²)/2), rather than a pooled SD (Delacre et al. 2021), so the effect size makes the same assumption as Welch's test. With groups of the same size d* equals the pooled d and g* differs from g only through the small-sample correction; the t-test table shows the pooled g beside it for comparison. With Spreads set to Assumed equal, the effect size is the pooled-SD Hedges' g. Cohen's d* or d (without the small-sample correction) is offered in the effect size menu to match a journal's convention, and, with a control (two groups, or vs. Control), Glass's Δ: the mean difference over the control group's SD alone (Glass 1976), bias-corrected on the control's n − 1 degrees of freedom (Hedges 1981), for a treatment that changes the spread as well as the mean. With two groups a Control picker beside it chooses which group is the control.
- Paired: the Question sets what the effect size answers. Magnitude (the default) gives Hedges' gav or Cohen's dav, the mean change divided by the average of the two conditions' SDs (Lakens 2013): "how big was the typical change", comparable with an independent-groups g. Consistency gives Hedges' gz or Cohen's dz, the mean change divided by the SD of the changes: "how consistently did subjects change", which grows with the correlation between conditions. The two can give quite different numbers from the same data.
- 3 or more groups: η² (describes the sample) and ω² (estimates the population, less biased at small n) with Cohen's f for Welch's or the classical ANOVA; partial and generalized η² with Cohen's f for repeated measures (generalized η² is the one comparable across designs, Olejnik & Algina 2003). Each pairwise row gives the mean difference and the effect size, each with its CI.
The Multiple comparisons picker lists only the post-hocs that fit the design, the recommended one first:
- Independent groups, Spreads: May differ (the default): Games-Howell (recommended) or Dunnett's T3 for all pairs; Dunnett's T3 (recommended) or Games-Howell for vs. Control. With small groups (fewer than about 50 each) prefer T3 for all pairs too: Games-Howell can then reject slightly too often, while T3 holds the error rate. T3 (Dunnett 1980) refers each pair's Welch t to the studentized maximum modulus distribution for the whole family, as SPSS, GraphPad Prism and R's PMCMRplus do, and is never less powerful than Šidák-corrected Welch t-tests. Both compare each pair on its own two variances with Welch's degrees of freedom, and the omnibus test beside them is Welch's ANOVA.
- Independent groups, Spreads: Assumed equal: Tukey HSD for all pairs or Dunnett for vs. Control (each holds the family-wise error rate exactly), or Holm-Bonferroni, Šidák or Bonferroni, all on the pooled variance, beside the classical F.
- Paired / Repeated: paired t-tests adjusted by Holm-Bonferroni (recommended), Šidák or Bonferroni. Tukey, Games-Howell and Dunnett assume independent groups and are not offered.
Tests are two-tailed by default. The Tails picker (Means only) offers one-tailed versions of the t-tests and of the Dunnett, Dunnett's T3, Holm, Šidák and Bonferroni comparisons; it is hidden for Tukey HSD and Games-Howell, which have no one-tailed form, and the Trimmed means, H-L shift and Ranks tests are always two-tailed. A one-tailed choice shows an orange reminder that an effect in the other direction cannot be significant. With a one-tailed t-test the effect size's CI is one-sided too (the bound in the tested direction, as R's effectsize reports), so it excludes zero exactly when the one-tailed p is significant; in post-hoc tables the mean-difference CIs become one-sided and the effect-size CIs stay two-sided. Spreads is May differ by default: Welch's methods cost almost nothing when the spreads match and stay valid when they don't (Delacre et al. 2017).
Sphericity (3 or more repeated conditions): Repeated Measures ANOVA and Split-plot ANOVA show Mauchly's test and the uncorrected, Greenhouse-Geisser and Huynh-Feldt p-values side by side. The Greenhouse-Geisser p is the one reported as the result, whatever Mauchly's test says: that test has too little power at typical sample sizes to show that sphericity holds, and the correction costs almost nothing when it does (Maxwell & Delaney 2004). In Split-plot ANOVA the covariance is pooled within the between-subjects groups, as SPSS and R's car package compute it, with Lecoutre's Huynh-Feldt correction. With 2 conditions, or too few complete subjects, the table says sphericity doesn't apply or can't be tested.
Multiple Comparisons: Holm and Simultaneous CIs
For Trimmed means, H-L shift and Ranks with 3 or more groups, the pairwise p-values are Holm-adjusted over the comparisons actually tested, and each CI is Bonferroni-simultaneous, at level 1 − α/m for m comparisons (98.3% for three comparisons at 95%). That is the interval that goes with Holm: a CI that excludes zero always has a significant Holm p. Holm's step-down procedure has no exactly matching interval, so a Holm p just under the threshold can sit beside a CI that still includes zero.
For Means with 3 or more groups, each mean-difference CI is adjusted in the same way as its p-value (for Holm, the Bonferroni simultaneous interval), and every effect-size CI is simultaneous at 1 − α/m, so all rows can be read together, as the chart's brackets show them. In either case a pair that can't be tested (too few values) is left out, with a note saying so.
Data Checks and the Suggestion
The DATA CHARACTERISTICS zone checks the data as soon as the Statistics tab or window opens, and again whenever the data, the selection or the design changes. Each line has an ⓘ with the detail.
- Normality, judged differently by sample size (following Kim 2013): for n = 3 to 50, Shapiro-Wilk (below n = 15 a pass is flagged as weak evidence; below n = 3 no check is possible). For 50 < n < 300, the z-scores of skewness and kurtosis against a strict 3.29 cutoff. For n ≥ 300, the size of skewness and kurtosis themselves (|skewness| > 2 or |excess kurtosis| > 4), since any test flags trivial deviations at that n. (The Normality tests table reports Shapiro-Wilk for n from 3 to 5,000, D'Agostino-Pearson for n of 20 or more, and the Lilliefors-corrected Kolmogorov-Smirnov test.) Normality affects how accurate a Means comparison's p-value and CI are at small n; it does not decide what is compared.
- For a paired design the checks look at what the paired analysis models: each subject's difference (2 conditions) or the residuals after removing subject and condition means (3+ conditions), not each condition's raw values.
- Equal variances (independent groups): Levene's test, Brown-Forsythe version (centered on medians), for information: the Spreads choice, not this check, sets the test (see Which Effect Size Is Which). The largest/smallest variance ratio is shown for scale only. A Levene p within 40% of α (0.03 to 0.07 at 95% confidence) is marked borderline, since a small change in the data could flip it. Paired / Repeated data get no variance check, and need none: the paired tests work on each subject's difference, so the two conditions' own variances never enter them, and Levene's test assumes independent groups, so it would be miscalibrated on the same subjects measured twice. With 3 or more repeated conditions the matching assumption is sphericity, which the repeated-measures ANOVA corrects for itself (Greenhouse-Geisser; see Sphericity, above).
- Outliers: points beyond Tukey's box-plot fences (1.5×IQR outside the quartiles), labeled "far out" beyond 3×IQR, with each point's modified z-score for context (Iglewicz & Hoaglin 1993). On a chart, "Show possible outliers" rings the flagged points in orange (the same switch as "Mark possible outliers" in the Data Points box of the Chart tab's Plot Style panel; a Box Plot draws its own outlier circles instead). When Trimmed means is in effect (your choice, or the suggestion once you click Use), a cyan ring marks the points the 20% trim sets aside, which are not the same points, and a note in the chart's bottom-right corner explains the ring.
The zone ends with a Shape line and "Suggested: compare …". The suggestion follows the data's shape, not a normality test: each independent group is read on its own, since groups may differ in shape. A group of 8 or more is strongly skewed when |skewness| ≥ 1 (Bulmer 1979) and its skew is beyond chance by D'Agostino's test, Bonferroni-corrected for the number of groups. Skew shared by the groups is read from them together, each scaled by its own SD (at least 16 values, |skewness| ≥ 1). Paired data and a single column are one set of at least 16 values: the differences, the within-subject residuals or the column. Strong skew suggests Ranks, which assume no particular shape, unless every group is large enough for the mean to stay reliable (the rule of thumb n ≥ 25 × skewness²; Cochran 1977), when it suggests Means. Right skew in positive values spanning at least a tenfold range, with none left on a log scale, suggests Ratio instead of Ranks. No standard cutoff exists for a log scale, so treat this as a prompt: whether changes are proportional comes from what the values are. Far-out values (beyond 3×IQR, in a group of 7 or more) suggest Trimmed means when they alone cause the skew. Without strong skew they suggest it only when the 20% trimmed mean is clearly the more precise: its variance times 1 + n^(−1/4) must still be below the mean's, the form of margin Jaeckel (1971) gives for choosing the least trimming among near-equal variances, which shrinks as n grows. Choosing by estimated variance goes back to Tukey & McLaughlin (1963); the exponent is this app's choice among those Jaeckel's conditions allow. This suits heavy tails. One far-out value in a large group barely touches the mean, so that stays Means. The trim itself stays at 20%: variance is nearly flat across trims, and a trim chosen from the data would change what skewed groups' means estimate (Jurečková, Koenker & Welsh 1994). Otherwise Means. The points marked as possible outliers (beyond 1.5×IQR) don't enter the suggestion. When the suggestion differs from the current Compare choice, a Use button applies it, and a note says it is only a suggestion based on the data's shape, which may not suit every analysis: choose the comparison from your study design. A chart shows Means (every chart type, Estimation Plots included) until you first open its Statistics tab or a linked Statistics window; from then on it follows your Compare choice, which is Means until you choose another.
Nothing switches automatically. Compare opens on Means (Welch's t or Welch's ANOVA) and changes only when you choose or click Use. A chart's first bracket computation, or turning it into an Estimation Plot, stores the choice in force, so a saved chart reopens on the same analysis; a Full Statistics window's first Determine Effect stores it the same way. Letting a normality pre-test switch the analysis makes the result depend on a noisy preliminary test and alters the error rates of the test that follows (Rochon, Gondan & Kieser 2012), so the checks only advise.
In "Within category" mode the checks pool each series across all categories, after centering each category's values on their own mean, so they describe the series comparison that runs in every category without mistaking differences between categories for skew or outliers.
One group failing a normality check isn't necessarily a problem. With 5 normally distributed groups tested at α = 0.05, there is roughly a 1 in 4 chance that at least one fails by chance.
Which Effect Size Is Which
The symbol tells you the design and the standardizer:
- d and g are standardized mean differences: a difference divided by an SD. g is d with Hedges' small-sample correction, so a g form is the default and d is offered to match a journal's convention.
- No subscript (d, g): two independent groups standardized by the pooled SD, which assumes equal variances. Used when Spreads is Assumed equal (Student's t, the classical ANOVA and its post-hocs), and for a one-sample comparison, standardized by the sample's own SD.
- Star (d*, g*, read "d star", "g star"): two independent groups whose spreads may differ, standardized by the square root of the average of the two variances, √((s₁² + s₂²)/2) (Delacre et al. 2021). The default, used with Welch's t, Games-Howell and Dunnett's T3, so the effect size makes the same assumption as the test. The pooled SD weights each variance by its group's size, so when the spreads differ, d depends on which group happened to be larger; d* weighs the two equally.
- Δ (Glass's Δ): two independent groups, one a control, standardized by the control group's SD alone (Glass 1976), bias-corrected (Hedges 1981). Offered with Spreads May differ, for a treatment expected to change the spread as well as the mean.
- z subscript (dz, gz): paired data, standardized by the SD of each subject's difference. Answers "how consistently did it go one way", so it grows as subjects agree.
- av subscript (dav, gav): paired data, standardized by the average of the two conditions' SDs (Lakens 2013). Answers "how big was the typical change" and can be compared directly with an independent-groups g.
- dAKP (AKP robust d): the 20% trimmed-mean difference over the 20% Winsorized SD, × 0.642 so it sits on Cohen's d scale under normality. The Trimmed means effect size, for either design.
- HL (Hodges-Lehmann): a difference in the data's own units, not standardized. δ (dominance): rank-based, from −1 to 1, where 0 means neither group tends to be larger.
Which one a comparison reports depends on its design, the Compare choice and one setting:
| Design | Compare | Setting | Effect size (alternative) | Test it goes with |
|---|---|---|---|---|
| 2 independent groups | Means | Spreads: May differ (the default) | Hedges' g* (Cohen's d*) | Welch's t |
| 2 independent groups, one a control | Means | Spreads: May differ; effect size: Glass's Δ | Glass's Δ, over the control's SD | Welch's t |
| 2 independent groups | Means | Spreads: Assumed equal | Hedges' g (Cohen's d) | Student's t |
| 3+ independent groups, each pair | Means | Spreads: May differ (the default) | Hedges' g* (Cohen's d*) | Welch's ANOVA, then Games-Howell or Dunnett's T3 |
| 3+ independent groups, each vs. a control | Means | Spreads: May differ; effect size: Glass's Δ | Glass's Δ, over the control's SD | Welch's ANOVA, then Dunnett's T3 or Games-Howell |
| 3+ independent groups, each pair | Means | Spreads: Assumed equal | Hedges' g (Cohen's d) | classical ANOVA, then Tukey, Dunnett or adjusted t-tests |
| 2 paired conditions (or each pair of 3+) | Means | Question: Magnitude (the default) | Hedges' gav (Cohen's dav) | paired t (repeated-measures ANOVA, then paired t-tests) |
| 2 paired conditions (or each pair of 3+) | Means | Question: Consistency | Hedges' gz (Cohen's dz) | paired t (repeated-measures ANOVA, then paired t-tests) |
| 1 column vs. a value (μ₀) | Means | Any | Hedges' g (Cohen's d), over the column's own SD | one-sample t |
| any design | Ratio | Any | ratio of geometric means | t on logs (Welch's, paired or one-sample; Welch's ANOVA on logs) |
| any design | Trimmed means | Any | AKP robust d | Yuen's t (paired Yuen's t, one-sample trimmed t, trimmed-means ANOVA) |
| any design | H-L shift | Any | Hodges-Lehmann estimate (HL), in the data's units | Mann-Whitney U (Wilcoxon signed-rank when paired or vs. μ₀; Kruskal-Wallis, Friedman) |
| any design | Ranks | Any | dominance δ | Brunner-Munzel (exact sign test when paired or vs. μ₀) |
The effect size and the test make one assumption together, set by Spreads, so an effect size never assumes something its test doesn't. Levene's test is shown under Spreads and in DATA CHARACTERISTICS for information; it never switches them. A Levene p above 0.05 doesn't show that the spreads are equal, and choosing the test from a variance pretest distorts its error rates (Zimmerman 2004), while Welch's t loses very little power when the spreads are equal (Delacre, Lakens & Leys 2017). So an ordinary two-group comparison reports g* beside Welch's t even when the spreads look alike. With groups of the same size d* and d are the same number, and g* and g differ only through the small-sample correction (g*'s uses Delacre's degrees of freedom); with unequal sizes and spreads they differ more. The Welch's t table shows both. To report g, set Spreads to Assumed equal, and the test becomes Student's t. Choose that only when the spreads are known to match, from the design or earlier data.
Normality and skew have no switch of their own; Compare is their counterpart. Normality mostly changes how accurate a Means CI is at small n, not what is worth estimating. Skew and far-out values do change that, so DATA CHARACTERISTICS suggests Ranks, Ratio or Trimmed means when they are present, and Use applies the suggestion. Compare stays on Means until you choose: the suggestion is never applied automatically, for the same reason as Levene's test (Rochon, Gondan & Kieser 2012).
The other designs and analyses report these effect sizes (alternatives in parentheses). Overall effect sizes (η², Kendall's W and the like) describe the whole test; the others describe each comparison.
| Analysis | Design | Effect size |
|---|---|---|
| One-sample t, trimmed t, Wilcoxon or sign test (by Compare) | 1 column vs. μ₀ | g (d); AKP robust d; Hodges-Lehmann difference from μ₀; δ = P(X > μ₀) − P(X < μ₀) |
| Two-way ANOVA | two crossed factors | partial η² and Cohen's f for each effect; each post-hoc pair: d |
| Split-plot (mixed) ANOVA | one between-, one within-subjects factor | partial and generalized η², Cohen's f |
| Linear mixed model | groups × repeated conditions, missing values allowed | model-based means and differences; marginal and conditional R² |
| Kolmogorov-Smirnov | 2 independent groups, whole distributions | D (0 to 1) |
| ANCOVA | groups adjusted for covariates | partial η²; each adjusted pair: d |
| Fisher's exact | 2×2, independent | ln(odds ratio) (odds ratio, relative risk) |
| McNemar's | 2×2, paired | Δp, the difference in proportions (paired odds ratio, ln(odds ratio), Cohen's g) |
| Cochran's Q; χ² independence; Fisher's exact r×c; χ² goodness-of-fit | binary or categorical | Kendall's W; Cramér's V and its bias-corrected form (Bergsma 2013); Cohen's w |
| Correlation | one X, one Y | Pearson r (Spearman ρ, Kendall's τ-b) |
Standardized effect sizes (d, g, dav, gav) divide by an SD, so one or two extreme points can distort them. Trimmed means, with AKP robust d, is meant for that case; the data checks suggest it when a far-out value is present, and the choice is yours.
Confidence Intervals
Settings › Statistics › Default confidence level (90%, 95% or 99%; 95% unless changed) applies to every CI. CIs for η², partial η², ω², Cohen's f and a multiple regression's R² are at 1 − 2α instead (90% at the default), the level at which the interval excludes zero exactly when the F-test is significant (Steiger 2004). Its α (1 − the level) is also the threshold of the verdicts the tables state: Mauchly's test, the two-way and split-plot interaction verdicts (and so whether a two-way result shows simple effects), and Levene's test, including its borderline band. Changing this setting, Always show effect sizes as positive or the bootstrap settings re-runs a result already shown in the Full Statistics window.
CIs for Hedges' g and Cohen's d (and g*, d*, gz and dz) invert the t-test that goes with them as a noncentral t (Glass's Δ's uses the control's degrees of freedom with the sample variance ratio plugged in, as the R package effectsize does; Hedges & Olkin 1985), and those for η² and ω² invert the F-test as a noncentral F. Both are exact when the data are normal, as in R's effectsize and MBESS packages, and are usually not symmetric around the estimate, so they are shown as a range rather than ± a margin. The Hodges-Lehmann CI inverts the Mann-Whitney or signed-rank test, and δ's CI comes from the Brunner-Munzel test or the exact sign test, so each normally agrees with its own p-value (with tied values the Hodges-Lehmann CI is approximate).
Why these intervals use λ/(λ + N): every CI for η², partial η², ω² and Cohen's f is an interval for the population share of variance the effect explains, the same quantity a power analysis plans with (Cohen 1988; G*Power). It is found as Steiger (2004) describes: the noncentral-F interval for the noncentrality λ, converted by λ/(λ + N). N is the number of observations the effect is estimated from: all values for a between-subjects effect, subjects × conditions for a within-subjects effect, and the subjects for a split-plot's between-subjects effect.
With Welch's ANOVA, η², ω², their CI and Cohen's f still come from the classical ANOVA table, because converting Welch's F overstates the share of variance. So with very unequal spreads the CI need not agree with Welch's p-value.
- R's MBESS package computes the same interval (Kelley 2007), so any of them can be reproduced there.
- R's effectsize package and JASP convert by λ/(λ + df_error) instead, which carries the bounds through the formula for the sample η². Their intervals come out higher and wider, most in repeated-measures designs, so the two are not interchangeable.
- The sample η² overestimates the population share at small n, so it can sit near or above the upper end of its interval.
- Multiple regression's R² is the exception: its predictors are usually measured on the sampled subjects rather than set by design, so its CI treats them as random and inverts Fisher's (1928) exact distribution of R² under multivariate normality. R's MBESS (ci.R2, by default) approximates that same interval (Lee 1971) and agrees to about three decimals. With predictor values fixed by design (doses, timepoints) the noncentral-F interval applies instead; it is narrower at the top.
Where no formula exists the CI is a bootstrap: AKP robust d, gav and dav (Fitts 2025), and Kendall's W, Cramér's V, Cohen's w, Spearman ρ and Kendall's τ-b. Each uses 10,000 resamples, seeded from the data, so the same data always give the same interval; Settings › Statistics › Bootstrap CI method chooses BCa (bias-corrected and accelerated, the default) or percentile; the Estimation Plot's medians and trimmed means always use the smoothed bootstrap's percentile interval. "Warn on small-sample bootstrap CIs" (on, below n = 5 by default) adds a note to a Statistics window result table whose bootstrap CI rests on fewer values per group or pair than that. Brackets draw a bootstrap CI in curly braces {lo, hi} and any other CI in square brackets.
Odds ratios use exact intervals. Fisher's exact test reports the conditional maximum-likelihood odds ratio, as R does, with the exact interval matched to its p-value (Fay 2010), the same CI the chart's brackets show. McNemar's test reports the difference in proportions Δp = (b − c)/n with Tango's paired score interval (Tango 1998), which uses every subject, keeps close to its level at small n and stays finite when a discordant cell is empty; and, from the discordant pairs alone, the paired odds ratio (b/c) and Cohen's g, with the exact Clopper-Pearson interval. Its p-value is the exact binomial test at any number of discordant pairs (as R's exact2x2 mcnemar.exact gives it), so the exact intervals exclude the null exactly when p is below α. Its table also gives the discordant counts b and c, and notes when fewer than 10 subjects changed, since the odds ratio and Cohen's g then rest on very few of them. Fisher's table also shows the relative risk, with a Koopman score interval. When a cell is empty the odds ratio is 0 or ∞, and the table and brackets print ∞ rather than a made-up finite number. The one-sample binomial test reports the observed proportion and its difference from p₀, each with an exact Clopper-Pearson CI, beside the exact two-sided p, as R's binom.test does. For p₀ other than 0.5 the CI and p can disagree just at the threshold (the CI inverts the equal-tailed test); the table then says so, and the p-value decides the test.
Effect sizes are signed: negative when the first group is lower. On a profile with a control group (one you chose, or one named like a control, such as Control, Vehicle or WT), a bracket with the control reads as the other group minus the control (Treatment A − Control), so each treatment's effect has its own sign; brackets between two other groups keep the first minus the second. With Settings › Statistics › "Always show effect sizes as positive" on, the results restate a negative comparison the other way round: the group names are swapped, and the estimate, its CI and the test statistic (and a one-tailed test's direction) are restated for that order, never just the sign of the effect size flipped. In a one-tailed post-hoc table of all pairs, where the row order is the hypothesis (first-named group > second), rows keep their tested order, and the table says so. Brackets, which name no direction, show the effect size and its CI negated together. Estimation Plot labels stay signed as plotted (later minus earlier group).
The Full Statistics Window
The Analysis box picks Compare, Categorical, Correlation or Regression. Columns holding only 0s and 1s open on Categorical, with the matching test marked ✦ and the counts filled in (three or more independent 0/1 columns open on the chi-square test of independence), and a window opened from a Scatter opens on Correlation.
- Chi-square tests report the smallest expected count. When one is below 1, or more than 20% are below 5 (Cochran 1954), the χ² p-value is unreliable, and the result and the panel suggest Fisher's exact (r×c) test (Freeman-Halton, as R's fisher.test; a table too large to enumerate gets a Monte Carlo p from 100,000 random tables, with its seed shown). Chi-square goodness of fit tests the first checked column, which the panel and the result name.
- Cochran's Q reports an exact permutation p-value beside the χ² one. When few subjects changed (n below 4 or n·k below 24, n counting only the subjects whose responses differ across conditions; Tate & Brown 1970), the exact p is the test's p, the one the result and chart brackets report; otherwise the χ² p is. The result says which rule applied.
- Cochran's Q post hoc: with 3 or more conditions, its pairwise McNemar post hoc (all pairs, or each vs. a control, picked under Options) is run exactly as the chart's brackets run it. Each pair uses every subject with values in both of its conditions, p is Holm-adjusted, and the paired odds ratio and Cohen's g have simultaneous (Bonferroni, 1 − α/m) exact CIs.
- Descriptive table and Normality tests: the DATA zone of every analysis has these two buttons, which show those tables at any time, each with its own ⓘ. The Descriptive table gives n, mean, SD, SEM, median, IQR, min, max, skewness, kurtosis and the mean's CI for each column, and the window opens on it. With Paired / Repeated on, the Normality table adds the paired differences, or the subject + condition residuals with 3 or more conditions: what the test assumes normal.
Compare shows the zones described above, with a Design picker at the top of TEST:
- Groups or conditions: one column per group, or per condition with Paired / Repeated on (one row per subject). Compare picks the analysis, as on a chart.
- One sample vs. a value: one column against a hypothesized value μ₀, typed with a decimal point or comma (anything that isn't a number stops the run with a message rather than being read as 0). Compare picks the test: the one-sample t-test (Means), the one-sample trimmed t (Trimmed means), the Wilcoxon signed-rank test with the Hodges-Lehmann pseudo-median (H-L shift), or the exact sign test with δ = P(X > μ₀) − P(X < μ₀) (Ranks).
- Two-way (factorial): a two-way ANOVA on means. Set the levels of factors A and B with the steppers and order the columns A1B1, A1B2, …, A2B1, … (B changes fastest). Its post-hoc (Tukey HSD by default; Dunnett, Holm-Bonferroni, Šidák or Bonferroni) is its own, not shared with a chart. It compares the levels of each factor and, when the interaction is significant (p < α, from the confidence level), the simple effects: one factor's levels within each level of the other. It treats every value as a different subject, so a warning appears when the data are marked paired.
- Split-plot (mixed): one between-subjects factor, from a column of group codes (0, 1, 2…), and the checked columns as the within-subjects conditions; every subject needs a complete row. The group column is never used as a condition, even if it is checked, and its picker starts from the first column that looks like group codes. The data checks and the Descriptive and Normality tables look at each group × condition cell, and the Variance line tests the groups' spreads at each condition (Levene), the homogeneity the ANOVA assumes; sphericity is tested with the result.
- Mixed model (repeated measures): the split-plot layout (a group column, codes or labels, and one column per condition, one row per subject) fitted as a linear mixed model. Subjects with missing conditions are kept. TEST then offers Trend (None (any shape), the default, or a Linear, Quadratic or Cubic trend) and Covariance (Unstructured (MMRM), the default; Random intercept; Random intercept + slope; or Random intercept + AR(1)); see Linear Mixed Model, below.
- Whole distributions (KS): the two-sample Kolmogorov-Smirnov test, which responds to any difference in location, spread or shape. D, the largest gap between the two cumulative distributions, is the effect size.
The design follows the data until you pick one: a single column opens as One sample, a linked chart with several series per category (not paired) as Two-way, and a linked repeated-measures chart as Mixed model, with the chart's group and Values from the same columns, Trend, Covariance and Spreads. The Paired / Repeated measures data checkbox appears only for Groups or conditions. Pairing is always your choice: @Stat never changes the checkbox from the data. With equal sizes an orange note asks you to check whether the observations are matched; with Paired on and different numbers of values per column (a missing value, say), a note says the paired tests use only the subjects with a value in every compared column.
Determine Effect runs the analysis, and "About this test" (ⓘ) explains the test that will run. Once a result is showing, changing any setting or input (columns, design, Compare, options, counts) re-runs it, so the result always matches what the panel shows, and the exported or logged report is headed with the "Will run" description that produced it. ANCOVA has its own post-hoc choice for the adjusted means (Tukey HSD by default, as in R's emmeans; Holm-Bonferroni, Šidák and Bonferroni also available).
Linear Mixed Model
Design: Mixed model (repeated measures). For subjects in 2 or more groups, each measured at several conditions: neurons of different subtypes recorded at 10 conditions, say. The question "do the groups' profiles differ in shape" is the Group × Condition interaction.
- Data: as for split-plot, a group column of codes or labels (picked in DATA) and the conditions as the other checked columns, one row per subject. A subject missing some conditions is kept, and every value it has counts (split-plot leaves the whole row out). Times come from the column names when each holds a distinct number ("0", "5 min", "Day 14"), else 1, 2, 3… A condition where every subject has the same value, such as the baseline each profile was normalized to (all 1, or 100%), is left out with a note: it holds no information about the groups, and a point with no variance would distort the covariance estimates and add comparisons that are 0 by construction.
- Trend: the columns can be any ordered measure, such as concentrations or stimulus intensities, not only conditions. None (any shape), one mean per group and level, with no assumption about the shape; or a linear, quadratic or cubic trend (orthogonal polynomials over the condition values), with fewer parameters and so more power when the profiles are smooth curves. With a trend, the interaction compares the groups' curve coefficients beyond the level.
- Covariance: Unstructured (MMRM), the default (the MMRM of clinical trials: each condition has its own variance and each pair of conditions its own correlation, so the tests hold whatever the true pattern of correlation). It needs at least as many subjects as conditions plus one per group, at most 30 conditions, and every pair of conditions measured together in at least 2 subjects. When it can't be estimated, the structure with the lowest AIC among the other three is used, and a note in the result says why; random intercept (each subject has its own level; on complete data this reproduces split-plot ANOVA without the sphericity correction); random intercept + slope (each subject also has its own linear trend across conditions); random intercept + AR(1) (residuals correlated across conditions, ρ^(lag) for times lag spacings apart, so neighboring times correlate more than distant ones). The simpler structures assume a pattern; when it doesn't fit, their tests can be too liberal. The result shows AIC for all four (lower is better).
- Spreads: Assumed equal (the default: one covariance for every group) or May differ, the repeated-measures counterpart of Welch's test. May differ gives each group its own residual SD with the random-intercept structures (nlme's varIdent by group; the subject-level variances shared), or its own unstructured covariance with Unstructured (mmrm's us(time | group / subject)), which needs at least one more subject than conditions in every group, else the lowest-AIC other structure is used with each group's own residual SD. Choose it from the design: a treatment expected to change the variability, or groups of very different sizes. The result lists each group's SDs and gives the AIC with the other choice. Checked against nlme and mmrm.
- Fit on a log scale (off by default): fits the model to the natural logs of the values, for data where effects multiply and spreads grow with the mean. Means read as geometric means and differences as ratios, with 1 as no difference, in the Statistics window, on brackets, and on a log axis in the Estimation Plot. Tests are of the logged values, and the covariance estimates stay on the log scale. Standardized effect sizes aren't offered, since a ratio already has no units. Every value must be above zero. It is your choice, made from what you know about the measurement, since no check of the shape can settle it when values are missing past a limit.
- Fit values past a limit (off by default): a cell such as <0.5 or >29 says only that its value lies past that limit. Checked, each such value counts as lying somewhere past its limit rather than as missing: a censored mixed model, the mixed-model form of Tobit regression, fitted by maximum likelihood. Empty cells stay missing unless you say they are below or above a limit, and then every empty cell is treated alike, with the limit given as one number or a column; there is no default limit, because a wrong one changes the answer without looking wrong. The result says how many values were past a limit. Means are model-based and can lie beyond anything measured, and the chart then draws those means and their CIs in place of the plain averages, which leave out the values past a limit. No standard small-sample correction exists for this model, so p-values read p ≈ and are approximate: tests are the likelihood ratio on F and CIs are Wald intervals on t, with subjects − groups denominator df, a rule chosen by simulation (at a 5% level, up to about 8% with 8 to 12 subjects per group, worst with Unstructured). They rest on a normal shape past the limit, so use the log scale where that is the better shape; limits are logged with the values. A warning appears when more than half a group's values at a condition are past a limit. If every value of a group at a condition is past a limit, that mean can't be estimated: choose a trend for time, or leave that condition out. A subject with more than 8 values past a limit needs Random intercept, which is then used and named. Brackets show Δ rather than a standardized size. It can't yet be combined with Values from the same. Fits with many values past a limit take longer, seconds or sometimes a minute with Unstructured; Cancel beside Compute Brackets stops one.
- Fitting: REML, as R's mmrm and nlme (unstructured), lme4 (random intercept, + slope) and nlme (AR(1)) fit it. Tests: Type III F for the group, time and group × condition effects, with Satterthwaite's denominator df, as R's lmerTest and mmrm report them; checked to match lmerTest and nlme on balanced, unbalanced and incomplete data.
- With 3 or more groups, a table tests each pair's difference in shape within the one model, Holm-adjusted.
- Rate of change: each group's slope across conditions (the least-squares line through its model-based means, in the data's units per unit) with its CI, and each pair's difference in slope with its CI and p (with 3 or more groups, simultaneous CIs and adjusted p, as below, and a test that all slopes are equal). When one group rises or falls faster than another, this is the effect size to report beside the interaction, and a more sensitive test of a steady divergence than any single condition.
- Each subject's slope: at the end of the table, every subject's own least-squares slope over the conditions (by row, with its group and, if used, its cluster), and each group's mean and SD of them. Use these to plot or export one rate per subject (a neuron, say): Send to Data Log, select the rows, then Text Tools › Send to Spreadsheet…. They are descriptive; the group slopes above are the model's estimates. In a spreadsheet, =SLOPE(values, times) gives the same number for one row.
- Then: the model-based mean of each group at each condition with its 95% CI, and the group differences at each condition (as R's emmeans, Satterthwaite df). All conditions and pairs form one family, with simultaneous CIs and adjusted p-values that match them: a difference is significant exactly when its CI excludes 0.
- The adjustment: single-step, from the multivariate t distribution of the comparisons (R's emmeans "mvt", multcomp), which accounts for how they correlate and so is less conservative than Bonferroni with the same protection. It is integrated numerically (Genz & Bretz 2009) with a fixed seed, so a re-run gives the same p, accurate to about the 4th decimal. When that integral can't be set up, the table says the adjustment is Bonferroni instead.
- Standardized differences: Hedges' g* and Cohen's d* divide each difference by the root mean square of the two groups' SDs of a single value at that condition, √((S₁² + S₂²)/2), every level's variance included, as for independent groups (Delacre et al. 2021; Hedges 2007; Westfall, Kenny & Judd 2014). With Spreads Assumed equal the groups share one covariance and the two SDs are one. g* adds Hedges' exact small-sample correction at the df of the SD it divides by, ν = S²/(2·Var S) (Hedges 2007). Their CIs are approximate (delta method), simultaneous like the differences', and a little wider. Checked against R (mmrm, lme4 and nlme fits, with the delta method from the REML Hessian).
- The fit: the covariance estimates (for Unstructured, each condition's SD and the correlations between conditions; otherwise the between-subject SD, slope SD and correlation, AR(1) ρ and residual SD), the between-source SD when a Values from the same column is chosen, a singular-fit note when a variance is estimated at 0, the REML criterion, AIC, BIC and marginal R², plus conditional R² for the random-effect structures (Nakagawa & Schielzeth 2013; Johnson 2014).
- Data checks: normality and outliers in each group × condition cell, using every value, and Levene's test across the groups at each condition.
- Also: each pair of groups' difference averaged over the conditions (the difference in level, with its CI; with 3 or more groups, simultaneous CIs and adjusted p, as above), the natural follow-up when two groups share a shape; and, when another covariance structure fits clearly better by AIC, a line naming it.
- Finding it: a table whose checked columns include one of groups, as codes (0, 1, 2…) or labels that repeat (WT, KO; shown as written, in the order they first appear) beside 2 or more columns of measurements gets an offer in DATA to analyze it as a Mixed model, with a Use button. Changing the Design clears the result until Determine Effect, as changing the Analysis does; changes within a design update a result already shown.
- Nested data (Values from the same): when several subjects come from the same source (a batch, plot, classroom, site, plate, litter or animal), choose the column naming each subject's source under Values from the same in DATA (a text column is offered too, and in a window opened from a chart, a column the chart took as row labels); it is None by default, and the layout is otherwise unchanged. The labels can be text ("M1", "M2") or numbers. The model then adds a random intercept for each source above the subjects' own, as R's lme4 fits (1 | source) + (1 | subject). Effects that differ between sources (the groups, when each source gives one group) are then tested against the spread between sources, with degrees of freedom near the number of sources, not the number of subjects. The result adds the between-source SD and the number of sources, and notes when that variance is estimated at 0 (the results then equal those without the column). A column named like Animal, Mouse, Slice, Litter, Subject, Classroom, Plate or Site whose labels repeat is offered with a link (Use “Mouse”). Checked against lmerTest and nlme with sources crossed with and nested in the groups.
- One value per row (clustered data): when each row is one measurement (a sample, a plant, a student, a cell) and rows come from shared sources (batches, plots, classrooms, animals), check just the value column, pick the group column (or None for one group) and, under Values from the same, the column naming each row's source. A table laid out this way (a value column, a group column, codes or labels, and a column named like Animal, Subject, Classroom, Plate or Site whose labels repeat) is recognized in the Groups and One sample designs, which offer to switch.
- The model (one value per row): value ~ group + (1 | source), as lme4's lmer fits it, with Satterthwaite CIs as lmerTest reports them. Spreads (May differ, the default, or Assumed equal) sets whether each group has its own residual SD (nlme's varIdent, the counterpart of Welch's test). A second level inside the first, and repeated measures in a long table, work as under Values from the same (see The Zones). Checked against lme4, lmerTest, nlme and a dense REML fit in R.
- The result (one value per row): each group's mean and the differences with CIs; the between- and within-source SDs; the ICC, the share of the variation that lies between sources (0 when rows from one source are no more alike than any two rows); n rows and n sources for each group; and the same comparison with the rows treated as independent, with the ratio of the interval widths. When spreads may differ, each group's residual and total SD are listed, and the rows-treated-as-independent comparison is Welch's.
- Sources and groups (one value per row): when sources span the groups (two cell types recorded in each animal), the comparison is made largely within each source, and its interval can be narrower than when the sources are ignored. When each source is in one group only, the comparison rests on the sources more than on the rows.
- Standardized differences (one value per row): Hedges' g (Cohen's d with Hedges' exact small-sample correction at the df of the SD it divides by, ν = S²/(2·Var S), as Hedges (2007) corrects dT) and Cohen's d. d is the difference divided by the two groups' total SDs, each the SD of a single value with every level's variance included (Hedges 2007; Westfall, Kenny & Judd 2014): their average for groups measured within the same sources (dav; Lakens 2013), their root mean square for groups from different sources (d*; Delacre et al. 2021). The CIs are approximate (delta method).
- With the Split-plot or Mixed model design, the chart is a profile of each group: the conditions across, one color per group, each group's means ± error bars joined across conditions, and each subject's own line faint behind them. In a window opened from a chart of the same table, choosing either design (or Use on the suggestion) turns that chart into the profile, and choosing another design turns it back (Undo in the chart works too). Otherwise Make Chart opens the repeated-measures chart and links the window to it. Either way the chart, its spreadsheet and the window are one analysis: the data, the group and Values from the same columns, the conditions, Trend, Covariance and Spreads are shared both ways, and the chart's brackets come from the same model. (A window linked to a chart of a different table opens a separate repeated-measures chart, which follows the window.) Subjects and Means, in the chart's Plot Style panel, turns the subject lines, the means and the data points on or off. Repeated Measures by Group, in the chart's Plot Style panel, makes the same chart from the table (pick the Group column and an optional Values from the same column, then click Make Repeated Measures Chart), and Back to One Column per Category (or ⌘Z) undoes it.
- Brackets on the repeated-measures chart (Statistics tab → Compute Brackets) come from the mixed model, not from a test at each condition: the Statistics tab's MIXED MODEL zone replaces Compare and offers the model's Time, Covariance, Spreads and Values from the same.
- Each bracket joins two groups at one condition and shows an effect size for the difference in their model-based means (first group minus second), with its simultaneous CI and its p, adjusted over the whole family: the numbers of the window's per-time table. Effect size chooses Hedges' g* (the default), Cohen's d* (the groups are independent, so their SDs are combined as a root mean square), or Δ in the data's units. Δ's CI excludes 0 exactly when p is below α; g*'s and d*'s are a little wider.
- The bracket list in the Statistics tab names each comparison in full ("Hit 8: Subtype 0 vs Subtype 2") and lists them by condition, left to right. Every condition's brackets are drawn at first; the Show menu above the list narrows them, and the list turns each on or off.
- Rate of change on the repeated-measures chart: under Header (BRACKETS › Display), Rate of change (difference in slope) adds each pair's difference in slope, with its CI and p, below the test name. Brackets, in the MIXED MODEL zone, switches to Rate of change: one bracket per pair of groups spanning the conditions of Slope over … to … (every condition at first), labeled with the difference in their slopes (least-squares slopes through the model-based means), its CI and its p adjusted over the pairs. Show each group's fitted line draws the lines compared.
- A bracket's ends are spread across its condition so it stays readable while the groups' markers nearly overlap, and brackets at neighboring conditions alternate in height so their labels don't collide. They are drawn in the SVG, PDF and PNG exports, and the methods caption describes the model.
- One chart per window: while the repeated-measures chart made from a Statistics window is open, that window's button reads Show Chart, and the chart follows the window: changing the data, the group or source column, Time or Covariance there updates the same chart (keeping its colors and settings) and recomputes brackets already shown. Close the chart to make a fresh one.
Regression Options: Beta Weights, Robust SEs and Diagnostics
In the Regression analysis, Simple Linear (one X, one Y) and Multiple Regression (one Y and two or more predictor columns, one row per observation, each coefficient with its B, SE, 95% CI, t, p and VIF) have three options in the Options box, all off by default. With none on, the table is unchanged.
- Standardized coefficients (β): adds a Std. β column beside each B, the change in Y in SDs per SD of that predictor (B × SD(X) / SD(Y) over the rows used, as R's lm on scale()d variables). It uses this sample's SDs, so it shifts with how widely each predictor happened to be sampled: compare it between predictors in one model, not across studies. With one predictor it equals Pearson r.
- Robust (heteroscedasticity-consistent) SEs: each coefficient's SE, 95% CI, t and p use the sandwich estimator instead, labeled with its name: HC3 (the default, recommended at lab sample sizes; Long & Ervin 2000), HC2, HC1 or HC0 (White 1980), as R's sandwich::vcovHC with lmtest::coeftest (t on the residual degrees of freedom). Use them when the spread of Y changes with a predictor, such as a fan shape in the Residuals vs Fitted plot. R², the model F test and VIF stay the ordinary ones.
- Residual diagnostics: adds R's four plot.lm plots under the result (Residuals vs Fitted, Normal Q-Q of the standardized residuals, Scale-Location, and Residuals vs Leverage with Cook's distance contours at 0.5 and 1), each with its lowess smooth in red and the most extreme rows numbered, plus a table of the rows with the largest Cook's D, leverage and studentized residuals. Each rule is listed with its cutoff and the rows it flags: Cook's D > 4/n (worth a look) or > 1 (highly influential; Cook 1977), leverage h > 2p/n (twice the average hat value, p counting the intercept; Belsley, Kuh & Welsch 1980), and |studentized residual| > 2 or > 3 (externally studentized, as R's rstudent; about 5% of rows pass 2 by chance). Rows are numbered as in your data. A flag is a reason to check that row, not to delete it. The plots stay in the window; the table goes into exported reports and the Data Log.
Show the Comparison on Other Scales
In the Full Statistics window, the DISPLAY zone's "Show the comparison on other scales" (on by default) adds a sensitivity section below a Groups or conditions result: the same comparison on the other three Compare scales. With 2 groups each scale gives its estimate, CI, p-value and test; with 3 or more, its omnibus p (or, for paired trimmed means, which has no omnibus test, its smallest Holm-adjusted pairwise p). For a Two-way design it adds the same analysis on ranks (Scheirer-Ray-Hare), which needs the same number of values in every A×B cell and gives too many false positives for the interaction in small samples. A conclusion that holds on only one scale is worth a second look.
Chart Link: Show Chart and Make Chart
A Full Statistics window opened from a chart is linked to it: pairing and every Compare setting (Compare, Spreads, question, effect size, post-hoc and tails) are shared both ways, and so are the comparisons and the control while the window compares exactly the chart's groups. Brackets already on the chart are recomputed when a shared setting changes in either place. The window's Show Chart button brings the linked chart forward. A repeated-measures chart opens its window on the Mixed model design, sharing the group and Values from the same columns, Trend, Covariance and Spreads with the chart (see Linear Mixed Model, above).
A window opened on a spreadsheet or on selected text shows Make Chart instead: it opens a Bar / Dot chart of the data (a repeated-measures chart with the Split-plot or Mixed model design) and links the window to it, carrying the window's current settings over, after which the button reads Show Chart. Edit as Spreadsheet… opens the data in a spreadsheet whose edits update the window right away. While the chart is a profile (Split-plot or Mixed model), its spreadsheet shows the subject table: one row per subject, with the group column, the conditions and any source column.
Effect Size Brackets & Compute Brackets
On Bar / Dot, Horizontal Bar, Line and Box Plot charts, the Statistics tab draws effect size brackets above the plot. The Compute Brackets button, first in the BRACKETS zone below the settings, runs the comparison set up in the zones above for each pair (all pairs, or each group against the control) and draws the brackets, each with its effect size, that effect size's confidence interval and the p-value.
The test follows the Paired / Repeated checkbox, so it always matches the design. A paired comparison matches subjects by table row and uses the subjects with values in the groups it compares; if the chart's values did not come from a table with one row per subject, it cannot know which values belong together, so the brackets aren't drawn and the panel says why rather than pairing values by their position in each list. If every group has the same number of values and you know they list the same subjects in the same order, click Values are listed in subject order to pair them by position.
Brackets are computed in the background, so the chart stays responsive while bootstrap intervals run; a small spinner beside Compute Brackets shows while they do. Brackets stay current: editing the data, flipping Paired / Repeated, or changing Compare, the question, the effect size, the comparisons, the control, the post-hoc, the tails or Spreads in the Statistics tab recomputes them, and if the data can no longer be tested as set up they are removed and the reason is shown. Each bracket CI is stored with the confidence level it was computed at.
A chart whose two series hold only 0s and 1s gets Fisher's exact test (or McNemar's, when paired) whatever its chart type. So does a single series of 0s and 1s (or 3 or more such series compared Within category), whatever Compare is set to:
- Fisher's exact test reports the odds ratio (conditional maximum-likelihood estimate, first group over second; 0 or ∞ when a group is all 0s or all 1s) and its exact CI matched to the test (Fay 2010, as R's exact2x2 gives it), so the CI excludes 1 exactly when p is below α.
- The difference in proportions (Δp, first group minus second) comes first, without a CI, since no interval for it matches Fisher's p: 7/12 vs 2/11 shows "Δp = 0.40, OR = 5.77 [0.87, 52.2]" beside p = 0.089.
- With 3 or more groups the pairs are Holm-adjusted with simultaneous (Bonferroni) CIs, each at 1 − α/m so it excludes 1 exactly when the pair's unadjusted p is below α/m, under a Fisher's exact or Cochran's Q omnibus test.
Brackets compared within each category sit side by side, one per category. When a label is wider than its category, all of them shrink together (to no less than 65% of the size) so neighboring labels don't run into each other; a repeated-measures chart alternates their heights instead.
The BRACKETS zone's Display part sets what the brackets show: the effect size (its ⓘ explains the one in use) and its CI, and the p-value, each above or below the line; and the Header drawn once above the brackets: Test name, Omnibus test (3 or more groups: the overall test's name, statistic, degrees of freedom and p, plus ω² or partial η² for Means), both, or neither. Its Position part, the list of brackets, hides, nudges or removes single brackets, moves them all together, and has Clear All and Reset Positions. Above the list, Show chooses which brackets are drawn: All comparisons (the default), Chosen in the list (a checkbox of your own switches to this), Adjusted p < α (offered while p is shown), CI excludes 0 (1 for an odds ratio), or an effect at least a size you type (for example |g*| ≥ 0.5, either direction). Every comparison is still computed and adjusted as one family; a line says how many are drawn (Showing 4 of 27 comparisons), with Show All, and the methods text says which were drawn and why. With many columns, choosing which comparisons to make before looking at the results (Compare to, or the list) keeps a chart clear more defensibly than hiding results. With p-value off, the chart's methods text describes the effect sizes and CIs, and says p-values are not reported.
p-values are printed to 3 decimals (p < 0.001 and p > 0.999 at the ends), with more decimals when rounding would land on or across 0.05 or 0.01 (0.04996 prints as 0.04996, not 0.050); a p-value outside 0 to 1 shows as n/a.
On a paired proportions chart, the Question picker chooses Magnitude (the default) or Consistency:
- Magnitude shows Δp, the difference in proportions (first group minus second) with Tango's paired score interval: how much more often one condition responded, in the chart's own units, using every subject. This is what reviewers of paired 0/1 data usually expect, and it stays finite when no subject changed in one direction. Magnitude's menu also offers the paired odds ratio (b/c, labeled OR) and its log (ln OR), with exact intervals; they are 0 or ∞ when a discordant cell is empty.
- Consistency shows Cohen's g, the share of the subjects whose outcome changed that changed toward the first group, minus ½. It describes only those subjects, so a single changed subject gives its maximum, 0.5. Because a plain "g" elsewhere is Hedges' g, the leftmost McNemar bracket spells it out as "Cohen's g" and the rest say "g".
- Discordant pairs: when Cohen's g or the odds ratio rests on fewer than 10 changed subjects (discordant pairs), the bracket adds their number, as in "g = 0.50 [−0.48, 0.50] (n=1)", and the Statistics tab notes it; Always show discordant-pair count (n) adds it to every bracket. Copy Chart Legend lists each comparison's discordant pairs (first only vs second only).
- Fisher brackets on a two-series chart show the log odds ratio, labeled ln OR, signed by direction, with the exact CI matched to Fisher's p (Fay 2010), so it excludes 0 exactly when p is below α.
Copy Chart Legend writes a methods sentence from what actually ran: the test and post-hoc, one- or two-sided, the comparisons (all pairs, or each group against the named control), how a paired design handled missing values and its complete-case n, the question the effect size answers and its full name with its CI level (simultaneous with 3 or more groups, and the bootstrap method where used), any rank-based CI that could not reach that level, and, when brackets are computed once per category, whether p-values were also adjusted across categories.
Adjust p across categories (Holm) appears in the TEST zone, or under the test description on a proportions chart, when brackets are computed once per category (proportions charts, and Within category comparisons). It is off by default, so each category is its own family, which suits categories that are separate outcomes or conditions. Turn it on when the categories together answer one question: the comparisons of all categories are then one family, Holm-adjusted once from each comparison's unadjusted p-value (never adjusted twice; for Means with 3 or more series each pair's t-test takes the post-hoc's place), so the chance of any false positive in the whole figure stays at your significance level. The effect-size CIs then cover the same family: each is at the Bonferroni level for all M comparisons (1 − α/M), since Holm has no exactly matching intervals. Where the CI inverts the test behind the p-value (t-tests, Fisher's and McNemar's exact tests), a CI that excludes the null (0, or 1 for an odds ratio) always has a Holm-adjusted p below α, but a Holm-adjusted p below α can still have a CI that reaches it. The methods caption says so.
New charts compare all pairs; a category named like a control is offered as a suggestion, with Use switching to vs. Control against it. With 5 categories all pairs means 10 brackets, which can crowd a short chart; use vs. Control when there is a natural baseline, or make the window taller.
Effect sizes with a bootstrap interval (AKP robust d, gav and dav) take 10,000 resamples per comparison, so a chart with many brackets can take a few seconds.
Estimation Plot
The Show Estimation Plot button, at the foot of the Statistics tab's EFFECT SIZE zone, switches the chart to an Estimation Plot in place and is highlighted while it is on; click it again to return to the previous chart type with its bar display restored. Choosing another type in the Chart tab also turns it off. Turning it on stores the Compare choice, as the first bracket computation does.
The plot follows DABEST (Ho et al. 2019). Its difference axis shows the Compare estimate; Estimation Plot under Chart Types describes the plot and its intervals. On an Estimation Plot the Statistics tab shows the data checks, the EFFECT SIZE zone that sets the difference axis, and the effect size of each plotted difference. For 0/1 data the plot shows proportions with score intervals instead (Wilson for each proportion; Newcombe for a difference, or Tango with Paired / Repeated on; see Chart Types), and the tab offers the label choice, Δp or Cohen's h, in place of the data checks and Compare.
Linear Regression on a Scatter
On a Scatter (X,Y) chart the Statistics tab runs ordinary least-squares linear regression with Pearson correlation for each series separately (series are never pooled), each line in its series' color.
Each series has a Linear Regression button. It reports the equation with the slope's confidence interval (t-based), r with its confidence interval (Fisher z), r² and p (two-sided test of slope ≠ 0), at the confidence level set in Settings, and draws the line as a dashed preview over the range of your X data (never extrapolated, as in ggplot2 and Prism). Keep Fit makes the line solid and saves it with the chart; Remove discards it. A preview stays dashed in print and in PDF and SVG exports. The band and the options for robust SEs, the standardized slope and residual diagnostics appear once a series has a fit. A line from Connect Points is not a fit.
Show confidence band (below the description) shades a band around every fit line, in its series' color. Choose a confidence band for the mean response (where the true line lies, the default) or a prediction band for new observations (where a new single point would fall, so always wider), and a level (95% by default, 50 to 99.99%). The band is ŷ ± t · s · √(1/n + (x − x̄)²/Sxx), with 1 more under the root for prediction, t on n − 2 degrees of freedom: the band R's predict.lm and GraphPad Prism draw. It spans the same X range as the line, is exported to PDF, PNG and SVG, is saved with the chart (off by default), and the Chart Legend box describes it.
Below the band settings are the same options as Simple Linear in the Full Statistics window, for every fit on the chart (all off by default and saved with the chart). Standardized slope (β) adds the beta weight, B × SD(X) / SD(Y), which with one X equals Pearson r. Robust SEs (HC0 to HC3, HC3 recommended) replace the slope's CI and p with sandwich ones, as R's sandwich and lmtest give, labeled (HC3) in the panel and the Chart Legend; r's CI is unchanged. The confidence band then uses the same robust covariance, ŷ ± t · √(x₀ᵀV̂x₀), and the legend says so; a prediction band stays the ordinary one, since it needs one error variance for a new point. Residual diagnostics adds a Residual Diagnostics button to each fit, with how many points are flagged: it opens R's four residual plots and the influence table (leverage, studentized residuals, Cook's D; Row is the point's number in the series) in a window of their own, updated as the data change. In a chart's diagnostics window, Send to Data Log adds the table, Export Table saves it as text, and Export Plots saves the four plots as a PDF or PNG.
Values the data can't support show as "n/a". p needs at least 3 points (with 3 it is a t test on 1 degree of freedom, as in R's lm; with 2 the line is still drawn). When Y doesn't vary, r, r² and p are n/a, because correlation is undefined without variation (Y values that differ only by rounding count as not varying). With fewer than two distinct X values there is no fit, and a note replaces the button. A kept fit has a Remove Fit button.
Open Full Statistics Window sends the X,Y columns to the Correlation and Regression tests, where you choose one X and one Y. These add Spearman ρ and Kendall's τ-b (rank-based, suited to curved but consistently rising or falling relationships), confidence intervals, a 4-parameter logistic (Hill) dose-response fit (Bottom, Top, EC50, Hill slope; the same in any response or dose unit, with Wald and profile-likelihood EC50 CIs, the profile one one-sided when the doses never reach a plateau) and, with more than one X,Y pair, multiple regression and ANCOVA (whose variance check tests the model residuals).
The dose-response fit can hold Bottom, Top or the Hill slope at a value you type (for example Bottom = 0 and Top = 100 for percent data), weight by 1/Y² or 1/Y, and, when some dose is repeated, run the replicates test for lack of fit. Weights come from the fitted curve, as Prism 5 and later take them, and are re-estimated from each fit until they settle (iteratively reweighted least squares; Carroll & Ruppert 1988); R², SEs, CIs and tests then use the weighted SS. Weights from each point's own response, as R's nls(weights = 1/y²) and SciPy's curve_fit take them, pull the curve toward the points that happen to fall low, so those give slightly different numbers. A fixed parameter has no SE or CI and gives its degree of freedom back to the residuals. Compare fits two or more data sets (each checked column against X, or checked X,Y column pairs as a Scatter lays them out) and asks whether one curve fits all, or whether LogEC50, Bottom, Top or the Hill slope differs. It reports each data set's LogEC50 difference from the first with its CI and EC50 ratio, then the extra sum-of-squares F test (F, df, p), the shared fit's parameters and, if checked, AICc.
References
Algina J, Keselman HJ & Penfield RD (2005). An alternative to Cohen's standardized mean difference effect size: a robust parameter and confidence interval in the presence of outliers. Psychological Methods, 10(3):317–328. https://doi.org/10.1037/1082-989X.10.3.317. AKP robust d, the Trimmed means effect size.
Agresti A (2013). Categorical Data Analysis, 3rd edition. Hoboken, NJ: Wiley. The difference of paired (dependent) proportions, Δp, and McNemar's test.
Bakeman R (2005). Recommended effect size statistics for repeated measures designs. Behavior Research Methods, 37(3):379–384. https://doi.org/10.3758/BF03192707. Generalized η² for repeated-measures designs.
Bates D, Mächler M, Bolker B & Walker S (2015). Fitting linear mixed-effects models using lme4. Journal of Statistical Software, 67(1):1–48. The REML fit of the mixed model.
Belsley DA, Kuh E & Welsch RE (1980). Regression Diagnostics: Identifying Influential Data and Sources of Collinearity. New York: Wiley. The 2p/n leverage rule in regression diagnostics.
Bergsma W (2013). A bias-correction for Cramér's V and Tschuprow's T. Journal of the Korean Statistical Society, 42(3):323–328. https://doi.org/10.1016/j.jkss.2012.10.002. The bias-corrected Cramér's V.
Breslow N (1970). A generalized Kruskal-Wallis test for comparing K samples subject to unequal patterns of censorship. Biometrika, 57(3):579–594. The Gehan-Breslow weighting of the Kaplan-Meier test.
Brookmeyer R & Crowley J (1982). A confidence interval for the median survival time. Biometrics, 38(1):29–41. The median survival CI on Kaplan-Meier charts.
Brown LD, Cai TT & DasGupta A (2001). Interval estimation for a binomial proportion. Statistical Science, 16(2):101–133. https://doi.org/10.1214/ss/1009213286. Why the Estimation Plot uses the Wilson interval for a proportion.
Brunner E & Munzel U (2000). The nonparametric Behrens-Fisher problem: asymptotic theory and a small-sample approximation. Biometrical Journal, 42(1):17–25. The Brunner-Munzel test.
Bulmer MG (1979). Principles of Statistics. New York: Dover. The informal |skewness| ≥ 1 rule of thumb for strong skew behind the Compare suggestion.
D'Agostino RB (1970). Transformation to normality of the null distribution of g1. Biometrika, 57(3):679–681. The test of skewness behind the Compare suggestion.
Cochran WG (1977). Sampling Techniques, 3rd ed. New York: Wiley. The rule of thumb n ≥ 25 × skewness² for a reliable mean, behind the Compare suggestion at large n.
Carroll RJ & Ruppert D (1988). Transformation and Weighting in Regression. New York: Chapman & Hall. Why dose-response 1/Y² and 1/Y weights come from the fitted curve, iterated, rather than from each point's own response, which biases the fit.
Cleveland WS (1979). Robust locally weighted regression and smoothing scatterplots. Journal of the American Statistical Association, 74(368):829–836. https://doi.org/10.1080/01621459.1979.10481038. The lowess smooth on the regression diagnostic plots.
Cliff N (1993). Dominance statistics: ordinal analyses to answer ordinal questions. Psychological Bulletin, 114(3):494–509. https://doi.org/10.1037/0033-2909.114.3.494. Dominance δ.
Clopper CJ & Pearson ES (1934). The use of confidence or fiducial limits illustrated in the case of the binomial. Biometrika, 26(4):404–413. The exact interval behind the one-sample binomial CI, the sign test's δ and McNemar's odds ratio and Cohen's g CIs.
Cochran WG (1954). Some methods for strengthening the common χ² tests. Biometrics, 10(4):417–451. The expected-count rule for when a χ² p-value is unreliable.
Cohen J (1988). Statistical Power Analysis for the Behavioral Sciences, 2nd edition. Hillsdale, NJ: Lawrence Erlbaum Associates. Cohen's h for a difference in proportions.
Cook RD (1977). Detection of influential observation in linear regression. Technometrics, 19(1):15–18. https://doi.org/10.1080/00401706.1977.10489493. Cook's distance.
Cox DR (1972). Regression models and life-tables. Journal of the Royal Statistical Society, Series B, 34(2):187–220. The proportional-hazards model behind the Kaplan-Meier hazard ratio.
Cumming G & Calin-Jageman R (2024). Introduction to the New Statistics: Estimation, Open Science, and Beyond, 2nd edition. New York: Routledge, Taylor & Francis Group. The estimation approach and the Estimation Plot.
Cumming G & Finch S (2001). A primer on the understanding, use, and calculation of confidence intervals that are based on central and noncentral distributions. Educational and Psychological Measurement, 61(4):532–574. https://doi.org/10.1177/0013164401614002. Noncentral-t intervals for d and g.
Delacre M, Lakens D & Leys C (2017). Why psychologists should by default use Welch's t-test instead of Student's t-test. International Review of Social Psychology, 30(1):92–101. https://doi.org/10.5334/irsp.82. Welch's t as the default.
Delacre M, Lakens D, Ley C, Liu L & Leys C (2021). Why Hedges' g*s based on the non-pooled standard deviation should be reported with Welch's t-test. PsyArXiv preprint. https://doi.org/10.31234/osf.io/tu6mp. Hedges' g* and its CI, reported with Welch's t.
Dunnett CW (1980). Pairwise multiple comparisons in the unequal variance case. Journal of the American Statistical Association, 75(372):796–800. Dunnett's T3, the unequal-variance post-hoc for all pairs or against a control.
Efron B (1977). The efficiency of Cox's likelihood function for censored data. Journal of the American Statistical Association, 72(359):557–565. The handling of tied event times in the hazard ratio.
Efron B & Tibshirani RJ (1993). An Introduction to the Bootstrap. New York: Chapman & Hall. Bootstrap confidence intervals, including BCa.
Fagerland MW, Lydersen S & Laake P (2014). Recommended tests and confidence intervals for paired binomial proportions. Statistics in Medicine, 33(16):2850–2875. Recommends the exact McNemar test and, for the difference of paired proportions (Δp), Tango's score interval among others.
Fagerland MW, Lydersen S & Laake P (2015). Recommended confidence intervals for two independent binomial proportions. Statistical Methods in Medical Research, 24(2):224–254. Newcombe's interval among those recommended for a difference of independent proportions.
Fay MP (2010). Two-sided exact tests and matching confidence intervals for discrete data. The R Journal, 2(1):53–58. The exact odds-ratio CI matched to Fisher's p-value.
Firth D (1993). Bias reduction of maximum likelihood estimates. Biometrika, 80(1):27–38. The penalized likelihood behind Firth-penalized Cox on Kaplan-Meier charts.
Fisher RA (1928). The general sampling distribution of the multiple correlation coefficient. Proceedings of the Royal Society of London, Series A, 121(788):654–673. https://doi.org/10.1098/rspa.1928.0224. The exact distribution behind Multiple Regression's R² CI.
Fitts DA (2025). Bootstrap BCa confidence intervals for a standardized mean difference in a paired samples design using a pooled standard deviation. The Quantitative Methods for Psychology, 21(3):125–138. The bootstrap CI for dav and gav.
Gehan EA (1965). A generalized Wilcoxon test for comparing arbitrarily singly-censored samples. Biometrika, 52(1/2):203–223. The Gehan-Breslow weighting of the Kaplan-Meier test.
Genz A & Bretz F (2009). Computation of Multivariate Normal and t Probabilities. Lecture Notes in Statistics 195. Heidelberg: Springer. The multivariate t integral behind the mixed model's single-step adjustment.
Glass GV (1976). Primary, secondary, and meta-analysis of research. Educational Researcher, 5(10):3–8. Glass's Δ, standardized by the control group's SD.
Grambsch PM & Therneau TM (1994). Proportional hazards tests and diagnostics based on weighted residuals. Biometrika, 81(3):515–526. The Kaplan-Meier chart's proportional-hazards test.
Hall P, DiCiccio TJ & Romano JP (1989). On smoothing and the bootstrap. Annals of Statistics, 17(2):692–704. Why smoothing improves the bootstrap of a median or other quantile.
Harrington DP & Fleming TR (1982). A class of rank test procedures for censored survival data. Biometrika, 69(3):553–566. The Fleming-Harrington weighting of the Kaplan-Meier test.
Hedges LV (1981). Distribution theory for Glass's estimator of effect size and related estimators. Journal of Educational Statistics, 6(2):107–128. The small-sample correction J behind g, g*, gz, gav and Glass's Δ.
Hedges LV (2007). Effect sizes in cluster-randomized designs. Journal of Educational and Behavioral Statistics, 32(4):341–370. https://doi.org/10.3102/1076998606298043. Effect sizes standardized by the total SD with every level's variance included, used for dav and gav with Values from the same.
Hedges LV & Olkin I (1985). Statistical Methods for Meta-Analysis. Orlando, FL: Academic Press. The sampling distribution of Glass's Δ.
Heinze G & Schemper M (2001). A solution to the problem of monotone likelihood in Cox regression. Biometrics, 57(1):114–119. Firth's penalized Cox regression (R's coxphf), used when a hazard ratio is not estimable or Firth-penalized Cox is on.
Ho J, Tumkaya T, Aryal S, Choi H & Claridge-Chang A (2019). Moving beyond P values: data analysis with estimation graphics. Nature Methods, 16(7):565–566. https://doi.org/10.1038/s41592-019-0470-3. DABEST: the Estimation Plot's bootstrap CIs and sampling distributions.
Hollander M, Wolfe DA & Chicken E (2014). Nonparametric Statistical Methods, 3rd edition. Hoboken, NJ: John Wiley & Sons. The Hodges-Lehmann estimates and their confidence intervals.
Holm S (1979). A simple sequentially rejective multiple test procedure. Scandinavian Journal of Statistics, 6(2):65–70. The adjustment of the Kaplan-Meier pairwise tests.
Iglewicz B & Hoaglin DC (1993). How to Detect and Handle Outliers. Milwaukee, WI: ASQC Quality Press. The modified z-score shown for each outlier.
Jaeckel LA (1971). Some flexible estimates of location. Annals of Mathematical Statistics, 42(5), 1540–1552. Choosing the trimming by estimated variance, and the margin the Compare suggestion uses (p. 1545).
Johnson PCD (2014). Extension of Nakagawa & Schielzeth's R²GLMM to random slopes models. Methods in Ecology and Evolution, 5(9):944–946.
Jurečková J, Koenker R & Welsh AH (1994). Adaptive choice of trimming proportions. Annals of the Institute of Statistical Mathematics, 46(4), 737–755. Why the trim stays fixed at 20%.
Karch JD (2021). Psychologists should use Brunner-Munzel's instead of Mann-Whitney's U test as the default nonparametric procedure. Advances in Methods and Practices in Psychological Science, 4(2). https://doi.org/10.1177/2515245921999602. Brunner-Munzel for comparing ranks when spreads may differ.
Kelley K (2007). Confidence intervals for standardized effect sizes: theory, application, and implementation. Journal of Statistical Software, 20(8):1–24. https://doi.org/10.18637/jss.v020.i08. The MBESS implementation the η² and ω² intervals match; its R² interval approximates the exact one used here.
Kim H-Y (2013). Statistical notes for clinical researchers: assessing normal distribution (2) using skewness and kurtosis. Restorative Dentistry & Endodontics, 38(1):52–54. https://doi.org/10.5395/rde.2013.38.1.52. The sample-size-based normality check.
Kuznetsova A, Brockhoff PB & Christensen RHB (2017). lmerTest package: tests in linear mixed effects models. Journal of Statistical Software, 82(13):1–26. The mixed model's Type III F tests with Satterthwaite's df.
Lakens D (2013). Calculating and reporting effect sizes to facilitate cumulative science: a practical primer for t-tests and ANOVAs. Frontiers in Psychology, 4:863. https://doi.org/10.3389/fpsyg.2013.00863. dav/gav for paired designs.
Lecoutre B (1991). A correction for the ε̃ approximate test in repeated measures designs with two or more independent groups. Journal of Educational Statistics, 16(4):371–372. The Huynh-Feldt ε used for Split-plot ANOVA.
Lee YS (1971). Some results on the sampling distribution of the multiple correlation coefficient. Journal of the Royal Statistical Society, Series B, 33(1):117–130. The approximation R's MBESS uses for the same R² interval.
Long JS & Ervin LH (2000). Using heteroscedasticity consistent standard errors in the linear regression model. The American Statistician, 54(3):217–224. https://doi.org/10.1080/00031305.2000.10474549. HC3 as the robust SE for small samples.
MacKinnon JG & White H (1985). Some heteroskedasticity-consistent covariance matrix estimators with improved finite sample properties. Journal of Econometrics, 29(3):305–325. https://doi.org/10.1016/0304-4076(85)90158-7. The HC1, HC2 and HC3 robust SEs.
Maxwell SE & Delaney HD (2004). Designing Experiments and Analyzing Data: A Model Comparison Perspective, 2nd edition. Mahwah, NJ: Lawrence Erlbaum. Applying the Greenhouse-Geisser correction routinely.
Moher D, Hopewell S, Schulz KF, Montori V, Gøtzsche PC, Devereaux PJ, Elbourne D, Egger M & Altman DG (2010). CONSORT 2010 explanation and elaboration: updated guidelines for reporting parallel group randomised trials. BMJ, 340:c869. https://doi.org/10.1136/bmj.c869. Item 17b: for a binary outcome, report an absolute effect size, such as the difference in proportions (Δp), beside any relative one, such as an odds ratio.
Motulsky H & Christopoulos A (2004). Fitting Models to Biological Data Using Linear and Nonlinear Regression. New York: Oxford University Press. The dose-response constraints, 1/Y² and 1/Y weighting, the replicates test and the extra sum-of-squares F test and AICc for comparing curves.
Nakagawa S & Schielzeth H (2013). A general and simple method for obtaining R² from generalized linear mixed-effects models. Methods in Ecology and Evolution, 4(2):133–142.
Neubert K & Brunner E (2007). A studentized permutation test for the non-parametric Behrens-Fisher problem. Computational Statistics & Data Analysis, 51(10):5192–5204. The small-sample p-value used for Brunner-Munzel.
Newcombe RG (1998a). Interval estimation for the difference between independent proportions: comparison of eleven methods. Statistics in Medicine, 17(8):873–890. The hybrid score interval (method 10) for the Estimation Plot's difference in proportions.
Olejnik S & Algina J (2003). Generalized eta and omega squared statistics: measures of effect size for some common research designs. Psychological Methods, 8(4):434–447. https://doi.org/10.1037/1082-989X.8.4.434. Generalized η² and ω².
Pauly M, Asendorf T & Konietschke F (2016). Permutation-based inference for the AUC: a unified approach for continuous and discontinuous data. Biometrical Journal, 58(6):1319–1337. The small-sample confidence interval for Brunner-Munzel's P, and so for δ.
Pinheiro JC & Bates DM (2000). Mixed-Effects Models in S and S-PLUS. New York: Springer. The AR(1) covariance structure.
Rochon J, Gondan M & Kieser M (2012). To test or not to test: preliminary assessment of normality when comparing two independent samples. BMC Medical Research Methodology, 12:81. https://doi.org/10.1186/1471-2288-12-81. Why the data checks advise rather than switch the analysis.
Satterthwaite FE (1946). An approximate distribution of estimates of variance components. Biometrics Bulletin, 2(6):110–114.
Silverman BW & Young GA (1987). The bootstrap: to smooth or not to smooth? Biometrika, 74(3):469–479. The smoothed bootstrap behind the Estimation Plot's medians and trimmed means.
Steiger JH (2004). Beyond the F test: effect size confidence intervals and tests of close fit in the analysis of variance and contrast analysis. Psychological Methods, 9(2):164–182. https://doi.org/10.1037/1082-989X.9.2.164. The 1 − 2α noncentral-F intervals for η², ω² and Cohen's f.
Steiger JH & Fouladi RT (1997). Noncentrality interval estimation and the evaluation of statistical models. In Harlow LL, Mulaik SA & Steiger JH (eds), What If There Were No Significance Tests? Mahwah, NJ: Lawrence Erlbaum, 221–257. The noncentral-t confidence intervals for Cohen's d and Hedges' g.
Tango T (1998). Equivalence test and confidence interval for the difference in proportions for the paired-sample design. Statistics in Medicine, 17(8):891–908. The score interval for the paired difference in proportions: McNemar's Δp and the Estimation Plot's paired difference.
Tarone RE & Ware J (1977). On distribution-free tests for equality of survival distributions. Biometrika, 64(1):156–160. The Tarone-Ware weighting of the Kaplan-Meier test.
Tate MW & Brown SM (1970). Note on the Cochran Q test. Journal of the American Statistical Association, 65(329):155–160. When Cochran's Q reports its exact permutation p rather than the χ² p.
Tukey JW & McLaughlin DH (1963). Less vulnerable confidence and significance procedures for location based on a single sample (Trimming/Winsorization 1). Sankhyā Series A, 25, 331–352.
Westfall J, Kenny DA & Judd CM (2014). Statistical power and optimal design in experiments in which samples of participants respond to samples of stimuli. Journal of Experimental Psychology: General, 143(5):2020–2045. https://doi.org/10.1037/xge0000014. Standardizing a mixed model's difference by the SD of a single value, all variance components included.
White H (1980). A heteroskedasticity-consistent covariance matrix estimator and a direct test for heteroskedasticity. Econometrica, 48(4):817–838. https://doi.org/10.2307/1912934. The HC0 robust SE.
Wilcox RR (2017). Introduction to Robust Estimation and Hypothesis Testing, 4th edition. London: Academic Press. Trimmed means, Yuen's paired test and the trimmed-means ANOVA.
Wilson EB (1927). Probable inference, the law of succession, and statistical inference. Journal of the American Statistical Association, 22(158):209–212. The Wilson score interval for a proportion.
Yuen KK (1974). The two-sample trimmed t for unequal population variances. Biometrika, 61(1):165–170. Yuen's trimmed t, the Trimmed means test.
Zimmerman DW (2004). A note on preliminary tests of equality of variances. British Journal of Mathematical and Statistical Psychology, 57(1):173–181. Why the variance check never chooses the test.
Data Log
The Data Log is a plain-text scratchpad for notes, numbers, or a table you want to chart or analyze. There is only one; the Welcome window's Open Data Log button brings it forward, and View › Show Data Log (⌘L) shows it and brings it to the front. When the Data Log is already the front window, the item reads Hide Data Log and ⌘L hides it. File › New Text Editor (⇧⌘N) opens an independent window with the same text view and Text Tools menu, a new one each time. In the Data Log, lines are kept whole, so wide tables stay lined up: scroll sideways to read them, or turn on Wrap Lines (next to Text Tools) to wrap long lines to the window's width (a logged table's rows are then cut off at the edge, to keep their columns lined up).
@Stat adds to the Data Log only when you click Send to Data Log in the Statistics window, plus a short note when you export a report (turn that off with Settings › General › "Log routine file and window activity"). Everything else is what you type or paste. Settings › General also sets the font size of new Data Log and Text Editor windows, and Timestamp each log entry adds the time to each result sent to the log.
Paste (⌘V) brings text in as plain text, so a table copied from Excel, Numbers or a web page stays readable in Dark Mode. ⇧⌥⌘V pastes it with its formatting.
Text Tools Menu
The blue Text Tools button at the top of the window has eight actions that work on the selected text:
- Chart Selection… (⇧⌘H): reads the selection as a table, its columns separated by tabs, commas or semicolons, and opens it as a new chart, as Data to Chart does (usually Bar / Dot).
- Send to Spreadsheet…: opens the selection in a new Spreadsheet window for further editing. It splits the rows at tabs, or else at commas or semicolons, whichever the rows use, as an opened .csv file is read, and leaves out blank lines.
- Kaplan-Meier Selection…: builds a survival curve from a selected Time/Status/Group table (see Chart Types).
- Statistics… (⌘T): opens the Full Statistics window on the selection, without making a chart.
- Convert Lists / Table (⇧⌘L): turns a tab-delimited table into blank-line-separated lists, or lists into a table, in place. The direction is detected from the selection.
- Transpose Table (⇧⌘X): swaps the rows and columns of a selected table in place. The table must be rectangular; a short row is reported by number.
- Reverse List Order (⇧⌘R): reverses each selected blank-line-separated list, or the row order of a selected table.
- List Stats (⇧⌘T): inserts Mean/SD/SEM/Count for each column of a selected table (or each list of numbers) just below the selection. Decimal commas (1,5) are read as they are elsewhere in @Stat, and NA or other text cells are left out.
All eight are also on the File menu, so the shortcuts work in both the Data Log and Text Editor windows. Send to Spreadsheet… and Kaplan-Meier Selection… have no shortcut; on the File menu, the first is "Send Selected Text to Spreadsheet…".
Math Evaluator
Type an expression followed by "=" (such as "88*3=", "2 + 3=" or "The total is 37*81=") and the result appears in blue after the "="; you can keep typing on the same line. It also works in Text Editor windows, and Enter on the numeric keypad evaluates the whole line. Use a period for decimals, and write every multiplication: 2*x, not 2x.
- Supported: + − * / % (remainder) and ^ (power), and you can paste the signs × · ÷ and −; sqrt, cbrt, abs, exp, exp2, expm1 (eˣ − 1); ln and log (both natural log), log10, log2, log1p (ln(1 + x)); sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh; erf, erfc, gamma, lgamma (ln|Γ(x)|), floor, ceil, round, trunc, sign; two-argument atan2, pow, hypot, min, max, mod and fmod; and the constants pi (or π), tau (2π) and e, written in lowercase (PI or E is not a constant).
- Results: whole numbers below 10^15 show in full; other results show 13 significant digits. Angles are in radians.
- Order of operations: as in Python and R, ^ groups from the right (2^3^2 is 512, where MATLAB and Excel give 64) and binds tighter than a leading minus (−2^2 is −4, as in MATLAB, where Excel gives 4). % binds like * and /.
- Remainders and rounding: % and mod give the remainder with the sign of the divisor, as in R and Python (−7 % 3 is 2); fmod keeps C's sign of the first value (fmod(−7, 3) is −1). round takes halves away from zero (2.5 gives 3), as Excel does; Python and R round halves to even.
- When there is no result: a lone number and anything shaped like a date (2024-05-01, 1/2/2024, or a number with a leading zero such as 05) get no result, with = or with keypad Enter, so a column of numbers typed on the keypad just starts new lines. The calculator also gives no result rather than a wrong one when it can't tell where the expression starts: for a lone constant ("pi="), for an expression that follows a number, an operator or a unit ("5 mV * 2=", "dose 1 000 * 3="), and on a line longer than 1,000 characters (Enter on the numeric keypad still evaluates it).
log() is the natural logarithm. Use log10() for base 10.
The Data Log keeps its contents while @Stat is running, even if you close its window, and File › Print… (⌘P) prints it. File › Save (⌘S) saves it as a text file (named Data Log and the date and time, unless you change it), and later saves go to that file; Save As… picks another. When you quit with unsaved Data Log text, @Stat asks whether to save it, and if the Data Log grows past about 5 MB it offers to save it and start a fresh log (Save and Clear…). A Text Editor window saves the same way, as UTF-8 text: Save (⌘S) writes back to the .txt file it opened, and asks where for a new editor or an RTF file's text (so the RTF file keeps its formatting); Save As… picks another file, and a name ending in .csv or .tsv keeps that extension. A .csv file from the Data Log or a Text Editor opens correctly in Excel: when it holds a symbol such as µ or °, it starts with a UTF-8 byte-order mark. A • after its title means unsaved changes, and closing it or quitting asks whether to save them.
Keyboard Shortcuts
@Stat
⌘, Settings…
File
⌘O Open File…
⌥⌘N New Spreadsheet
⇧⌘N New Text Editor
⇧⌘H Chart Selection…
⌘T Statistics… (Full Statistics window for the selected text)
⇧⌘L Convert Lists / Table
⇧⌘X Transpose Table
⇧⌘R Reverse List Order
⇧⌘T List Stats
⌘S Save (Chart, Spreadsheet, Text Editor and Data Log windows; in a Statistics window, exports the report)
⇧⌘S Save As…
⇧⌘K Duplicate (Chart windows): opens an unsaved copy of the chart
⇧⌘E Export…: a Chart window as an image; a Spreadsheet as CSV, TSV or Excel
⇧⌘P Page Setup…
⌘P Print…
⌘W Close window
⇧⌘W Close Window: the front window with all its tabs (⌘W closes one tab)
⌥⌘W Close All: close every window
Chart Selection… through List Stats act on text selected in the Data Log or a Text Editor window and are also on its Text Tools menu. Send Selected Text to Spreadsheet…, Kaplan-Meier Selection… and Open Recent have no shortcut.
Edit
⌘Z Undo (Spreadsheet, Chart Data, Data Log and Text Editor windows, and a chart's repeated-measures layout)
⇧⌘Z Redo
⌘A / ⌘C / ⌘V Select All, Copy, Paste
⌘D / ⌘R Fill Down / Fill Right (spreadsheets)
⌘F Find… (Edit › Find) in the front window: the Data Log and Text Editors show a find bar
⌥⌘F Find and Replace…
⌘G Find Next (Find Previous is in Edit › Find, without a shortcut)
⌘E Use Selection for Find
View & Help
⌘L View › Show / Hide Data Log
⌘@ Help › Welcome to @Stat…: show / hide the Welcome window
⇧⌘U Help › @Stat User Guide: show / hide this User Guide
⌘F Jump to the search field in this User Guide's sidebar
Tabs keep each kind together: charts tab with charts, spreadsheets with spreadsheets, text editors with text editors. Window › Merge All Windows gathers every kind at once, each into its own tabbed window (not the Data Log, Settings, Welcome or the User Guide); Window › Move Tab to New Window, or dragging a tab out of the tab bar, makes a tab a window again. The View menu also has Dark Mode / Light Mode / System Default, with no shortcuts.
Chart Window Toolbar
⌘I Show / hide the inspector panel (same as the Sidebar icon)
Export button Same as File › Export…
Spreadsheet icon Edit the chart's data; changes update the chart live
Sidebar icon Same as ⌘I: toggle the inspector panel
⌥⌘C Copy Style: copies the look of the front chart
⌥⌘V Paste Style: applies the copied look to the front chart
Right-click chart Copy as PDF, Copy Style and Paste Style
Spreadsheets
Double-click cell Edit the cell; press Return to commit
Double-click header Rename the column
Any character Start typing with a cell selected to replace its contents
⌘A Select the whole grid
⌘C Copy the selected cells as tab-separated text
⌘V Paste a block of data starting at the top-left selected cell
⌘D / ⌘R Fill Down / Fill Right: copy the selection's first row or column into the rest
Delete Clear the selected cells' values
⌘-click row number Add the row to the selection or remove it
Tab / Return / ←↑→↓ Move the selection around the grid
⌥Return Start a new line while editing a cell or a column name
Transpose Table, Data to Chart, Kaplan-Meier, Data Statistics and Clear All are toolbar buttons with no shortcut. Undo, Redo, Select All, Copy and Paste have both a button and the usual shortcut (⌘Z, ⇧⌘Z, ⌘A, ⌘C, ⌘V).
Data Log & Text Editor
⌘V Paste as plain text
⇧⌥⌘V Paste with formatting
Enter (keypad) Evaluate the current line with the Math Evaluator
Statistics Window
Return Determine Effect
⌘S Export Report…
⌘P Print the results
Choosing Sheets and Tables
Space Check or uncheck the highlighted row
⌘A Select All
Return / Esc Open / Cancel
"Show / hide" shortcuts toggle: when the window is in front, the shortcut hides it. Otherwise it shows the window and brings it to the front.