ANOVA

ANOVA implementation in Elixir.

ANOVA, or Analysis of Variance is a widely used statistical technique for comparing means among multiple groups, providing insights into whether observed differences are due to actual effects or simply random variability. It's an extension of the t-test, allowing for comparisons among multiple groups simultaneously. One-Way ANOVA compares means of three or more independent groups for one factor.

Installation

The package can be installed by adding anova to your list of dependencies in mix.exs:

def deps do
  [
    {:anova, "~> 0.7.0"}
  ]
end

Usage

groups = [[1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15]]

alpha = 0.05

groups
|> ANOVA.one_way()
|> TukeyHSD.test(alpha)

Theoretical Background

One-way ANOVA (Analysis of Variance) is used to test the null hypothesis that the means of several groups are equal against the alternative hypothesis that at least one group mean is different.

One-way ANOVA partitions the total variability in the data into two sources: variability between groups (due to the factor) and variability within groups (due to random error). It then compares these two sources of variability using the F-statistic. A large F-statistic suggests that the between-group variability is much larger than the within-group variability, indicating a significant difference between at least two group means. Post-hoc tests: If the one-way ANOVA result is significant (meaning at least two groups have different means), post-hoc tests are often used to determine which specific groups differ significantly from each other.

Common Post-hoc Tests

Currently we have a full implementation of Tukey's HSD and working on the others.

Key Concepts

References