suppressMessages(library(dplyr))
suppressMessages(library(kSamples)) # nolint
test_that("kSamples package gives results that match published example", {
# Reproduce the example from:
# F. W. Scholz and M. Stephens, “K-Sample Anderson-Darling Tests,” Journal
# of the American Statistical Association, vol. 82, no. 399.
# pp. 918–924, Sep-1987.
df <- data.frame(
smoothness = c(
38.7, 41.5, 43.8, 44.5, 45.5, 46.0, 47.7, 58.0,
39.2, 39.3, 39.7, 41.4, 41.8, 42.9, 43.3, 45.8,
34.0, 35.0, 39.0, 40.0, 43.0, 43.0, 44.0, 45.0,
34.0, 34.8, 34.8, 35.4, 37.2, 37.8, 41.2, 42.8
),
lab = c(rep("A", 8), rep("B", 8), rep("C", 8), rep("D", 8))
)
res <- ad.test(smoothness ~ lab, data = df)
expect_equal(res[["sig"]], 1.2038, tolerance = 1e-4)
ad <- res[["ad"]]
expect_equal(ad["version 1:", "AD"], 8.3559, tolerance = 1e-3)
expect_equal(ad["version 1:", " asympt. P-value"], 0.0023,
tolerance = 1e-3 / 0.0023)
expect_equal(ad["version 2:", "AD"], 8.3926, tolerance = 1e-3)
expect_equal(ad["version 2:", " asympt. P-value"], 0.0022,
tolerance = 1e-3 / 0.0022)
})
test_that("ADK test match ASAP", {
res <- carbon.fabric %>%
filter(test == "WT") %>%
filter(condition == "RTD") %>%
ad_ksample(strength, batch)
expect_equal(res$ad / (res$k - 1), 0.456, tolerance = 0.002)
expect_false(res$reject_same_dist)
res <- carbon.fabric %>%
filter(test == "WT") %>%
filter(condition == "ETW") %>%
ad_ksample(strength, batch)
expect_equal(res$ad / (res$k - 1), 1.604, tolerance = 0.002)
expect_false(res$reject_same_dist)
res <- carbon.fabric %>%
filter(test == "WT") %>%
filter(condition == "CTD") %>%
ad_ksample(strength, batch)
expect_equal(res$ad / (res$k - 1), 1.778, tolerance = 0.002)
expect_false(res$reject_same_dist)
res <- carbon.fabric %>%
filter(test == "FT") %>%
filter(condition == "RTD") %>%
ad_ksample(strength, batch)
expect_equal(res$ad / (res$k - 1), 0.777, tolerance = 0.003)
expect_false(res$reject_same_dist)
res <- carbon.fabric %>%
filter(test == "FT") %>%
filter(condition == "ETW") %>%
ad_ksample(strength, batch)
expect_equal(res$ad / (res$k - 1), 1.355, tolerance = 0.002)
expect_false(res$reject_same_dist)
res <- carbon.fabric %>%
filter(test == "FT") %>%
filter(condition == "CTD") %>%
ad_ksample(strength, batch)
expect_equal(res$ad / (res$k - 1), 1.432, tolerance = 0.002)
expect_false(res$reject_same_dist)
res <- carbon.fabric %>%
filter(test == "WC") %>%
filter(condition == "RTD") %>%
ad_ksample(strength, batch)
expect_equal(res$ad / (res$k - 1), 0.384, tolerance = 0.002)
expect_false(res$reject_same_dist)
res <- carbon.fabric %>%
filter(test == "WC") %>%
filter(condition == "ETW") %>%
ad_ksample(strength, batch)
expect_equal(res$ad / (res$k - 1), 0.723, tolerance = 0.003)
expect_false(res$reject_same_dist)
res <- carbon.fabric %>%
filter(test == "WC") %>%
filter(condition == "CTD") %>%
ad_ksample(strength, batch)
expect_equal(res$ad / (res$k - 1), 1.145, tolerance = 0.002)
expect_false(res$reject_same_dist)
res <- carbon.fabric %>%
filter(test == "FC") %>%
filter(condition == "RTD") %>%
ad_ksample(strength, batch)
expect_equal(res$ad / (res$k - 1), 0.865, tolerance = 0.002)
expect_false(res$reject_same_dist)
res <- carbon.fabric %>%
filter(test == "FC") %>%
filter(condition == "ETW") %>%
ad_ksample(strength, batch)
expect_equal(res$ad / (res$k - 1), 0.934, tolerance = 0.002)
expect_false(res$reject_same_dist)
res <- carbon.fabric %>%
filter(test == "FC") %>%
filter(condition == "CTD") %>%
ad_ksample(strength, batch)
expect_equal(res$ad / (res$k - 1), 0.501, tolerance = 0.002)
expect_false(res$reject_same_dist)
})
test_that("ADK test matches example from CMH-17-1G", {
# Reference the example in section 8.3.11.1.1
etw <- tribble(
~batch, ~strength,
1, 106.357525,
1, 105.898733,
1, 88.4640082,
1, 103.901744,
1, 80.2058219,
1, 109.199597,
1, 61.0139431,
2, 99.3207107,
2, 115.86177,
2, 82.6133082,
2, 85.3690411,
2, 115.801622,
2, 44.3217741,
2, 117.328077,
2, 88.6782903,
3, 107.676986,
3, 108.960241,
3, 116.12264,
3, 80.2334815,
3, 106.14557,
3, 104.667866,
3, 104.234953
)
# ETW:
# ADK = 0.793 / same distribution
res <- etw %>%
ad_ksample(strength, batch)
expect_equal(res$ad / (res$k - 1), 0.793, tolerance = 0.003)
expect_false(res$reject_same_dist)
expect_output(print(res), ".*N.*22")
expect_output(print(res), ".*k.*3")
expect_output(print(res), "Conclusion: Samples come")
etw2 <- tribble(
~batch, ~strength,
1, 99.0239966,
1, 103.341238,
1, 100.30213,
1, 98.4634133,
1, 92.264728,
1, 103.487693,
1, 113.734763,
2, 108.172659,
2, 108.426732,
2, 116.260375,
2, 121.04961,
2, 111.223082,
2, 104.574843,
2, 103.222552,
3, 99.3918538,
3, 87.3421658,
3, 102.730741,
3, 96.3694916,
3, 99.5946088,
3, 97.0712407
)
# ETW2:
# ADK = 3.024 / different distribution
res <- etw2 %>%
ad_ksample(strength, batch)
expect_equal(res$ad / (res$k - 1), 3.024, tolerance = 0.003)
expect_true(res$reject_same_dist)
expect_output(print(res), ".*N.*20")
expect_output(print(res), ".*k.*3")
expect_output(print(res), "Conclusion: Samples do not come")
})
test_that("glance.adk produces expected output", {
res <- carbon.fabric %>%
filter(test == "WT") %>%
filter(condition == "RTD") %>%
ad_ksample(strength, batch)
glance_res <- glance(res)
expect_equal(glance_res[["alpha"]][1], 0.025)
expect_equal(glance_res[["n"]][1], 18)
expect_equal(glance_res[["k"]][1], 3)
expect_equal(glance_res[["sigma"]], 0.944, tolerance = 0.001)
expect_equal(glance_res[["ad"]][1], 0.456 * (res$k - 1))
expect_equal(glance_res[["p"]][1], 0.96, tolerance = 0.001)
expect_equal(glance_res[["reject_same_dist"]], FALSE)
})
test_that("ad_ksample checks that input vectors are equal length", {
expect_error({
ad_ksample(x = c(1, 2, 3), groups = c("A", "B"))
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.