isoph {isoSurv} | R Documentation |
Fit Isotonic Proportional Hazards Model
Description
Nonparametric estimation of a monotone covariate effect under the proportional hazards model.
Usage
isoph(formula, data, maxiter, eps)
Arguments
formula |
a formula object: response ~ iso( |
data |
data.frame includes variables named in the formula argument. |
maxiter |
maximum number of iteration (default is |
eps |
stopping convergence criteria (default is |
Details
The isoph function estimates (\psi
, \beta
) in the isotonic proportional hazards model, defined as
\lambda(t|z,x)=\lambda0(t)exp(\psi(z)+\beta_1x_1+\beta_2x_2+...+\beta_px_p),
based on the partial likelihood with unspecified baseline hazard function \lambda0
, where \psi
is a monotone increasing (or decreasing) covariate effect function, z
is a univariate variable, x=(x_1,x_2,...,x_p)
is a set of covariates, and \beta=(\beta_1,\beta_2,...,\beta_p)
is a set of corresponding regression parameters. It allows to estimate \psi
only if x
is removed in the formula object. Using the nonparametric maximum likelihood approaches, estimated \psi
is a right continuous increasing (or left continuos decreasing) step function.
For the anchor constraint, one point has to be fixed with \psi(K)=0
to solve the identifiability problem, e.g. \lambda0(t)exp(\psi(z))=(\lambda0(t)exp(-c))(exp(\psi(z)+c))
for any constant c
. K
is called an anchor point. By default, we set K
as a median of values of z
's. The choice of anchor points are not important because, for example, different anchor points results in the same hazard ratios.
Value
A list of class isoph:
iso.cov |
data.frame with |
beta |
estimated |
conv |
algorithm convergence status. |
iter |
total number of iterations. |
Zk |
anchor point satisfying |
shape |
Order-restriction imposed on |
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
# 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)
print(isoph.fit1)
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)
print(isoph.fit2)
plot(isoph.fit2)