STATassist (development version)

STATassist 1.0.0

Scoring the models. The five fitting functions returned a model and the README scored it by hand, with a pROC snippet for the curve and a scatter written out each time. predict.sa_model() already abstracts the five engines, so a layer above it can score any of them side by side, and holding several models against one baseline is where the metrics that need a pair — DeLong’s test, the IDI and the NRI — become available.

And the other half of the unsupervised family. The three reductions answered where each point sits once the features have been squeezed into two dimensions, which left the neighbouring question — which points belong together — with no function to ask it. The four cluster_*() functions ask it, and they reuse the reductions’ row axis and input reading rather than starting a fourth of their own, so a clustering and an embedding of the same frame are about the same rows. draw_dim_reduction_plot() is what that shared axis was for: it paints the labels one of them found onto the coordinates the other placed, beside the grouping that was known before either ran.

And the pair of features, which nothing had asked about. Every function so far reduced one feature at a time or every feature at once; the question of how two of them move together had no entry point, and a correlation matrix computed by hand had no p-value beside it and no way of being drawn.

And the summary that had a table but no picture of its own. summarize_descriptive_stats() has reduced every feature and group to a row of locations and spreads since the first release, and seeing one of those columns across a set of groups meant reshaping the table and calling barplot() by hand, with the interval either side of each mean worked out again on the way.

New features

Breaking changes

Bug fixes

STATassist 0.8.0

The interaction plot, and the slot it needed. A factorial result reported that a term was significant without keeping anything a reader could see the term in: $effect reduces the grid to two cells and a term test reduces it to a p-value, and neither says which way the lines run. The kernel was already computing the cell means and throwing them away after the post-hoc stage, so the picture cost a slot rather than a second pass over the data.

New features

Bug fixes

The categorical family. Two columns of labels are a contingency table, not a feature-wise comparison, so the result is an sa_categorical rather than an sa_comparison and estimate_significance() refuses it. The mosaic is what reads it, in the place a volcano plot holds for the numeric scenarios, and estimate_categorical_significance() is the verdict beside it.

What the contract turns on is that “expected” is not a property of a table. It is a property of a table and a claim about it, and the three designs here make three different claims. So the result names its own claim and everything read off it – the residuals, the diagnostics, the shading of the mosaic – is read under that one.

New features

The factorial family, built from the answer key inwards. The simulator came first, which is the reverse of how every other simulator in the package was written: the others read the names in their args off a compare_*() or fit_*() that already existed, and here there was nothing to read them off. That order is what makes the comparison checkable on arrival. The data generator was shown correct against aov() before a line of the analysis depended on it being so, and the analysis is now scored against the same answer key term by term.

New features

STATassist 0.7.0

This adds the fourth result contract, the one for a function that searches rather than fits. A model is handed its predictors and answers about them; a selection is handed candidates and answers which of them to keep, which is a question no existing slot had a shape for. Two functions answer it and disagree about the price: one holds rows out and keeps the subset that scored best on them, the other keeps the model whose likelihood is worth what its parameters cost.

New features

STATassist 0.6.0

This release adds the two result contracts that have no feature axis. Everything before it answered a question about features; a model answers about terms and a dimension reduction about points, and both needed a shape of their own rather than a feature table with the wrong column names.

New features

Dependencies

Documentation

STATassist 0.5.0

New features

STATassist 0.4.0

Breaking changes

Improvements

STATassist 0.3.0

New features

Bug fixes

Breaking changes

STATassist 0.2.0

New features

Breaking changes

Bug fixes

STATassist 0.1.0

STATassist 0.0.1