--- title: "Piecewise Constant Hazards Calculations" author: "Daniel Sabanés Bové" output: rmarkdown::html_vignette format: html: html-math-method: mathjax include-in-header: - text: | bibliography: references.bib vignette: > %\VignetteIndexEntry{Piecewise Constant Hazards Calculations} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ## Introduction In this vignette we derive the explicit formula for the overall survival under piecewise constant hazards. This is implemented in the function `PWCsurvOS()`. So we are in the situation where the hazards for the transitions are piecewise constant, i.e. all three hazard functions $\lambda_{01}(t)$ (stable to progression), $\lambda_{02}(t)$ (stable to death) and $\lambda_{12}(t)$ (progression to death) are step functions. Say the start points of the constant hazard pieces for $\lambda_{01}(t)$ are $0 \equiv t_{01}^{(1)} < \dotsb < t_{01}^{(k_{01})}$, $k_{01} \geq 1$, with corresponding constant positive hazards $h_{01}^{(1)}, \dotsc, h_{01}^{(k_{01})}$. Obviously we use here the smallest set of pieces, i.e. neighboring hazards are required to be different, $h_{01}^{(j)} \neq h_{01}^{(j+1)}$. This holds analogously for the hazard functions of the other two state transitions. We denote the cumulative hazards similarly as $\Lambda_{01}(t)$, $\Lambda_{02}(t)$ and $\Lambda_{12}(t)$. Note that these are piecewise linear, with the slope changes occurring at the times of hazard changes. ## Overall survival calculation Now we want to calculate the overall survival (OS) survival function induced by the piecewise constant hazard model. We start from $$ S_{\text{OS}}(t) = S_{\text{PFS}}(t) + \int_0^t S_{\text{PFS}}(u) \lambda_{01}(u)\exp(\Lambda_{12}(u) - \Lambda_{12}(t))\, du $$ where $S_{\text{OS}}(t)$ is the survival function for OS, and $S_{\text{PFS}}(t)$ is the survival function for PFS with the closed form $$ S_{\text{PFS}}(t) = \exp(- \Lambda_{01}(t) - \Lambda_{02}(t)). $$ Hence we can rewrite the integral from above as $$ \exp(- \Lambda_{12}(t)) \int_0^t \exp(\Lambda_{12}(u) - \Lambda_{01}(u) - \Lambda_{02}(u))\lambda_{01}(u)\, du $$ So overall we now have $$ S_{\text{OS}}(t) = S_{\text{PFS}}(t) + \exp(- \Lambda_{12}(t)) \cal{I}(t) $$ and we can rewrite the integral $$ \cal{I}(t) := \int_0^t \exp(\Lambda_{12}(u) - \Lambda_{01}(u) - \Lambda_{02}(u))\lambda_{01}(u)\, du $$ in terms of the unique starting time points $0 \equiv t_{(1)} < \dotsb < t_{(k)}$, chosen such that the set $\{t_{(1)}, \dotsc, t_{(k)}\}$ is the smallest super set of all state specific transition starting points $\{t_{01}^{(1)}, \dotsc, t_{01}^{(k_{01})}\}$, $\{t_{02}^{(1)}, \dotsc, t_{02}^{(k_{02})}\}$ and $\{t_{12}^{(1)}, \dotsc, t_{12}^{(k_{12})}\}$, as \begin{align} \cal{I}(t) = &\int_{t_{(1)}}^{t_{(2)}} \exp(a_{(1)} + b_{(1)}(u - t_{(1)}))h_{01(1)}\,du \\ &+ \dotsb + \\ &\int_{t_{(l)}}^{t} \exp(a_{(l)} + b_{(l)}(u - t_{(l)}))h_{01(l)}\,du, \end{align} where: - $t_{(l)}$ is the start of the last integral part and defined as the maximum starting point that is smaller than $t$ - $h_{01(j)} = \lambda_{01}(t_{(j)})$, $j=1, \dotsc, k$ are the hazard values for the stable to progression transition within the unique time intervals - $a_{(j)} = \Lambda_{12}(t_{(j)}) - \Lambda_{01}(t_{(j)}) - \Lambda_{02}(t_{(j)})$, $j=1, \dotsc, k$ are the intercepts - $b_{(j)} = h_{12(j)} - h_{01(j)} - h_{02(j)}$, $j=1, \dotsc, k$ are the slopes, again using the hazard values within the unique time intervals for the specific transitions Note that this is essentially just because of $$ \Lambda(t) = \Lambda(s) + h (t-s) $$ when there is a constant hazard $\lambda(t) \equiv h$ and two time points $s