Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# bayesplot (development version)

* Add possibility for left-truncation to `ppc_km_overlay()` and `ppc_km_overlay_grouped()` by @Sakuski
* Added `ppc_loo_pit_ecdf()` by @TeemuSailynoja

# bayesplot 1.12.0
Expand Down
17 changes: 16 additions & 1 deletion R/ppc-censoring.R
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ ppc_km_overlay <- function(
yrep,
...,
status_y,
left_truncation_y = NULL,
size = 0.25,
alpha = 0.7
) {
Expand All @@ -82,8 +83,20 @@ ppc_km_overlay <- function(
stopifnot(is.numeric(status_y))
stopifnot(all(status_y %in% c(0, 1)))

if (!is.null(left_truncation_y)) {
if (!is.numeric(left_truncation_y) || length(left_truncation_y) != length(y)) {
stop("`left_truncation_y` must be a numeric vector of the same length as `y`.")
}
}

data <- ppc_data(y, yrep, group = status_y)

if (!is.null(left_truncation_y)) {
data$left_trunc <- left_truncation_y[data$y_id]
} else {
data$left_trunc <- 0
}

# Modify the status indicator:
# * For the observed data ("y"), convert the status indicator back to
# a numeric.
Expand All @@ -96,7 +109,7 @@ ppc_km_overlay <- function(
as.numeric(as.character(.data$group)),
1))

sf_form <- survival::Surv(value, group) ~ rep_label
sf_form <- survival::Surv(time = data$left_trunc, time2 = data$value, event = data$group) ~ rep_label
if (!is.null(add_group)) {
data <- dplyr::inner_join(data,
tibble::tibble(y_id = seq_along(y),
Expand Down Expand Up @@ -164,6 +177,7 @@ ppc_km_overlay_grouped <- function(
group,
...,
status_y,
left_truncation_y = NULL,
size = 0.25,
alpha = 0.7
) {
Expand All @@ -175,6 +189,7 @@ ppc_km_overlay_grouped <- function(
add_group = group,
...,
status_y = status_y,
left_truncation_y = left_truncation_y,
size = size,
alpha = alpha
)
Expand Down
Loading