nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
anova.hpp
Go to the documentation of this file.
1
3// toolboxes/stats/include/nk/stats/anova/anova.hpp
4//
5// One-way ANOVA + dummy-coding helper.
6
7#pragma once
8
9#include <memory_resource>
10#include <nk/value/value.hpp>
11
12#include <tuple>
13
14namespace nk::stats {
15
18
19
33std::tuple<double, double, double, double, double, double>
34anova1(const Value &y, const Value &group,
35 std::pmr::memory_resource *mr = nullptr);
36
49std::tuple<Value, Value, Value, Value>
50kruskalwallis(const Value &y, const Value &group,
51 std::pmr::memory_resource *mr = nullptr);
52
72std::tuple<Value, Value, Value>
73friedman(const Value &x, int reps = 1, std::pmr::memory_resource *mr = nullptr);
74
87Value dummyvar(const Value &group,
88 std::pmr::memory_resource *mr = nullptr);
89
91enum class McCorrection { Bonferroni, LSD };
92
120Value multcompare(const Value &stats, double alpha = 0.05,
121 McCorrection ctype = McCorrection::Bonferroni,
122 std::pmr::memory_resource *mr = nullptr);
123
124
126} // namespace nk::stats
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
McCorrection
Multiple-comparison correction methods for multcompare.
Definition anova.hpp:91
Value multcompare(const Value &stats, double alpha=0.05, McCorrection ctype=McCorrection::Bonferroni, std::pmr::memory_resource *mr=nullptr)
Pairwise post-hoc comparisons after one-way ANOVA (c = multcompare(stats [, alpha [,...
std::tuple< double, double, double, double, double, double > anova1(const Value &y, const Value &group, std::pmr::memory_resource *mr=nullptr)
One-way ANOVA ([p, F, df_b, df_w, ss_b, ss_w] = anova1(y, group)).
std::tuple< Value, Value, Value, Value > kruskalwallis(const Value &y, const Value &group, std::pmr::memory_resource *mr=nullptr)
Kruskal–Wallis non-parametric one-way ANOVA ([p, H, df, ssRanks] = kruskalwallis(y,...
Value dummyvar(const Value &group, std::pmr::memory_resource *mr=nullptr)
Convert categorical labels to indicator columns (X = dummyvar(group)).
std::tuple< Value, Value, Value > friedman(const Value &x, int reps=1, std::pmr::memory_resource *mr=nullptr)
Friedman non-parametric two-way ANOVA by ranks ([p, Q, df] = friedman(x, reps)).