## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  message = FALSE,
  warning = FALSE,
  comment = "#>",
  eval = FALSE,
  include = TRUE,
  out.width = "100%"
)

## ----eval = TRUE, include = TRUE----------------------------------------------
library(lnmixsurv)
library(readr)

mod1 <- survival_ln_mixture(Surv(y, delta) ~ x,
  sim_data$data,
  starting_seed = 20
)

mod1

## ----eval=TRUE, include=TRUE--------------------------------------------------
library(censored)
library(ggplot2)
library(dplyr)
library(tidyr)
library(purrr)

mod_spec <- survival_reg() |>
  set_engine("survival_ln_mixture", starting_seed = 20) |>
  set_mode("censored regression")

mod2 <- mod_spec |>
  fit(Surv(y, delta) ~ x, sim_data$data)

## ----eval = TRUE--------------------------------------------------------------
tidy(mod1)
tidy(mod2)

## ----prediction---------------------------------------------------------------
# library(ggplot2)
# library(dplyr)
# library(tidyr)
# library(purrr)
# 
# models <- list(formula = mod1, tidymodels = mod2)
# 
# new_data <- sim_data$data |> distinct(x)
# pred_sob <- map(models, ~ predict(.x, new_data,
#   type = "survival",
#   eval_time = seq(120)
# ))
# 
# bind_rows(pred_sob, .id = "modelo") |>
#   group_by(modelo) |>
#   mutate(id = new_data$x) |>
#   ungroup() |>
#   unnest(cols = .pred) |>
#   ggplot(aes(x = .eval_time, y = .pred_survival, col = id)) +
#   geom_line() +
#   theme_bw() +
#   facet_wrap(~modelo)

## ----echo = FALSE, eval = TRUE, fig.width=7-----------------------------------
models <- list(formula = mod1, tidymodels = mod2)

new_data <- sim_data$data |> distinct(x)

pred_sob <- map(models, ~ predict(.x, new_data,
  type = "survival",
  eval_time = seq(120)
))

bind_rows(pred_sob, .id = "modelo") |>
  group_by(modelo) |>
  mutate(id = new_data$x) |>
  ungroup() |>
  unnest(cols = .pred) |>
  ggplot(aes(x = .eval_time, y = .pred_survival, col = id)) +
  geom_line() +
  theme_bw() +
  facet_wrap(~modelo)

