///|
/// rstatix Module Demo - Tidy Data-Friendly Statistical Tests
///
/// This demo showcases the rstatix module functionality including
/// t-tests, Wilcoxon tests, ANOVA, Kruskal-Wallis, correlation tests,
/// and multiple testing correction.
fn main {
println("=== rstatix Statistical Tests Demo ===")
println("")
println("1. Sample Data:")
let data = @bio.rstatix_sample_data()
println(" Groups: \{data.length()}")
println(" Group 1 (n=\{data[0].length()}): \{Repr(data[0])}")
println(" Group 2 (n=\{data[1].length()}): \{Repr(data[1])}")
println(" Group 3 (n=\{data[2].length()}): \{Repr(data[2])}")
println("")
println("2. Two-Sample T-Test (Group 1 vs Group 2):")
let t_test_result = @bio.rstatix_t_test(data[0], y=data[1])
println(" \{@bio.rstatix_t_test_summary(t_test_result)}")
println("")
println("3. Two-Sample Wilcoxon Test (Group 1 vs Group 2):")
let wilcox_result = @bio.rstatix_wilcox_test(data[0], y=data[1])
println(" \{@bio.rstatix_t_test_summary(wilcox_result)}")
println("")
println("4. One-Way ANOVA (all 3 groups):")
let anova_result = @bio.rstatix_anova_test(data)
println(" \{@bio.rstatix_anova_summary(anova_result)}")
println("")
println("5. Kruskal-Wallis Test (all 3 groups):")
let kruskal_result = @bio.rstatix_kruskal_test(data)
println(" \{@bio.rstatix_anova_summary(kruskal_result)}")
println("")
println("6. Pearson Correlation Test (Group 1 vs Group 2):")
let pearson_result = @bio.rstatix_cor_test(
data[0],
data[1],
cor_method="pearson",
)
println(" \{@bio.rstatix_cor_test_summary(pearson_result)}")
println("")
println("7. Spearman Correlation Test (Group 1 vs Group 2):")
let spearman_result = @bio.rstatix_cor_test(
data[0],
data[1],
cor_method="spearman",
)
println(" \{@bio.rstatix_cor_test_summary(spearman_result)}")
println("")
println("8. Benjamini-Hochberg (BH) Correction:")
let p_values = [
t_test_result.p_value,
wilcox_result.p_value,
anova_result.p_value,
kruskal_result.p_value,
pearson_result.p_value,
spearman_result.p_value,
]
let labels = [
"t-test", "Wilcoxon", "ANOVA", "Kruskal-Wallis", "Pearson", "Spearman",
]
let bh_corrected = @bio.rstatix_bh_correct(p_values)
println(" Raw p-values vs BH-adjusted p-values:")
let mut i = 0
while i < p_values.length() {
println(" \{labels[i]}: raw = \{p_values[i]}, adj = \{bh_corrected[i]}")
i = i + 1
}
println("")
println("9. Bonferroni Correction (for comparison):")
let bonf_corrected = @bio.rstatix_bonferroni(p_values)
i = 0
while i < p_values.length() {
println(
" \{labels[i]}: raw = \{p_values[i]}, adj = \{bonf_corrected[i]}",
)
i = i + 1
}
println("")
println("10. Paired T-Test (Group 1 vs Group 2):")
let paired_t_result = @bio.rstatix_t_test(data[0], y=data[1], paired=true)
println(" \{@bio.rstatix_t_test_summary(paired_t_result)}")
println("")
println("11. One-Sample T-Test (Group 1, mu = 20):")
let one_sample_t = @bio.rstatix_t_test(data[0], mu=20.0)
println(" \{@bio.rstatix_t_test_summary(one_sample_t)}")
println("")
println("12. One-Sample Wilcoxon Test (Group 1, mu = 18):")
let one_sample_wilcox = @bio.rstatix_wilcox_test(data[0], mu=18.0)
println(" \{@bio.rstatix_t_test_summary(one_sample_wilcox)}")
println("")
println("=== Demo Complete ===")
}