Skip to content

statistics-2.1.1

Choose a tag to compare

@pr0m1th3as pr0m1th3as released this 01 Nov 01:14
· 55 commits to main since this release

A maintenance release: agreement statistics, feature selection with relieff and sequentialfs, posterior probabilities for SVM classifiers, the Ryan-Joiner normality test, and iteration limits as in MATLAB across the fitting functions.

Requires Octave >= 11.1.0 and datatypes 1.5.0 or newer, as 2.0.0 did.

Standing notice, unchanged since 1.9.0. The nan and the tablicious packages are incompatible with this one.

Incompatible changes. Code calling these functions must be checked:

  • lassoglm divides its loss by the total number of binomial trials, as MATLAB does, so a fit with more than one trial per row gives different coefficients at a given Lambda; 'Size' is renamed 'BinomialSize', and 'Size' stays as an alias.
  • lasso and lassoglm take 'Weights' with one element per row of X; a vector already shortened to the rows without NaN, and integer, logical, complex or infinite weights, raise an error (#534).
  • friedman's KendallsWCI bounds the concordance beyond chance, where it bounded the expected value of Kendall's W and could exclude W itself.
  • anovan returns stats.varnames as a column, as MATLAB does.

New functions.

  • cohenKappa and fleissKappa for agreement between two or several raters, limitsOfAgreement and blandAltmanPlot for the Bland-Altman limits of agreement. MATLAB has none of them.
  • relieff and sequentialfs for feature selection, matching MATLAB.
  • fitSVMPosterior and the SVM classifiers' fitPosterior, giving posterior probabilities from predict, matching MATLAB.
  • rjtest, the Ryan-Joiner test of normality, as in MATLAB R2026b.

Fixes.

  • kmeans stopped by 'MaxIter' returned centroids that were not the means of its clusters; glmfit ran one iteration fewer than MATLAB; fitgmdist returned the parameters of one step past the likelihood it reported; kmedoids 'pam' took one swap per iteration.
  • nnmf, tsne, fitgmdist and glmfit failed with a 'MaxIter' of 0.
  • lassoglm hung when every response was at the edge of its range, and took a 'Size' vector of any length; lasso and lassoglm refused a full weight vector when X or Y held NaN (#534).
  • fitcnb failed on a class with prior 0, and fitcknn could predict one.
  • isoutlier refused a 'ThresholdFactor' of 0 (#536), and gave rounded thresholds for an integer one.

Improvements. The classifiers remove a class with prior 0 before fitting, as MATLAB does, and five more take 'Cost' as a structure; crosstab takes 'IncludeMissingGroups' (#535) and a single input; lassoglm takes a two-column, logical or categorical binomial Y; kmeans takes 'Options'; statset accepts a 'TolFun', 'MaxIter' or 'MaxFunEvals' of 0; anovan takes 'varnames' as a character matrix.

Every change is listed in NEWS.