# Fit Semiparametric Proportional 0dds Model for the competing risks subdistribution

### Description

Fits a semiparametric proportional odds model:

*
logit(F_1(t;X,Z)) = log( A(t)) + β^T Z
*

where A(t) is increasing but otherwise unspecified. Model is fitted by maximising the modified partial likelihood. A goodness-of-fit test by considering the score functions is also computed by resampling methods.

An alternative way of writing the model :

*
F_1(t;X,Z) = \frac{ \exp( β^T Z )}{
(A(t)) + \exp( β^T Z) }
*

such that *β* is the log-odds-ratio of cause 1 before time t,
and *A(t)* is the odds-ratio.

The modelling formula uses the standard survival modelling given in the
**survival** package.

### Usage

1 2 3 4 |

### Arguments

`formula` |
a formula object, with the response on the left of a '~' operator, and the terms on the right. The response must be an object as returned by the ‘Event’ function. |

j

`data` |
a data.frame with the variables. |

`cause` |
cause indicator for competing risks. |

`beta` |
starting value for relative risk estimates |

`Nit` |
number of iterations for Newton-Raphson algorithm. |

`detail` |
if 0 no details is printed during iterations, if 1 details are given. |

`start.time` |
start of observation period where estimates are computed. |

`max.time` |
end of observation period where estimates are computed. Estimates thus computed from [start.time, max.time]. This is very useful to obtain stable estimates, especially for the baseline. Default is max of data. |

`id` |
For timevarying covariates the variable must associate each record with the id of a subject. |

`n.sim` |
number of simulations in resampling. |

`weighted.test` |
to compute a variance weighted version of the test-processes used for testing time-varying effects. |

`profile` |
use profile version of score equations. |

`sym` |
to use symmetrized second derivative in the case of the estimating equation approach (profile=0). This may improve the numerical performance. |

`cens.model` |
specifies censoring model. So far only Kaplan-Meier "KM". |

`cens.formula` |
possible formula for censoring distribution covariates. Default all ! |

`clusters` |
to compute cluster based standard errors. |

`max.clust` |
number of maximum clusters to be used, to save time in iid decomposition. |

`baselinevar` |
set to 0 to save time on computations. |

`weights` |
additional weights. |

`cens.weights` |
specify censoring weights related to the observations. |

### Details

The data for a subject is presented as multiple rows or "observations", each of which applies to an interval of observation (start, stop]. The program essentially assumes no ties, and if such are present a little random noise is added to break the ties.

### Value

returns an object of type 'cox.aalen'. With the following arguments:

`cum` |
cumulative timevarying regression coefficient estimates are computed within the estimation interval. |

`var.cum` |
the martingale based pointwise variance estimates. |

`robvar.cum` |
robust pointwise variances estimates. |

`gamma` |
estimate of proportional odds parameters of model. |

`var.gamma` |
variance for gamma. |

`robvar.gamma` |
robust variance for gamma. |

`residuals` |
list with residuals. Estimated martingale increments (dM) and corresponding time vector (time). |

`obs.testBeq0` |
observed absolute value of supremum of cumulative components scaled with the variance. |

`pval.testBeq0` |
p-value for covariate effects based on supremum test. |

`sim.testBeq0` |
resampled supremum values. |

`obs.testBeqC` |
observed absolute value of supremum of difference between observed cumulative process and estimate under null of constant effect. |

`pval.testBeqC` |
p-value based on resampling. |

`sim.testBeqC` |
resampled supremum values. |

`obs.testBeqC.is` |
observed integrated squared differences between observed cumulative and estimate under null of constant effect. |

`pval.testBeqC.is` |
p-value based on resampling. |

`sim.testBeqC.is` |
resampled supremum values. |

`conf.band` |
resampling based constant to construct robust 95% uniform confidence bands. |

`test.procBeqC` |
observed test-process of difference between observed cumulative process and estimate under null of constant effect over time. |

`loglike` |
modified partial likelihood, pseudo profile likelihood for regression parameters. |

`D2linv` |
inverse of the derivative of the score function. |

`score` |
value of score for final estimates. |

`test.procProp` |
observed score process for proportional odds regression effects. |

`pval.Prop` |
p-value based on resampling. |

`sim.supProp` |
re-sampled supremum values. |

`sim.test.procProp` |
list of 50 random realizations of test-processes for constant proportional odds under the model based on resampling. |

### Author(s)

Thomas Scheike

### References

Eriksson, Li, Zhang and Scheike (2014), The proportional odds cumulative incidence model for competing risks, Biometrics, to appear.

Scheike, A flexible semiparametric transformation model for survival data, Lifetime Data Anal. (2007).

Martinussen and Scheike, Dynamic Regression Models for Survival Data, Springer (2006).

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | ```
library(timereg)
data(bmt)
# Fits Proportional odds model
out <- prop.odds.subdist(Event(time,cause)~platelet+age+tcell,data=bmt,
cause=1,cens.model="KM",detail=0,n.sim=1000)
summary(out)
par(mfrow=c(2,3))
plot(out,sim.ci=2);
plot(out,score=1)
# simple predict function without confidence calculations
pout <- predictpropodds(out,X=model.matrix(~platelet+age+tcell,data=bmt)[,-1])
matplot(pout$time,pout$pred,type="l")
# predict function with confidence intervals
pout2 <- predict(out,Z=c(1,0,1))
plot(pout2,col=2)
pout1 <- predictpropodds(out,X=c(1,0,1))
lines(pout1$time,pout1$pred,type="l")
# Fits Proportional odds model with stratified baseline, does not work yet!
###out <- Gprop.odds.subdist(Surv(time,cause==1)~-1+factor(platelet)+
###prop(age)+prop(tcell),data=bmt,cause=bmt$cause,
###cens.code=0,cens.model="KM",causeS=1,detail=0,n.sim=1000)
###summary(out)
###par(mfrow=c(2,3))
###plot(out,sim.ci=2);
###plot(out,score=1)
``` |