Stratum vs R: Statistics Without Writing Code
R is free, it can do almost anything, and it's the reference that other packages, Stratum included, are checked against. So why would someone who knows R use anything else? Here's an honest answer for R users.
This isn't a contest over power. R has more methods than any app will ever ship, and it costs nothing. The real question is narrower: for the analysis in front of you, which tool gets you to a correct, defensible answer and a chart you can show faster? Often that's R. For most everyday work, it isn't.
Where R wins outright
- Breadth. More than 20,000 CRAN packages. Mixed models, GLMs, survival, Bayesian modeling, time series, SEM, and new methods from papers that appear in R first. Stratum doesn't attempt that breadth.
- Scripts. A script is an audit trail and a pipeline in one. You can rerun it on next month's file, review it, version it, and schedule it. Stratum has no scripting language.
- Publishing. ggplot2 can draw any chart you can specify, and Quarto or R Markdown can turn an analysis into a paper.
- Price and openness. R is free, and its source is open to inspection.
If your work lives in lme4, glm() or survival, keep using R. Stratum has no mixed models, and logistic regression is not yet available.
Where Stratum wins
Time to a correct answer. In R, the cost of an analysis isn't the function call. It's the defaults you have to know about. anova() gives sequential Type I sums of squares, and boxplot()'s hinges are not quantile()'s quartiles. Factor levels sort alphabetically unless you say otherwise. Stratum makes those choices visible and explicit. For example, Two-Way ANOVA has a Sums of Squares picker for Type III, II or I, and a box plot's quartiles are the same Type 7 quartiles the report prints. Once you set a column's level order, it holds in every chart and table.
Charts you can interrogate. Every chart is live:
- Hover any point to read its values.
- Right-click and choose Reveal in Datasheet to jump to the row behind it.
- Mark a few rows once, and every chart rings and labels them.
- Fan a chart into a Gallery of one panel per group.
In R, each of those is another script edit and re-render.
Scale without ceremony. Stratum stays responsive on datasets of up to about 5 million rows, with charts, filters and aggregation all interactive. R can hold that data, but exploring it interactively in R means extra tooling.
No code to get wrong, or to hand over. Guide Me asks what you want to find out and which columns hold it, then names the analysis it chose and what it read to get there. A colleague who doesn't know R can open your .stratum file and see every chart and report with its settings, filters and formula columns intact.
Accuracy: validated against R itself
An app that hides its code has to show its evidence. Stratum's validation record lists, for each analysis, the outside function its numbers are checked against and the version used. The reference values are committed to the source tree and asserted on every build. Some of the R functions in the record:
cor.test(Pearson, Spearman, Kendall)prcomp, withpsych::KMOand Bartlett's testaov,car::Anovaandcar::viflm()'shatvalues,rstudentandcooks.distancefor the regression plotslmtest::dwtestfor Durbin–Watsonshapiro.test,chisq.testandfisher.testhclustandkmeansMBESSfor the noncentral-t interval on Cohen's dqccfor capability intervals
Linear regression also passes all nine NIST StRD linear least-squares datasets, including Longley and the ill-conditioned Filip and Wampler cases.
The record is also explicit about what it doesn't claim. It does not say Stratum "matches R", because R disagrees with itself: quantile() and boxplot() give different quartiles. It names each deliberate divergence instead:
- Silverman's bandwidth uses the exact 1.3489795 where
bw.nrd0rounds to 1.34. - Scott's bin rule uses 3.49 where
nclass.scottuses 3.5. - Power and exponential trend r² is measured on the scale of the curve you see, not the log scale
summary()reports.
Of the 51 analyses in the record, 21 are fully checked against an outside tool and 13 are marked partly checked, with the gaps written down. The rest are pinned by a published formula or compute no statistic of their own.
Side by side
| R | Stratum | |
|---|---|---|
| Price | Free, open source | One-time: $119 Standard, $249 Professional |
| Interface | Code (RStudio, Positron or the console) | Native Mac & Windows app, no code |
| Method breadth | Effectively unlimited via CRAN | Core stats, linear regression, PCA, CA, clustering, trees, SPC |
| GLMs, mixed models, survival, Bayesian | Yes | Not yet / not in scope |
| Reproducibility | Scripts: rerunnable, reviewable, versioned | Saved file reopens every analysis exactly; no script |
| Charts | ggplot2: anything, by code | 30+ interactive types, hover, linked marks, galleries, draggable labels |
| Exploring 5M rows | Possible with extra tooling | Interactive up to ~5 million rows |
| SPSS / Stata files | haven / foreign | Opens .sav, .zsav, .dta directly, labels intact |
| Accuracy evidence | The reference implementation | Per-analysis record against R, SciPy, NIST StRD |
| Report output | Whatever you code | Copy as formatted tables; CSV, TSV, Markdown, HTML, PDF |
| Best for | Pipelines, novel methods, automation | Fast, correct everyday analysis and exploration |
Using both
Stratum and R share data easily. Stratum exports the data sheet as CSV or TSV and copies report tables as CSV, TSV, Markdown or HTML. It reads whatever write.csv produces, along with .sav and .dta. A common split is to explore and chart in Stratum, then script the final pipeline in R. Or the reverse: script the cleaning, then hand a .stratum file to the people who need to look at it. For a worked example of the held-out evaluation Stratum does without code, see train, validation and test splits.
Download Stratum Read the validation record →
Frequently asked questions
Is Stratum a good alternative to R?
For the everyday core it is: descriptives, t-tests, ANOVA, correlation, contingency tables, linear regression, PCA, clustering, trees, control charts and 30+ interactive charts, with no code. For anything outside that core, such as mixed models, GLMs, survival or Bayesian analysis, R remains the right tool.
Do Stratum's results match R?
Analysis by analysis, Stratum's statistics are checked against named R functions (cor.test, prcomp, car::Anova, lm diagnostics, hclust, kmeans and others), plus SciPy, scikit-learn and the NIST StRD certified datasets. The reference values are asserted on every build. Where Stratum deliberately differs, the published validation record says so and why.
Can Stratum run R scripts or packages?
No. Stratum has no scripting language and does not call R. It is a native app with its own engine. To move between the two, export the data sheet as CSV or TSV, or a report table as CSV, TSV, Markdown or HTML, and read it in R.
Is Stratum reproducible without a script?
A .stratum file saves the data with every chart and report's settings, the filters and the formula columns, so reopening it reproduces the analysis exactly. What it does not give you is a script that reruns the analysis on next month’s file.
Does Stratum have logistic regression or mixed models?
Not yet. Stratum's regression is linear least squares, and categorical responses are handled by decision trees, random forests and boosted trees. If your work depends on glm(), lme4 or survival, R is the tool for it.
How large a dataset can Stratum handle?
Stratum stays responsive on datasets of up to about 5 million rows, with charts, filters and aggregation all interactive at that size.