R: Log-rank based test for the validity of the Markov assumption

MarkovTest {mstate} | R Documentation

## Log-rank based test for the validity of the Markov assumption

### Description

Log-rank based test for the validity of the Markov assumption

### Usage

    MarkovTest(
      data,
      id,
      formula = NULL,
      transition,
      grid,
      B = 1000,
      fn = list(function(x) mean(abs(x), na.rm = TRUE)),
      fn2 = list(function(x) mean(x, na.rm = TRUE)),
      min_time = 0,
      other_weights = NULL,
      dist = c("poisson", "normal")
    )

### Arguments

`data` | Multi-state data in `msdata` format. Should also contain (dummy codings of) the relevant covariates; no factors allowed
`id` | Column name in `data` containing subject id
`formula` | Right-hand side of the formula. If NULL will fit with no covariates (formula="1" will also work), offset terms can also be specified.
`transition` | Transition number of the transition to be tested (in the transition matrix as attribute to `data`)
`grid` | Grid of time points at which to compute the statistic
`B` | Number of wild bootstrap replications to perform
`fn` | A list of summary functions to be applied to the individual zbar traces (or a list of lists)
`fn2` | A list of summary functions to be applied to the overall chi-squared trace
`min_time` | The minimum time for calculating optimal weights
`other_weights` | Other (than optimal) weights can be specified here
`dist` | Distribution of wild bootstrap random weights, either "poisson" for centred Poisson (default), or "normal" for standard normal

### Details

Function MarkovTest performs the log-rank test described in Titman & Putter (2020). Function optimal_weights_matrix implements the optimal weighting for the state-specific trace. Function optimal_weights_multiple implements the optimal weighting for the chi-squared trace.

### Value

MarkovTest returns an object of class "MarkovTest", which is a list with the following items:

`orig_stat` | Summary statistic for each of the starting states
`orig_ch_stat` | Overall chi-squared summary statistic
`p_stat_wb` | P-values corresponding to each of the summary statistics for each starting state
`p_ch_stat_wb` | P-values for overall chi-squared summary statistic
`b_stat_wb` | Bootstrap summary statistics for each of the starting states
`zbar` | Individual traces for each of the starting states
`nobs_grid` | The number of events after time s for each s in the grid
`Nsub` | Number of patients who are ever at risk of the transition of interest
`est_quant` | Pointwise 2.5 and 97.5 quantile limits for each of the traces
`obs_chisq_trace` | Trace of the chi-squared statistic
`nch_wb_trace` | Individual values of the chi-squared statistic trace for the wild bootstrap samples
`n_wb_trace` | Individual values of the log-rank z statistic traces for the wild bootstrap samples
`est_cov` | Estimated covariance matrix between the log-rank statistics at each grid point
`transition` | The transition number tested
`from` | The from state of the transition tested
`to` | The to state of the transition tested
`B` | The number of wild bootstrap replications
`dist` | The distribution used in the wild bootstrap
`qualset` | Set of qualifying states corresponding to the components of the above traces
`coxfit` | Fitted coxph object
`fn` | List of functions applied to state-specific trace
`fn2` | List of functions applied to overall trace

### Author(s)

Andrew Titman a.titman@lancaster.ac.uk, transported to mstate by Hein Putter H.Putter@lumc.nl

### References

Titman AC, Putter H (2020). General tests of the Markov property in multi-state models. Biostatistics To appear.

### Examples

    ## Not run:
    # Example provided by the prothrombin data
    data("prothr")
    # Apply Markov test to grid of monthly time points over the first 7.5 years
    year <- 365.25
    month <- year / 12
    grid <- month * (1 : 90)
    # Markov test for transition 1 (wild bootstrap based on 25 replications, 1000 recommended)
    MT <- MarkovTest(prothr, id = "id", transition = 1,
                     grid = grid, B = 25)

    # Plot traces
    plot(MT, grid, what="states", idx=1:10, states=rownames(attr(prothr, "trans")),
         xlab="Days since randomisation", ylab="Log-rank test statistic",
         main="Transition Normal -> Low")
    plot(MT, grid,what="overall", idx=1:10,
         xlab="Days since randomisation", ylab="Chi-square test statistic",
         main="Transition Normal -> Low")

    # Example using optimal weights and adjustment for covariates
    oweights_fun <-
      optimal_weights_matrix(prothr, id = "id", grid=grid, transition = 1,
                             other_weights=list(
                               function(x) mean(abs(x),na.rm=TRUE),
                               function(x) max(abs(x),na.rm=TRUE)))

    oweights_chi <- optimal_weights_multiple(prothr, id = "id", grid=grid, transition = 1)

    # Formula in MarkovTest only works for continuous covariates and dummy coded variables
    # No factors allowed
    prothr$prednisone <- as.numeric(prothr$treat == "Prednisone")
    MT <- MarkovTest(prothr, id = "id",
                     formula = "prednisone",
                     transition = 1,
                     grid = grid, B = 25,
                     fn = oweights_fun,
                     fn2 = list(
                       function(x) weighted.mean(x, w=oweights_chi, na.rm=TRUE),
                       function(x) mean(x, na.rm=TRUE),
                       function(x) max(x, na.rm=TRUE)))

    ## End(Not run)

[Package mstate version 0.3.1 Index]