This is a collection of functions that provide test statistics to be used into the permutation scheme for performing (M)ANOVA. These test statistics can be divided into two categories: traditional statistics that use empirical moments and inter-point statistics that only rely on pairwise dissimilarities between data points.
stat_anova_f(data, memberships, ...)
stat_anova_f_ip(data, memberships, ...)
Either a list of the n
pooled data points or a dissimilarity
matrix stored as a dist
object for all inter-point
statistics whose function name should end with _ip()
.
An integer vector specifying the membership of each data point.
Extra parameters specific to some statistics.
A numeric value storing the value of test statistic given the
(possibly permuted) memberships specified by memberships
.
stat_anova_f()
implements the F statistic used in traditional (M)ANOVA.
stat_anova_f_ip()
implements a pseudo F statistic based on inter-point
distances only as described in Shinohara et al. (2020).
Chambers, J. M., Freeny, A and Heiberger, R. M. (1992) Analysis of variance; designed experiments. Chapter 5 of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.
Krzanowski, W. J. (1988) Principles of Multivariate Analysis. A User's Perspective. Oxford.
Hand, D. J. and Taylor, C. C. (1987) Multivariate Analysis of Variance and Repeated Measures. Chapman and Hall.
Shinohara, Russell T., et al. "Distance‐based analysis of variance for brain connectivity." Biometrics 76.1 (2020): 257-269.
npk2 <- npk
npk2$foo <- rnorm(24)
n <- nrow(npk2)
data1 <- purrr::array_tree(npk2$yield, margin = 1)
stat_anova_f(data1, npk2$block)
#> [1] 2.318386
data2 <- purrr::array_tree(cbind(npk2$yield, npk2$foo), margin = 1)
stat_anova_f(data2, npk2$block)
#> [1] 1.86764
D <- dist(cbind(npk2$yield, npk2$foo))
stat_anova_f_ip(D, npk2$block)
#> [1] 1.817319