Package 'isoSurv'

Title: Isotonic Regression on Survival Analysis
Description: Nonparametric estimation on survival analysis under order-restrictions.
Authors: Yunro Chung [aut, cre]
Maintainer: Yunro Chung <[email protected]>
License: GPL (>= 2)
Version: 0.3.0
Built: 2025-01-24 02:39:51 UTC
Source: https://github.com/cran/isoSurv

Help Index


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 <[email protected]>

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(zz,shape="increasing")+x1+x2+...+xpx_1+x_2+...+x_p. The response must be right-censored survival outcome using the Surv function in the survival package. The iso function attributes the covariate zz' name, shape and anchor point.

bshape

direnction of the baseline hazard function (bshapebshape="increasing" or "decreasing").

data

data.frame includes variables named in the formula argument.

maxiter

maximum number of iteration (default is 10410^4).

eps

stopping convergence criteria (default is 10310^-3).

Details

The disoph function computes (λ0,ψ,β\lambda0, \psi, \beta) in the isotonic proportional hazards model, defined as

λ(tz,x)=λ0(t)exp(ψ(z)+β1x1+β2x2+...+βpxp),\lambda(t|z,x)=\lambda0(t)exp(\psi(z)+\beta_1x_1+\beta_2x_2+...+\beta_px_p),

based on the full likelihood, where λ0\lambda0 is a monotone increasing (or decreasing) baseline hazard function, ψ\psi is a monotone increasing (or decreasing) covariate effect function, zz is a univariate variable, (x1,x2,...,xpx_1,x_2,...,x_p) is a set of covariates, and β=(β1,β2,...,βp\beta=(\beta_1,\beta_2,...,\beta_p) is a set of corresponding regression parameters. It allows to estimate (λ0,β)(\lambda0, \beta) only if iso(zz,shape="increasing") is removed in the formula object. Likewise, It allows to estimate (λ0,ψ)(\lambda0, \psi) only if xx is removed in the formula object. Using the nonparametric maximum likelihood approaches, estimated λ0\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 λ0\lambda0, resulting in more efficient estimators especially for a finate sampe size.

For the anchor constraint, one point has to be fixed with ψ(K)=0\psi(K)=0 to solve the identifiability problem, e.g. λ0(t)exp(ψ(z))=(λ0(t)exp(c))(exp(ψ(z)+c))\lambda0(t)exp(\psi(z))=(\lambda0(t)exp(-c))(exp(\psi(z)+c)) for any constant cc. KK is called an anchor point. By default, we set KK as a median of values of zz'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 tt and estimated λ0\lambda0(t).

iso.cov

data.frame with zz and estimated ψ\psi(z).

beta

estimated β1,β2,...,βp\beta_1,\beta_2,...,\beta_p.

conv

algorithm convergence status.

iter

total number of iterations.

Zk

anchor satisfying estimated ψ(Zk)\psi(Zk)=0.

shape.bh

order restriction on λ0\lambda0.

shape.cov

order restriction on ψ\psi.

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 zz (shapeshape="increasing" or "decreasing").

Details

Internal function. The iso function attributes the covariate zz for its name, shape , anchor point and class, where the anchor point is set to a median of zz's, and class is set to "iso covariate"

Value

The value zz 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(zz,shape="increasing")+x1+x2+...+xpx_1+x_2+...+x_p. The response must be right-censored survival outcome using the Surv function in the survival package. The iso function attributes the covariate zz' name, shape and anchor point.

data

data.frame includes variables named in the formula argument.

maxiter

maximum number of iteration (default is 10410^4).

eps

stopping convergence criteria (default is 10310^-3).

Details

The isoph function estimates (ψ\psi, β\beta) in the isotonic proportional hazards model, defined as

λ(tz,x)=λ0(t)exp(ψ(z)+β1x1+β2x2+...+βpxp),\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 λ0\lambda0, where ψ\psi is a monotone increasing (or decreasing) covariate effect function, zz is a univariate variable, x=(x1,x2,...,xp)x=(x_1,x_2,...,x_p) is a set of covariates, and β=(β1,β2,...,βp)\beta=(\beta_1,\beta_2,...,\beta_p) is a set of corresponding regression parameters. It allows to estimate ψ\psi only if xx 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 ψ(K)=0\psi(K)=0 to solve the identifiability problem, e.g. λ0(t)exp(ψ(z))=(λ0(t)exp(c))(exp(ψ(z)+c))\lambda0(t)exp(\psi(z))=(\lambda0(t)exp(-c))(exp(\psi(z)+c)) for any constant cc. KK is called an anchor point. By default, we set KK as a median of values of zz'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 zz and estimated ψ\psi.

beta

estimated β1,β2,...,βp\beta_1,\beta_2,...,\beta_p.

conv

algorithm convergence status.

iter

total number of iterations.

Zk

anchor point satisfying ψ(Zk)\psi(Zk)=0.

shape

Order-restriction imposed on ψ\psi.

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)