Type: | Package |
Title: | Isotonic Regression on Survival Analysis |
Version: | 0.3.0 |
Date: | 2023-9-1 |
Description: | Nonparametric estimation on survival analysis under order-restrictions. |
Depends: | R (≥ 3.6.0), Iso, survival, stats, graphics |
License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
Encoding: | UTF-8 |
NeedsCompilation: | no |
Packaged: | 2023-09-02 06:09:36 UTC; ychung36 |
Author: | Yunro Chung |
Maintainer: | Yunro Chung <yunro.chung@asu.edu> |
Repository: | CRAN |
Date/Publication: | 2023-09-02 06:30:06 UTC |
Isotonic Regression on Survival Analysis
Description
Nonparametric estimation on survival analysis under order restrictions
Details
Package: | isoph |
Type: | Package |
Version: | 0.3.0 |
Date: | 2023-9-1 |
License: | GPL (>= 2) |
Author(s)
Yunro Chung [aut,cre] Maintainer: Yunro Chung <yunro.chung@asu.edu>
References
Yunro Chung, Anastasia Ivanova, Michael G. Hudgens, Jason P. Fine (2018), Partial likelihood estimation of isotonic proportional hazards models, Biometrika, 105(1), 133-148. doi:10.1093/biomet/asx064
Fit Double Isotonic Proportional Hazards Model
Description
Nonparametric estimation of monotone baseline hazard and monotone covariate effect functions in the proportional hazards model.
Usage
disoph(formula, bshape, data, maxiter, eps)
Arguments
formula |
formula object: response ~ iso( |
bshape |
direnction of the baseline hazard function ( |
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 disoph function computes (\lambda0, \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 full likelihood, where \lambda0
is a monotone increasing (or decreasing) baseline hazard function, \psi
is a monotone increasing (or decreasing) covariate effect function, z
is a univariate variable, (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 (\lambda0, \beta)
only if iso(z
,shape="increasing") is removed in the formula object. Likewise, It allows to estimate (\lambda0, \psi)
only if x
is removed in the formula object. Using the nonparametric maximum likelihood approaches, estimated \lambda0
and \psi
are right continuous increasing (or left continuos decreasing) step functions. Compared to the standard partial likelihood approach, the full likelihood approach in the disoph function additionally use shape-information on \lambda0
, resulting in more efficient estimators especially for a finate sampe size.
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 fisoph:
iso.bh |
data.frame with |
iso.cov |
data.frame with |
beta |
estimated |
conv |
algorithm convergence status. |
iter |
total number of iterations. |
Zk |
anchor satisfying estimated |
shape.bh |
order restriction on |
shape.cov |
order restriction on |
Author(s)
Yunro Chung [auth, cre]
References
Yunro Chung, Double Isotonic Proportional Hazards Models with Applications to Dose-Finding Studies. In preparation.
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)
)
disoph.fit1=disoph(Surv(time, status)~iso(z,shape="inc"),bshape="inc",data=test1)
print(disoph.fit1)
plot(disoph.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, 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),
trt= c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0),
x= c(1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6)
)
disoph.fit2=disoph(Surv(time, status)~iso(z,shape="inc")+trt+x,bshape="inc",data=test2)
print(disoph.fit2)
plot(disoph.fit2)
Attributions of isotonic covariate effect
Description
attributes the covariate with respect to the name, direction, anchor point, and class.
Usage
iso(z, shape)
Arguments
z |
a univariate covariate. |
shape |
a direction of |
Details
Internal function. The iso function attributes the covariate z
for its name, shape , anchor point and class, where the anchor point is set to a median of z
's, and class is set to "iso covariate"
Value
The value z
with attribution of its name, shape and median anchor point.
Author(s)
Yunro Chung [cre]
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)