Learn R Programming

HQM (version 1.1)

h_xtll: Local linear future conditional hazard rate estimation at a single time point

Description

Calculates the (indexed) local linear future conditional hazard rate for a marker value x and a time value t.

Usage

h_xtll(br_X, br_s, int_X, size_s_grid, alpha, x,t, b, Yi,n, Y)

Value

A single numeric value of \(\hat h_x(t)\).

Arguments

br_X

Vector of grid points for the marker values \(X\).

br_s

Vector of grid points for the time values \(s\).

int_X

Position of the linear interpolated marker values on the marker grid.

size_s_grid

Size of the time grid.

alpha

Marker-hazard obtained from get_alpha.

x

Numeric value of the last observed marker value.

t

Numeric time value.

b

Bandwidth.

Yi

A matrix made by make_Yi indicating the exposure.

n

Number of individuals.

Y

A matrix made by make_Y indicating the exposure.

Details

Function h_xtll implements the future local linear conditional hazard estimator

$$\hat{h}_x(t) = \frac{\sum_{i=1}^n \int_0^T\hat{\alpha}_i(\hat \theta^T X_i(t+s))Z_i(t+s)Z_i(s)K_{b}(x-\hat \theta^T X_i(s))\mathrm {d}s}{\sum_{i=1}^n\int_0^TZ_i(t+s)Z_i(s)K_{b}(x- \hat \theta^T X_i(s))\mathrm {d}s},$$ for every \(x\) on the marker grid, where, for a positive integer \(p\), \(\hat \theta^T = (\hat \theta_1, \dots, \hat \theta_p )\) is the vector of the estimated indexing parameters, \(X_i = (X_{1, i}, \dots, X_{i,p})\) is a vector of markers for indexing, \(Z_i\) is the exposure and \(\alpha(z)\) is the marker-only hazard, see get_alpha for more details. For \(p=1\) and \(\hat \theta = 1\) the above estimator becomes the HQM hazard rate estimator conditional on a single covariate, $$\hat{h}_x(t) = \frac{\sum_{i=1}^n \int_0^T\hat{\alpha}_i( X_i(t+s))Z_i(t+s)Z_i(s)K_{b}(x- X_i(s))\mathrm {d}s}{\sum_{i=1}^n\int_0^TZ_i(t+s)Z_i(s)K_{b}(x- X_i(s))\mathrm {d}s},$$ defined in equation (2) of tools:::Rd_expr_doi("10.1093/biomet/asaf008"). In the place of \(K_b()\), h_xtll uses the kernel $$K_{x,b}(u)= \frac{K_b(u)-K_b(u)u^T D^{-1}c_1}{c_0 - c_1^T D^{-1} c_1}, $$ where \(K_b() = b^{-1}K(./b)\) with \(K\) being an ordinary kernel, e.g. the Epanechnikov kernel, \(c_1 = (c_{11}, \dots, c_{1d})^T, D = (d_{ij})_{(d+1) \times (d+1)}\) with $$ c_0 = \sum_{i=1}^n \int_0^T K_b(x-\hat \theta^T X_i(s)) Z_i(s)ds, $$ $$ c_{ij} = \sum_{i=1}^n \int_0^T K_b(x-\hat \theta^T X_i(s))\{x-\hat \theta^T X_{ij}(s)\} Z_i(s)ds, $$ $$ d_{jk} = \sum_{i=1}^n \int_0^T K_b(x-\hat \theta^T X_i(s))\{x-\hat \theta^T X_{ij}(s)\}\{x-\hat \theta^T X_{ik}(s)\} Z_i(s)ds, $$

see also tools:::Rd_expr_doi("10.1080/03461238.1998.10413997").

The future conditional hazard is defined as $$h_{x,T}(t) = P\left(T_i\in (t+T, t+T+dt)| \theta_0^T X_i(T)=x, T_i > t+T\right),$$ where \(T_i\) is the survival time and \(X_i\) the marker of individual \(i\) observed in the time frame \([0,T]\).

References

Bagkavos, I., Isakson, R., Mammen, E., Nielsen, J., and Proust–Lima, C. (2025). Biometrika, 112(2), asaf008. tools:::Rd_expr_doi("10.1093/biomet/asaf008")

Nielsen (1998), Marker dependent kernel hazard estimation from local linear estimation, Scandinavian Actuarial Journal, pp. 113-124. tools:::Rd_expr_doi("10.1080/03461238.1998.10413997")

See Also

get_alpha, dij

Examples

Run this code
pbc2_id = to_id(pbc2)
size_s_grid <- size_X_grid <- 100
n = max(as.numeric(pbc2$id))
s = pbc2$year
X = pbc2$serBilir
XX = pbc2_id$serBilir
ss <- pbc2_id$years
delta <- pbc2_id$status2
br_s = seq(0, max(s), max(s)/( size_s_grid-1))
br_X = seq(min(X), max(X), (max(X)-min(X))/( size_X_grid-1))

X_lin = lin_interpolate(br_s, pbc2_id$id, pbc2$id, X, s)

int_X <- findInterval(X_lin, br_X)
int_s = rep(1:length(br_s), n)

N <- make_N(pbc2, pbc2_id, breaks_X=br_X, breaks_s=br_s, ss, XX, delta)
Y <- make_Y(pbc2, pbc2_id, X_lin, br_X, br_s, size_s_grid, size_X_grid, int_s, int_X, 
            'years', n)

b = 1.7
alpha<-get_alpha(N, Y, b, br_X, K=Epan )

Yi <- make_Yi(pbc2, pbc2_id, X_lin, br_X, br_s, size_s_grid, size_X_grid, int_s, int_X,
              'years', n)

x = 2
t = 2
h_hat = h_xtll(br_X, br_s, int_X, size_s_grid, alpha, x, t, b, Yi, n, Y)

Run the code above in your browser using DataLab