isoph: Fit Isotonic Proportional Hazards Model In isoSurv: Isotonic Regression on Survival Analysis

Description

Nonparametric partial likelihood estimation of a monotone covariate effect in the proportional hazards model.

Usage

 1 isoph(formula, data, maxiter, eps)

Arguments

 formula a formula object: response ~ iso(covariate1)+covariate2+.... The response must be survival outcome using the Surv function in the survival package. The iso(covariate1,shape="increasing",K="median") is for isotonic estimation of covariate1 with shape="increasing" (or "decreasing") direction and K="median" anchor. data data.frame includes variables named in the formula argument. maxiter maximum number of iteration (default is 10^4). eps stopping convergence criteria (default is 10^-3).

Details

The isoph function estimates ψ and β based on the partial likelihood under the isotonic proportional hazards model, defined as

λ(t|z,w)=λ0(t)exp(ψ(z)+β w),

where λ0 is a baseline hazard function, ψ is an isotonic function, z is a univariate variable, w is a q by 1 dimensional covariate vector and β is a 1 by q dimensional regression parameter. One point has to be fixed with ψ(K)=0, where K is an anchor point. A direction of ψ is defined as monotone increasing or monotone decreasing in z. Pseudo iterative convex minorant algorithm is used to maximize the partial likelihood.

Value

A list of class isoph:

 iso.cov data.frame with z and estimated ψ. beta estimated β. conv algorithm convergence status. iter total number of iterations. Zk anchor satisfying estimated ψ(Zk)=0. See the formular argument above. shape order restriction on ψ. See the formular argument above.

Author(s)

Yunro Chung [aut, cre]

References

Yunro Chung, Anastasia Ivanova, Michael G. Hudgens, Jason P. Fine, Partial likelihood estimation of isotonic proportional hazards models, Biometrika. 2018, 105 (1), 133-148. doi:10.1093/biomet/asx064

Examples

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # test1 test1=data.frame( time= c(2, 5, 1, 7, 9, 5, 3, 6, 8, 9, 7, 4, 5, 2, 8), status=c(0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1), z= c(2, 1, 1, 3, 5, 6, 7, 9, 3, 0, 2, 7, 3, 9, 4) ) isoph.fit1 = isoph(Surv(time, status)~iso(z,shape="inc"),data=test1) plot(isoph.fit1) # test2 test2=data.frame( time= c(2, 5, 1, 7, 9, 5, 3, 6, 8, 9, 7, 4, 5, 2, 8), status=c(0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1), z= c(2, 1, 1, 3, 5, 6, 7, 9, 3, 0, 2, 7, 3, 9, 4), trt= c(1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0) ) isoph.fit2 = isoph(Surv(time, status)~iso(z,shape="inc")+trt, data=test2) plot(isoph.fit2)

isoSurv documentation built on March 23, 2021, 9:07 a.m.