citation("biometryassist")
now gives the package citation, including its CRAN DOI, and the
repository includes a CITATION.cff generated from the
package metadata. (#194, #196)reference_comparisons() now uses the exact Dunnett test
whenever all comparisons share a common degrees of freedom
(e.g. single-stratum aovlist and balanced
lmer() models), instead of falling back to Holm for any
model that reports degrees of freedom per comparison.multiple_comparisons(),
pairwise_comparisons() and
reference_comparisons() now work with asreml
models whose terms use ASReml-R special functions, such as
at() in the fixed model or diag(),
fa(), us() and vm() in the random
model. (#198)predictions returned by
multiple_comparisons() no longer include a df
column for aov and lm models, so the output is
the same for every model type.use_template() now copies the requested package
template as expected. Previously it always copied
mixed_model_template.R. (#188)export_design_to_excel() examples, which are now runnable.
(#189, #197)multiple_comparisons(),
pairwise_comparisons() and
reference_comparisons() now use the correct pairwise
contrast degrees of freedom for nlme::lme() models rather
than those of the individual means. In
multiple_comparisons() this gave too-large HSD values;
results now match equivalent aov() and lmer()
fits. (#190)emmeans (aovlist,
lmer(), nlme::lme(), afex and
glmmTMB). This affected the p-values, HSD and letter groups
from multiple_comparisons() for unbalanced data; balanced
designs were not affected. (#193)multiple_comparisons() no longer errors when a
treatment level is aliased in models that use emmeans
(aovlist, lmer(), nlme::lme(),
afex and glmmTMB). (#195)asreml model now always
names the classify term; previously the term name could be
missing.multiple_comparisons() no longer errors with “subscript
out of bounds” when ASReml-R’s levels argument is used to
predict a subset of levels for an asreml model.multiple_comparisons() confidence intervals
(int.type = "ci") now use the degrees of freedom of each
predicted mean, rather than the largest pairwise-comparison degrees of
freedom, and int.type = "tukey" now uses the smallest
comparison degrees of freedom for each mean. Intervals were too narrow
for multi-stratum models (aovlist, afex,
lmer(), nlme::lme() and asreml
at() terms); single-stratum models are not affected.
(#199)multiple_comparisons(): the plot,
label_height, rotation, save, and
savename arguments are now deprecated and
will be removed in a future version. Use
autoplot(<result>) for plotting (pass
label_height and rotation there), and
write.csv(result$predictions, "file.csv") for saving. The
pred, order, and pred.obj
arguments were deprecated in 1.1.0 or earlier and have now been
removed.multiple_comparisons() gains an adjust
argument to choose the p-value adjustment method (any
stats::p.adjust() method, in addition to the default
Tukey’s HSD), and a by argument to run comparisons
independently within groups.aovlist and nlme::lme()
models in multiple_comparisons() (#107).resplot() and the comparison functions
(multiple_comparisons(),
pairwise_comparisons(),
reference_comparisons()) closer to parity:
afex
(afex_aov), glmmTMB, and sommer’s
mmes() models. glmmTMB predictions are on the
link scale with asymptotic degrees of freedom (supply trans
to back-transform); sommer mmes() predictions and SEDs come
from sommer’s native predict(), also with asymptotic
degrees of freedom.resplot() now supports multi-stratum aov
models fitted with Error() (aovlist, one panel
per error stratum), afex_aov models, and Gaussian-family
glmmTMB models.lme4breeding::lmebreed() (relationship-based mixed)
models are supported by both workflows: they carry class
lmerMod and are handled by the existing
lmerMod methods. Comparisons correctly reflect the
relationship structure (validated against ASReml-R), using Kenward-Roger
degrees of freedom.art) and sommer’s legacy mmer models are not
available for the comparison functions (ART uses aligned ranks — use
ARTool::art.con(); refit mmer with
sommer::mmes()), though both remain supported by
resplot(). Non-Gaussian glmmTMB models are not
valid for resplot()’s normal-Q-Q diagnostic and point to
DHARMa::simulateResiduals() instead.pairwise_comparisons() to test selected
pairwise differences (or general linear contrasts) between predicted
means, returning a tidy table of estimates, predicted means and
multiplicity-adjusted p-values, with a forest plot via
autoplot().reference_comparisons() to compare every
level against a single reference (control) level, using an exact Dunnett
test by default. It returns a means-centric table (each level’s mean,
the reference mean and the adjusted difference) and a means plot via
autoplot().design() gains a plot_numbers argument to
add a plot_number column to the design, numbered either
sequentially or in a serpentine pattern. Buffer plots are numbered
alongside treatment plots. (#58)autoplot() for multiple_comparisons()
output gains several new options (thanks to Michael Mumford, #161):
type = "line" joins the means with a line;
include_errorbar and include_lettering toggle
the error bars and significance letters;
errorbar_type = "hsd" draws a single Tukey’s HSD reference
bar instead of per-mean intervals; and trans_scale = TRUE
plots back-transformed means on the model (transformed) scale with an
exact back-transformed secondary axis.pairwise_comparisons() and
reference_comparisons() alongside
multiple_comparisons() and giving guidance on choosing a
multiplicity adjustment.autoplot() and the
export_design_to_excel() function. (#170)export_design_to_excel() function is now less
fragile. It can handle design objects and data frames as input, and
alternative names for the row and column columns. (#168 and #172)resplot(). (#167)des_info(). This function has been
superseded by design(), and will be removed in a future
version.arcsin transformation handling in
multiple_comparisons() (#60).design() in preparation for moving
to a new backend later (#102). No user-facing changes.multiple_comparisons(). This required changing the
multiple_comparisons() output object to a list, but
printing to console and autoplot(multiple_comparisons()
(#125).satab() to reliably get the
same output (#133).cowplot to patchwork to
speed up resplot() (and variogram())
(#29).export_design_to_excel() (#124).install_asreml() where it threw an error
with more than one new version (#122).calculate_differences() clashed with
package “MuMIn” (#131).resplot() to enable
easier expansion to different models in future. (#100)export_design_to_excel(). An
excel file can now be created from a design dataframe, instead of just a
graphical plot. (#74)multiple_comparisons(). The new option
int.type = 'tukey' will now create comparison intervals
using Tukey’s distribution rather than a t-distribution for a
regular confidence interval. This has been a point of confusion when
intervals don’t overlap but share letters. (#66)multiple_comparisons(). (#83)verbose option for the quiet
parameter in install_asreml() to give more detailed output
when required. (#81)onepage argument. (#73)multiple_comparisons() to enable easier expansion to
different models in future. (#92)multiple_comparisons() (#90)shapiro.test() within
resplot() with too many data points (#87)heat_map() didn’t work properly with
factor columns (#86)summary_graph() function was accidentally left
out of the CRAN submission.summary_graph() (#75) and
heat_map() (#19) functionsrow, column,
block and treatment columns to be provided in
the autoplot.design() function, to enable more general
plotting of designs. (#28)install_asreml() to check if there is a later
version before downloading.autoplot.design().multiple_comparisons() to prevent breaking. (#53)predictmeans(). (#50)ar1() component in
variogram(). (#49)multiple_comparisons() via classify.
(#48)present argument passed to
predict.asreml(). (#41)multiple_comparisons() now accepts power
transformations and automatically back-transforms. It gains a new
argument power to provide the transformation power applied
in the model to undo. This enables more general Box-Cox transformations.
(#36)multiple_comparisons() no longer produces an error when
the trans argument is supplied and offset is
not. It now produces a warning and sets offset to 0 when
not provided. (#37)options(biometryassist.check = FALSE) to your .Rprofile
file to disable. Partially fixes #6.autoplot.mct() (#35)multiple_comparisons() (#33)NAs have been produced. (#24 and #25)multiple_comparisons() no longer requires calls to
predict.asreml() to be passed into the function, as the
predicted values are now calculated internally. Additional arguments can
be passed to predict.asreml() via the ...
argument. (#27)order argument of
multiple_comparisons() has been deprecated in favour of a
new argument descending. This takes logical
(TRUE or FALSE) values only, so
default is no longer possible as it was producing incorrect
results. (#8)resplt() has been deprecated in favour of
resplot() and will be removed in a future version
(#20).logl_test(). (#17)multiple_comparisons() now. (#14)asreml() call
on resplot() if not explicitly provided. (#21)install_asreml() would not work on
macOS Monterey. (#16)mct.out() has been renamed to
multiple_comparisons()logl.test() has been renamed to
logl_test()des.info() has been renamed to
des_info()For changes prior to biometryassist 1.0.0 see the BiometryTraining package at https://biometryhub.github.io/BiometryTraining/news/index.html.