Chapter 13 - Composite Endpoints
Department of Biostatistics & Medical Informatics
University of Wisconsin-Madison
Traditional vs hierarchical composites
The restricted mean time in favor (RMT-IF) of treatment
Win ratio: two-sample analysis
Semiparametric regression of win ratio
\[\newcommand{\d}{{\rm d}}\] \[\newcommand{\T}{{\rm T}}\] \[\newcommand{\dd}{{\rm d}}\] \[\newcommand{\cc}{{\rm c}}\] \[\newcommand{\pr}{{\rm pr}}\] \[\newcommand{\var}{{\rm var}}\] \[\newcommand{\se}{{\rm se}}\] \[\newcommand{\indep}{\perp \!\!\! \perp}\] \[\newcommand{\Pn}{n^{-1}\sum_{i=1}^n}\] \[ \newcommand\mymathop[1]{\mathop{\operatorname{#1}}} \] \[ \newcommand{\Ut}{{n \choose 2}^{-1}\sum_{i<j}\sum} \]
$$
$$


rmt::rmtfit() (I)status = k for entry into state \(k\), K+1 for death, 0 for censoringstatus = 1 for nonfatal event, 2 for death, 0 for censoringrmt::rmtfit() (II)rmtfit
obj$t: \(t\); obj$mu: a matrix of \((K+2)\) rows, \(\hat\mu_k(t)\) in \(k\)th row, \(\hat\mu(t)\) in last; obj$var: variances of point estimates in musummary(obj, tau) for summary results on \(\mu(\tau)\), including the \(\mu_k(\tau)\)
Kmax = k to merge \(\mu_{k+}(\tau)\sum_{k'=k}^K=\mu_{k'}(\tau)\)plot(obj) to plot \(\hat\mu(t)\) against \(t\)| Usual care (N = 221) | Exercise training (N = 205) | ||
|---|---|---|---|
| Age | ≤ 60 years | 122 (55.2%) | 128 (62.4%) |
| > 60 years | 99 (44.8%) | 77 (37.6%) | |
| Follow-up | (months) | 28.6 (18.4, 39.3) | 27.6 (19, 40.2) |
| Death | 57 (25.8%) | 36 (17.6%) | |
| Hospitalizations | 0 | 51 (23.1%) | 60 (29.3%) |
| 1-3 | 114 (51.6%) | 102 (49.8%) | |
| 4-10 | 49 (22.2%) | 39 (19%) | |
| >10 | 7 (3.2%) | 4 (2%) |
# fit RMT-IF
obj <- rmtfit(hfaction$patid, hfaction$time, hfaction$status, hfaction$trt,
type = "recurrent")
summary(obj, Kmax=4, tau=3.97) ## combined recurrent events >= 4
# Restricted mean time in favor of group "1" by time tau = 3.97:
# Estimate Std.Err Z value Pr(>|z|)
# Event 1 0.0140515 0.0498836 0.2817 0.778184
# Event 2 0.0358028 0.0499618 0.7166 0.473619
# Event 3 0.1385287 0.0409533 3.3826 0.000718 ***
# Event 4+ -0.0064731 0.0600813 -0.1077 0.914203
# Survival 0.2384169 0.1143484 2.0850 0.037069 *
# Overall 0.4203268 0.1777363 2.3649 0.018035 * \(\hat\mu(t)\) as a function of \(t\)

Training on average gains 5.1 months (\(P\)=0.018) in favorable state
| Estimate | SE | P-value | ||
|---|---|---|---|---|
| Hopitalization | 2.18 | 1.22 | 0.073 | |
| 1 | 0.17 | 0.60 | 0.778 | |
| 2 | 0.43 | 0.60 | 0.474 | |
| 3 | 1.66 | 0.49 | <0.001 | |
| 4+ | -0.08 | 0.72 | 0.914 | |
| Death | 2.86 | 1.37 | 0.037 | |
| Overall | 5.04 | 2.13 | 0.018 |



WR::pwreg() (I)status = 1 for death, 2 for nonfatal events, 0 for censoringWR::pwreg() (II)ID: subject identifierZ: covariate matrix; strata: possible stratifier (categorical)pwreg
obj$beta: \(\hat\beta\)obj$Var: \(\hat\var(\hat\beta)\)print(obj) to summarize regression resultsWR::score.proc()obj: a pwreg objectscore.proc
score.obj$t: \(t\)score.obj$score: a matrix with rescaled residual process for each covariate per rowplot(score.obj, k): plot the rescaled residuals for \(k\)th covariate#> Estimates for Regression parameters:
#> Estimate se z.value p.value
#> Training vs Usual 0.1906687 0.1264658 1.5077 0.13164
#> Age (year) -0.0128306 0.0057285 -2.2398 0.02510 *
#> Male vs Female -0.1552923 0.1294198 -1.1999 0.23017
#> Black vs White -0.3026335 0.1461330 -2.0709 0.03836 *
#> Other vs White -0.3565390 0.3424360 -1.0412 0.29779
#> BMI -0.0181310 0.0097582 -1.8580 0.06316 .
#> LVEF 0.0214905 0.0086449 2.4859 0.01292 *
#> ...
rmt::rmtfit()WR::pwreg()