#Defining observed and theoretical distribution
x <- c(42, 5, 13, 2, 109)
p <- c(0.2, 0.05, 0.1, 0.05, 0.6)
#for cvmdisc package
breaks <- c(0, cumsum(p))
#translation for dgof
xx <- c(rep(1, 42), rep(2, 5), rep(3, 13), rep(4, 2), rep(5, 109))
pp <- c(rep(1, 20), rep(2, 5), rep(3, 10), rep(4, 5), rep(5, 60))
test_that("chi_gof statatistic is equal to chisq.test statistic", {
a <- as.numeric(chisq_gof(x, p, reps = 100)$statistic)
b <- as.numeric(chisq.test(x, p = p)$statistic)
expect_equal(a, b)
})
test_that("g_gof statistic is equal to G.test statistic (RVAideMemoire)", {
a <- as.numeric(g_gof(x, p, reps = 100)$statistic)
b <- 12.1450359514788
#b <- as.numeric(RVAideMemoire::G.test(x, p)$statistic)
expect_equal(a, b)
})
test_that("rms_gof statistic is correct", {
a <- as.numeric(rms_gof(x, p, reps = 100)$statistic)
#b <- sqrt(sum((x/sum(x) - p)^2) * 1/length(x))
b <- sum((sqrt(sum(x)) * (x/sum(x) - p))^2)
expect_equal(a, b)
})
test_that("ft_gof statistic is correct", {
a <- as.numeric(ft_gof(x, p, reps = 100)$statistic)
b <- 4 * sum(x) * sum((sqrt((x/sum(x))) - sqrt(p))^2)
expect_equal(a, b)
})
test_that("ks_gof statistic is equal to ks.test statistis (dgof)", {
a <- as.numeric(ks_gof(x, p, reps = 100)$statistic)
b <- as.numeric(dgof::ks.test(xx, ecdf(pp))$statistic)
expect_equal(a, b)
})
test_that("cvm_gof statistic is equal to groupFit statistis (cvmdisc)", {
a <- as.numeric(cvm_gof(x, p, reps = 100)$statistic)
b <- cvmdisc::groupFit(breaks, x, distr = "unif")$stats[2, 1]
expect_equal(a, b)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.