Nothing
library(dplyr, warn.conflicts = FALSE)
library(survival)
testthat::test_that(
"residuals_phregr: null model for right-censored data", {
pbc <- pbc %>% mutate(event = 1*(status == 2))
for (type in c("martingale", "deviance")) {
fit1 <- phregr(pbc, time="time", event="event", covariates="")
rr1 <- residuals_phregr(fit1, type=type)
fit2 <- coxph(Surv(time, event) ~ 1, data=pbc)
rr2 <- resid(fit2, type=type)
names(rr2) <- NULL
testthat::expect_equal(rr1, rr2)
}
})
testthat::test_that(
"residuals_phregr: right-censored data with covariates", {
pbc <- pbc %>% mutate(event = 1*(status == 2))
for (type in c("martingale", "deviance", "score", "schoenfeld",
"dfbeta", "dfbetas", "scaledsch")) {
fit1 <- phregr(pbc, time="time", event="event",
covariates=c("age", "edema", "log(bili)",
"log(protime)", "log(albumin)"))
rr1 <- residuals_phregr(fit1, type=type)
fit2 <- coxph(Surv(time, event) ~ age + edema + log(bili) +
log(protime) + log(albumin), data=pbc)
rr2 <- resid(fit2, type=type)
if (type=="martingale" || type=="deviance") {
names(rr2) <- NULL
} else {
rownames(rr2) <- NULL
if (type=="schoenfeld") {
attr(rr1, "time") <- NULL
} else if (type=="dfbeta" || type=="dfbetas") {
colnames(rr1) <- NULL
}
}
testthat::expect_equal(rr1, rr2)
}
})
testthat::test_that(
"residuals_phregr: null model for counting process data", {
pbcseq <- pbcseq %>%
group_by(id) %>%
arrange(id, day) %>%
mutate(tstart = day,
tstop = ifelse(row_number() != n(), lead(day), futime),
event = ifelse(row_number() != n(), 0, 1*(status == 2)))
for (type in c("martingale", "deviance")) {
fit1 <- phregr(pbcseq, time="tstart", time2="tstop", event="event",
covariates="", id="id", robust=TRUE)
rr1 <- residuals_phregr(fit1, type=type)
fit2 <- coxph(Surv(tstart, tstop, event) ~ 1, data=pbcseq,
cluster=id, robust=TRUE)
rr2 <- resid(fit2, type=type)
names(rr2) <- NULL
testthat::expect_equal(rr1, rr2)
}
})
testthat::test_that(
"residuals_phregr: counting process data with covariates", {
pbcseq <- pbcseq %>%
group_by(id) %>%
arrange(id, day) %>%
mutate(tstart = day,
tstop = ifelse(row_number() != n(), lead(day), futime),
event = ifelse(row_number() != n(), 0, 1*(status == 2)))
for (type in c("martingale", "deviance", "score", "schoenfeld",
"dfbeta", "dfbetas", "scaledsch")) {
fit1 <- phregr(pbcseq, time="tstart", time2="tstop", event="event",
covariates=c("age", "edema", "log(bili)",
"log(protime)", "log(albumin)"),
id="id", robust=TRUE)
rr1 <- residuals_phregr(fit1, type=type)
fit2 <- coxph(Surv(tstart, tstop, event) ~ age + edema + log(bili) +
log(protime) + log(albumin), data=pbcseq,
cluster=id, robust=TRUE)
rr2 <- resid(fit2, type=type)
if (type=="martingale" || type=="deviance") {
names(rr2) <- NULL
} else {
rownames(rr2) <- NULL
if (type=="schoenfeld") {
attr(rr1, "time") <- NULL
} else if (type=="dfbeta" || type=="dfbetas") {
colnames(rr1) <- NULL
}
}
testthat::expect_equal(rr1, rr2)
}
})
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.