test_that("AD test gives same results for a data frame and a vector", {
data <- data.frame(
strength = c(
79.9109621761937,
77.9447436346388,
79.717168019752,
87.3547460860547,
76.2404769192413,
75.7026911300246,
79.5952709280298,
76.7833784980155,
77.5791472067831,
78.4164523339268,
79.2819398818745,
77.6346481930964,
81.2182937743241,
81.1826431730731,
86.0561762593461,
82.1837784884495,
80.7564920650884,
79.3614980225488
))
res_vec1 <- anderson_darling_normal(
x = data$strength)
# value from STAT17 (0.0840)
expect_equal(res_vec1$osl, 0.0840, tolerance = 0.002)
res_df <- anderson_darling_normal(
data,
strength)
expect_equal(res_vec1$osl, res_df$osl)
})
test_that("AD test matches results from STAT17 (normal)", {
data <- data.frame(
strength = c(
137.4438,
139.5395,
150.89,
141.4474,
141.8203,
151.8821,
143.9245,
132.9732,
136.6419,
138.1723,
148.7668,
143.283,
143.5429,
141.7023,
137.4732,
152.338,
144.1589,
128.5218
))
res_vec <- anderson_darling_normal(x = data$strength)
expect_equal(res_vec$osl, 0.465, tolerance = 0.002)
# Do it again but pass in a data.frame
res_df <- anderson_darling_normal(data, strength)
expect_equal(res_vec$osl, res_df$osl)
})
test_that("AD test matches results from STAT17 (lognormal)", {
data <- data.frame(
strength = c(
137.4438,
139.5395,
150.89,
141.4474,
141.8203,
151.8821,
143.9245,
132.9732,
136.6419,
138.1723,
148.7668,
143.283,
143.5429,
141.7023,
137.4732,
152.338,
144.1589,
128.5218
))
res_vec <- anderson_darling_lognormal(x = data$strength)
expect_equal(res_vec$osl, 0.480, tolerance = 0.002)
# Do it again but pass in a data.frame
res_df <- anderson_darling_lognormal(data, strength)
expect_equal(res_vec$osl, res_df$osl)
})
test_that("AD test matches results from STAT17 (weibull)", {
data <- data.frame(
strength = c(
137.4438,
139.5395,
150.89,
141.4474,
141.8203,
151.8821,
143.9245,
132.9732,
136.6419,
138.1723,
148.7668,
143.283,
143.5429,
141.7023,
137.4732,
152.338,
144.1589,
128.5218
)
)
# OSL: 0.179
res_vec <- anderson_darling_weibull(x = data$strength)
expect_equal(res_vec$osl, 0.179, tolerance = 0.002)
# Do it again but pass in a data.frame
res_df <- anderson_darling_weibull(data, strength)
expect_equal(res_vec$osl, res_df$osl)
})
test_that("ad_p_unknown_parameters matches normal results from Lawless", {
# Comparison with the results from:
# J. F. Lawless, \emph{Statistical models and methods for lifetime data}.
# New York: Wiley, 1982.
# See page 458
fcn <- function(a, n) {
ad_p_normal_unknown_param(a / (1 + 4 / n - 25 / n ^ 2), n)
}
n <- 5
expect_equal(fcn(0.576, n), 0.15, tolerance = 0.002 / 0.15)
expect_equal(fcn(0.656, n), 0.10, tolerance = 0.002 / 0.10)
expect_equal(fcn(0.787, n), 0.05, tolerance = 0.002 / 0.05)
expect_equal(fcn(0.918, n), 0.025, tolerance = 0.002 / 0.025)
expect_equal(fcn(1.092, n), 0.01, tolerance = 0.002 / 0.01)
n <- 10
expect_equal(fcn(0.576, n), 0.15, tolerance = 0.002 / 0.15)
expect_equal(fcn(0.656, n), 0.10, tolerance = 0.002 / 0.10)
expect_equal(fcn(0.787, n), 0.05, tolerance = 0.002 / 0.05)
expect_equal(fcn(0.918, n), 0.025, tolerance = 0.002 / 0.025)
expect_equal(fcn(1.092, n), 0.01, tolerance = 0.002 / 0.01)
n <- 20
expect_equal(fcn(0.576, n), 0.15, tolerance = 0.002 / 0.15)
expect_equal(fcn(0.656, n), 0.10, tolerance = 0.002 / 0.10)
expect_equal(fcn(0.787, n), 0.05, tolerance = 0.002 / 0.05)
expect_equal(fcn(0.918, n), 0.025, tolerance = 0.002 / 0.025)
expect_equal(fcn(1.092, n), 0.01, tolerance = 0.002 / 0.01)
})
test_that("ad_p_unknown_parameters matches weibull results from Lawless", {
# Comparison with the results from:
# J. F. Lawless, \emph{Statistical models and methods for lifetime data}.
# New York: Wiley, 1982.
# See p. 455
fcn <- function(a, n) {
ad_p_weibull_unknown_param(a / (1 + 0.2 / sqrt(n)), n)
}
n <- 5
expect_equal(fcn(0.474, n), 0.25, tolerance = 0.002 / 0.25)
expect_equal(fcn(0.637, n), 0.10, tolerance = 0.002 / 0.10)
expect_equal(fcn(0.757, n), 0.05, tolerance = 0.002 / 0.05)
expect_equal(fcn(0.877, n), 0.025, tolerance = 0.002 / 0.025)
expect_equal(fcn(1.038, n), 0.01, tolerance = 0.002 / 0.01)
n <- 10
expect_equal(fcn(0.474, n), 0.25, tolerance = 0.002 / 0.25)
expect_equal(fcn(0.637, n), 0.10, tolerance = 0.002 / 0.10)
expect_equal(fcn(0.757, n), 0.05, tolerance = 0.002 / 0.05)
expect_equal(fcn(0.877, n), 0.025, tolerance = 0.002 / 0.025)
expect_equal(fcn(1.038, n), 0.01, tolerance = 0.002 / 0.01)
n <- 20
expect_equal(fcn(0.474, n), 0.25, tolerance = 0.002 / 0.25)
expect_equal(fcn(0.637, n), 0.10, tolerance = 0.002 / 0.10)
expect_equal(fcn(0.757, n), 0.05, tolerance = 0.002 / 0.05)
expect_equal(fcn(0.877, n), 0.025, tolerance = 0.002 / 0.025)
expect_equal(fcn(1.038, n), 0.01, tolerance = 0.002 / 0.01)
})
test_that("print.anderson_darling contains expected values", {
data <- data.frame(
strength = c(
137.4438,
139.5395,
150.89,
141.4474,
141.8203,
151.8821,
143.9245,
132.9732,
136.6419,
138.1723,
148.7668,
143.283,
143.5429,
141.7023,
137.4732,
152.338,
144.1589,
128.5218
))
res_vec <- anderson_darling_normal(x = data$strength)
# should include the distribution
expect_output(print(res_vec), "distribution.*normal", ignore.case = TRUE)
# should include the signficance for known parameters
expect_output(print(res_vec), "OSL.*0.464.*unknown", ignore.case = TRUE)
# conclusion should be printed
expect_output(print(res_vec), "conclusion.*is drawn.*alpha.*0.05",
ignore.case = TRUE)
expect_false(res_vec$reject_distribution)
# if alpha is adjusted to be above OSL, the conclusion should be reversed
res_vec <- anderson_darling_normal(x = data$strength, alpha = 0.470)
expect_output(print(res_vec), "conclusion.*is not drawn.*alpha.*0.47",
ignore.case = TRUE)
expect_true(res_vec$reject_distribution)
})
test_that("glance method produces expected results", {
x <- c(
137.4438,
139.5395,
150.89,
141.4474,
141.8203,
151.8821,
143.9245,
132.9732,
136.6419,
138.1723,
148.7668,
143.283,
143.5429,
141.7023,
137.4732,
152.338,
144.1589,
128.5218
)
res <- anderson_darling_lognormal(x = x)
glance_res <- glance(res)
expect_equal(glance_res$osl[1], 0.480, tolerance = 0.002)
expect_equal(glance_res$dist[1], "Lognormal")
expect_equal(glance_res$n[1], 18)
expect_equal(glance_res$A[1], 0.277, tolerance = 0.005)
expect_equal(glance_res$alpha, 0.05)
expect_equal(glance_res$reject_distribution, FALSE)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.