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 (,
) in the isotonic proportional hazards model, defined as
based on the partial likelihood with unspecified baseline hazard function , where
is a monotone increasing (or decreasing) covariate effect function,
is a univariate variable,
is a set of covariates, and
is a set of corresponding regression parameters. It allows to estimate
only if
is removed in the formula object. Using the nonparametric maximum likelihood approaches, estimated
is a right continuous increasing (or left continuos decreasing) step function.
For the anchor constraint, one point has to be fixed with to solve the identifiability problem, e.g.
for any constant
.
is called an anchor point. By default, we set
as a median of values of
'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)