isoph: Fit Isotonic Proportional Hazards Model

Description Usage Arguments Details Value Author(s) References Examples

View source: R/01.isoph.R

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.