cfc.tbasis {CFC} | R Documentation |

## Cause-specific competing-risk survival analysis in time denomination

### Description

Constructing cumulative incidence and event-free probability functions from cause-specific survival probabilities evaluated at fixed time points.

### Usage

```
cfc.tbasis(p1, p2, unity.tol = 1e-06, diff.tol = 0.01,
diff.tol.policy = c("mean", "all"), check = TRUE)
```

### Arguments

`p1` |
Multi-dimensional array containing survival probabilities for cause 1 (i.e. exponential of the negative integral of hazard function). First dimension must correspond to time points at which probabilities are calculated. Elements with same time, but distributed in the space of remaining dimensions, are treated independently. These diemensions can correspond, e.g., to observations or samples (in Bayesian frameworks). |

`p2` |
Multi-dimensional array containing survival probabilities for cause 2. See note for |

`unity.tol` |
Tolerance for difference of survival probabilities from 1.0 at time=0.0, which is the first 'row' of arrays |

`diff.tol` |
Tolerance for change in survival probabilities from one time point to the next. Large changes lead to higher errors during numerical integration. |

`diff.tol.policy` |
If |

`check` |
Boolean flag indicating whether or not to check probability arrays for validity. Current validity checks are: 1) ensuring all probabilities are between 0.0 and 1.0, 2) all probabilities at time=0.0 are equal to 1.0 (see |

### Details

Assuming one-dimensional `p1`

and `p2`

for clarity, the algorithm calculates cumulative incidence function for cuase 1 using a recursive formula: `ci1[n+1] = ci1[n] + dci1[n]`

, where `dci1[n] = 0.5*(p2[n] + p2[n+1])*(p1[n] - p1[n+1])`

. The increment in cumulative incidence function for cause 2 is similarly calculated, `dci2[n] = 0.5*(p1[n] + p1[n+1])*(p2[n] - p2[n+1])`

. These equations guarantee that `dci1[n] + dci2[n] = p1[n]*p2[n] - p1[n+1]*p2[n+1]`

. Event-free probability is simply calculated as codeefp[n] = p1[n]*p2[n]. Taken together, this numerical integration ensures that `efp[n+1] - efp[n] + dci1[n] + dci2[n] = 0`

.

### Value

If `p1`

and `p2`

are one-dimensional arrays (i.e. vectors), a matrix with columns named `"ci1"`

, `"ci2"`

and `"efp"`

is returned, representing the cummulative incidence functions for cause 1 and cause 2 and the event-free probability, evaluated at same time points as `p1`

and `p2`

are provided. If `p1`

and `p2`

are multi-dimensional arrays, a list is returned with elements `"ci1"`

, `"ci2"`

and `"efp"`

, each one with the same interpretation, and all of the same dimensions as `p1`

and `p2`

.

### Note

The integration algorithm described above does not require knowledge of time step. (Alternatively, using hazard functions for integration would have required specification of time step.) Since `p1`

and `p2`

are integrals (followed by exponentiation) of cause-specific hazard functions, using them directly adds to robustness of numerical integration and avoids error accumulation. The returned cumulative incidence and event-free probabilities correspond to the same time points assumed for input cause-specific probabilities.

### Author(s)

Mansour T.A. Sharabiani, Alireza S. Mahani

### References

Mahani A.S. and Sharabiani M.T.A. (2019). Bayesian, and Non-Bayesian, Cause-Specific Competing-Risk Analysis for Parametric and Nonparametric Survival Functions: The R Package CFC. Journal of Statistical Software, 89(9), 1-29. doi:10.18637/jss.v089.i09

Prentice et al (1978). The analysis of failure times in the presence of competing risks. Biometrics, 541-554.

### See Also

### Examples

```
## Not run:
# prepare data for cause-specific competing-risk analysis
data(bmt)
bmt$status1 <- 1*(bmt$cause==1)
bmt$status2 <- 1*(bmt$cause==2)
f1 <- Surv(time, status1) ~ platelet + age + tcell
f2 <- Surv(time, status2) ~ platelet + age + tcell
# sample-based bayesian weibull regression
library(BSGW)
reg1 <- bsgw(f1, bmt, ordweib = TRUE, control = bsgw.control(iter = 500, burnin = 100, nskip = 50))
reg2 <- bsgw(f2, bmt, ordweib = TRUE, control = bsgw.control(iter = 500, burnin = 100, nskip = 50))
# prediction on a uniform grid of 100 time points
# (use first 50 observations for speed)
pred1 <- predict(reg1, newdata = bmt[1:50,], tvec = 100)
pred2 <- predict(reg2, newdata = bmt[1:50,], tvec = 100)
# permuting dimensions of survival objects to conform with cfc
S1 <- aperm(pred1$smp$S, c(2,1,3))
S2 <- aperm(pred2$smp$S, c(2,1,3))
# cause-specific competing risk analysis - time mode
my.cfc <- cfc.tbasis(S1, S2)
# calculating averages across observations (e.g. patients in the study)
my.summ <- summary(my.cfc, MARGIN = c(1,2))
# plotting mean CI and event-free functions
# as well as their sampled-based confidence intervals
plot(my.summ, t = pred1$tvec)
## End(Not run)
```

*CFC*version 1.2.0 Index]