skip_on_os(c("mac", "solaris"))
skip_if_not_installed("survival", minimum_version = "3.2.9")
skip_if_not_installed("emmeans")
skip_if_not_installed("effects")
test_that("ggpredict, survreg", {
m1 <- survival::survreg(
survival::Surv(futime, fustat) ~ ecog.ps + rx,
data = survival::ovarian, dist = "exponential"
)
pr <- ggpredict(m1, "ecog.ps")
expect_equal(pr$predicted[1], 1637.551, tolerance = 1e-4)
expect_null(ggeffect(m1, "ecog.ps"))
pr <- ggemmeans(m1, "ecog.ps")
expect_equal(pr$predicted[1], 1637.551, tolerance = 1e-4)
})
test_that("ggpredict, survreg, quantile", {
data("lung2")
fit <- survival::survreg(
survival::Surv(time, status) ~ ph.ecog + age + sex,
data = lung2,
dist = "weibull"
)
out <- predict_response(fit, "sex", type = "quantile")
out2 <- prdat <- predict(fit, newdata = data_grid(fit, "sex"), type = "quantile")
expect_named(
out,
c("x", "predicted", "std.error", "conf.low", "conf.high", "response.level", "group")
)
expect_equal(
out$predicted[order(out$response.level)],
c(out2[, 1], out2[, 2]),
tolerance = 1e-4,
ignore_attr = TRUE
)
expect_equal(
out$conf.low,
c(63.80253, 662.8553, 91.94941, 904.90683),
tolerance = 1e-4,
ignore_attr = TRUE
)
expect_equal(
out$predicted,
c(93.02258, 891.08697, 138.31619, 1324.96601),
tolerance = 1e-4,
ignore_attr = TRUE
)
# muliple time points for quantiles
out <- predict_response(fit, "sex", type = "quantile", p = 0.5)
out2 <- predict(fit, newdata = data_grid(fit, "sex"), type = "quantile", p = 0.5)
expect_equal(out$predicted, out2, tolerance = 1e-4, ignore_attr = TRUE)
out <- predict_response(fit, "sex", type = "quantile", p = c(0.1, 0.5, 0.8))
out2 <- predict(fit, newdata = data_grid(fit, "sex"), type = "quantile", p = c(0.1, 0.5, 0.8))
expect_equal(
out$predicted[order(out$response.level)],
c(out2[, 1], out2[, 2], out2[, 3]),
tolerance = 1e-4,
ignore_attr = TRUE
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.