Nothing
test_that("normal deviance equals MSE", {
y <- c(0, 2)
pred <- c(1, 1)
expect_equal(mse(y, pred), deviance_normal(y, pred))
})
test_that("Poisson deviance also accepts predictions of 0", {
y <- 0:3
pred <- y + 0.1
pred_bad <- y
expect_silent(deviance_poisson(y, pred))
expect_silent(deviance_poisson(y, pred_bad))
})
test_that("Poisson deviance only accepts non-negative actual values", {
y <- 0:3
pred <- y + 0.1
y_bad <- y - 0.01
expect_silent(deviance_poisson(y, pred))
expect_error(deviance_poisson(y_bad, pred))
})
test_that("Gamma deviance only accepts positive predictions", {
y <- 1:4
pred <- y + 0.1
pred_bad <- y - 1
expect_silent(deviance_gamma(y, pred))
expect_error(deviance_gamma(y, pred_bad))
})
test_that("Gamma deviance only accepts positive actual values", {
y <- 1:4
pred <- y + 0.1
y_bad <- y - 1
expect_silent(deviance_gamma(y, pred))
expect_error(deviance_gamma(y_bad, pred))
})
test_that("Poisson deviance is 0 if actual = predicted", {
expect_equal(deviance_poisson(0:2, 0:2), 0)
})
test_that("Poisson deviance is Inf if actual > 0 and predicted = 0", {
expect_equal(deviance_poisson(1, 0), Inf)
})
test_that("Poisson deviance is 2 * pred for actual 0", {
y <- 0
pred <- 0.5
expect_equal(deviance_poisson(y, pred), 2 * pred)
})
test_that("Gamma deviance is 0 if actual = predicted", {
y <- 1:2
pred <- y
expect_equal(deviance_gamma(y, pred), 0)
})
test_that("Gamma deviance is 2 * (1 - log(2)) if predicted = actual / 2", {
y <- 2
pred <- y / 2
expect_equal(deviance_gamma(y, pred), 2 * (1 - log(2)))
})
test_that("normal deviance is Tweedie 0", {
y <- 1:3
pred <- y + 0.1
w <- 1:3
expect_equal(deviance_normal(y, pred, w),
deviance_tweedie(y, pred, w, tweedie_p = 0))
})
test_that("Poisson deviance is Tweedie 1", {
y <- 1:3
pred <- y + 0.1
w <- 1:3
expect_equal(deviance_poisson(y, pred, w),
deviance_tweedie(y, pred, w, tweedie_p = 1))
})
test_that("Gamma deviance is Tweedie 2", {
y <- 1:3
pred <- y + 0.1
w <- 1:3
expect_equal(deviance_gamma(y, pred, w),
deviance_tweedie(y, pred, w, tweedie_p = 2))
})
test_that("Tweedie deviance 0.5 gives error", {
y <- 1:3
pred <- y + 0.1
w <- 1:3
expect_error(deviance_tweedie(y, pred, w, tweedie_p = 0.5))
})
test_that("deviance with weight 1 gives same as unweighted", {
y <- c(0.1, 0.2, 1, 2)
pred <- y + 0.1
w <- rep(1, length(y))
expect_equal(deviance_poisson(y, pred, w), deviance_poisson(y, pred))
expect_equal(deviance_gamma(y, pred, w), deviance_gamma(y, pred))
expect_equal(deviance_normal(y, pred, w), deviance_normal(y, pred))
expect_equal(deviance_tweedie(y, pred, w, tweedie_p = 1.5),
deviance_tweedie(y, pred, tweedie_p = 1.5))
})
test_that("deviance with weight 2 gives same as weight 1", {
y <- c(0.1, 0.2, 1, 2)
pred <- y + 0.1
w1 <- rep(1, length(y))
w2 <- rep(2, length(y))
expect_equal(deviance_poisson(y, pred, w1),
deviance_poisson(y, pred, w2))
expect_equal(deviance_gamma(y, pred, w1),
deviance_gamma(y, pred, w2))
expect_equal(deviance_normal(y, pred, w1),
deviance_normal(y, pred, w2))
expect_equal(deviance_tweedie(y, pred, w = w1, tweedie_p = 1.5),
deviance_tweedie(y, pred, w = w2, tweedie_p = 1.5))
})
test_that("deviance with varying weights is different from unweighted", {
y <- c(0.1, 0.2, 1, 2)
pred <- y + 0.1
w <- 1:4
expect_false(deviance_poisson(y, pred, w) == deviance_poisson(y, pred))
expect_false(deviance_gamma(y, pred, w) == deviance_gamma(y, pred))
expect_false(deviance_normal(y, pred, w) == deviance_normal(y, pred))
expect_false(deviance_tweedie(y, pred, w, tweedie_p = 1.5) ==
deviance_tweedie(y, pred, tweedie_p = 1.5))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.