If you do statistics in Excel, nonparametric tests are often the difference between “I can analyze this now” and “I need to export to another tool.” BESHStatNG keeps the workflow Excel-first, while providing a compiled engine and robust implementations of the methods people use most.
This post is a quick update on what’s already implemented — with a special focus on exact p-value computation with tie handling, computed fast via dynamic programming.
What “basic nonparametrics” means in BESHStatNG
BESHStatNG includes the following core nonparametric methods (plus several robust/rank-based tools):
- Mann–Whitney (Wilcoxon rank-sum) — 2 independent groups
- Wilcoxon signed-rank — paired / before-after
- Kruskal–Wallis — >2 independent groups
- Friedman — >2 repeated measures
- Cochran’s Q — >2 paired binary outcomes
- Skillings–Mack — Friedman-like, but handles missing blocks
- Spearman and Kendall rank correlation
- Theil–Sen robust simple regression
The online help is being filled in method-by-method. Right now, the most complete “deep dive” pages are:
The big deal: exact p-values with ties (fast)
Real-world data often contain ties (rounded values, discrete scales, repeated measurements). This is exactly where “exact p-values” often disappear in other tools. BESHStatNG is designed to keep exact inference available in the Excel workflow for common small-to-moderate sample sizes.
Mann–Whitney: exact p-values even when ties are present (n ≤ 50)
BESHStatNG can compute exact Mann–Whitney p-values even with ties for total sample size n = n1 + n2 ≤ 50, using a fast algorithm to evaluate the exact null distribution of the rank-sum/U statistic under the presence of ties.
Wilcoxon signed-rank: exact p-values via dynamic programming, tie-aware (n* ≤ 60)
For paired data, BESHStatNG computes exact signed-rank p-values (when n*, the number of non-zero differences, is within the supported range) using a dynamic programming approach to build the distribution of attainable signed-rank sums. This makes exact inference both valid and fast in the typical Excel use-case.
Why dynamic programming helps: instead of enumerating all sign combinations directly, the algorithm builds the distribution incrementally (a classic DP “subset-sum” style technique), which is far more efficient for the sizes users most commonly analyze in spreadsheets.
Context: how other software behaves (quick comparison)
This isn’t to bash anyone — it’s simply the reality of defaults and computational tradeoffs. Different tools make different choices about when to offer “exact” calculations, especially when ties are present.
- R (base
wilcox.test): exact p-values are restricted and commonly not returned when ties are present; the function typically switches to an asymptotic approximation in that case. - JMP: documents exact p-values for Wilcoxon signed-rank only up to small N (e.g., N ≤ 20), using approximations beyond that.
- SAS (PROC UNIVARIATE): similarly limits exact signed-rank p-values to small samples in typical usage, switching to approximations for larger samples.
- Stata: offers exact computation much further for signed-rank and rank-sum than many defaults.
Where BESHStatNG stands: it’s intentionally optimized for the “Excel sweet spot” — small-to-moderate sample sizes where users most want exact inference and ties are common — and it does so with a fast dynamic-programming approach rather than falling back to asymptotics by default.
What you see in the output (practical, not just theory)
On the completed pages (Mann–Whitney and Wilcoxon signed-rank), the help includes:
- plain-language interpretation of the test
- exact Excel input steps (ranges/options)
- screenshots of input/options/results
- brief mathematical details (including tie correction)
- R reference code using standard packages (with notes when results may differ slightly)
Documentation status (what’s completed so far)
The help is being expanded in the same style across all nonparametric methods. The home page is here:
https://www.beshstat.eu/beshstatng/help/latest/
Some nonparametric pages already exist as stubs in the menu and are being filled in next. For example:
Tip: if you’d like a specific method prioritized in the documentation, let us know — the goal is to keep the help practical (Excel steps + interpretation + reproducible reference code) for each method.
References:
R (stats::wilcox.test)
– CRAN “stats” reference manual (contains wilcox.test details; search within page for “wilcox.test”):
– R online manual page for wilcox.test (R-devel mirror)
JMP
– Statistical Details for the Wilcoxon Signed Rank Test
– JMP Basic Analysis manual (PDF)
SAS
– SAS blog (PROC UNIVARIATE)
– PROC UNIVARIATE “Tests for Location” documentation (context for the signed-rank test in UNIVARIATE)
Stata
– signrank (Wilcoxon matched-pairs signed-rank) manual PDF (states exact available for n ≤ 2000)
– ranksum (Mann–Whitney / Wilcoxon rank-sum) manual PDF (states exact available for n ≤ 1000)