GORMC: Fitting the GORMC model with interval censored data.

Description Usage Arguments Details Value Note References Examples

View source: R/GORMC.R

Description

The Generalized Odds Rate Mixture Cure model is fitted for interval censored survival data. The EM algorithm facilitated by a gamma-poisson data augmentation is applied for estimating the coefficients in both the cure rate part and the survival part. The covariance matrix has closed forms based on the Louis method.

Usage

1
2
GORMC(survfun = formula(data), curefun = formula(data), data = parent.frame(), 
r = 0, n.int = 5, order = 3, max.iter = 1000, cov.rate = 0.001)

Arguments

survfun

A formula for the survival part in the GORMC model, defined using the Surv function and type=“interval2".

curefun

The formula of predictors of the cure rate part in the GORMC model.

data

The interval censored sorvival data, including the left and right end points of the time intervals and the covariates for the cure rate part and the survival part. If a subject is left(right) censored, the left(right) end point of the subject should be defined as “NA", see example.

r

The transformation parameter in the GORMC model, should be greater than or equal to 0. r=0 refers to the PHMC model and r=1 refers to the POMC model. The default is 0.

n.int

Number of interior knots of the splines. Default is 5.

order

Order of the spline basis functions. Default is 3, i.e. the cubic splines.

max.iter

The maximum number of interations for the EM algorithm. Default is 1000.

cov.rate

The bound for convergence of the algorithm, which defined as the difference between the log-likelihood values of two consecutive iterations smaller than this value. Default is 0.001.

Details

The formula defined for “survfun" is based on the Surv() function, where the left and right end points of the time interval are included and the type is equal to “interval2". The left(right) end points of left(right) censored individuals should be defined as “NA" in the data frame before running the function.\ The transformation parameter r is a nonnegative number corresponding to a specific model in the GORMC family of models. Special cases include the PHMC model(r=0) and the POMC model(r=1). Other positive numbers can also be specified. The grid search method is suggested to find the best model in practice. That is, try a sequence of r values and choose the one with the greatest log-likelihood value.

Value

ParEst

A list includes the estimated coefficients (Eta,Beta,gl), the whole hessian matrix (Hessian), AIC, and the log-likelihood value(loglik).

ParVcov

The estimated covariance matrix of the coefficients Eta and Beta.

Note

The estimated hessian matrix can be very large and sometimes not invertable. In which case, we try the QR decomposition, g-inverse or even numerical methods to get the covariance matrix. Different values of hess in the ParVcov indicating the different cases. hess=0:the hessian matrix is invertable; hess=1:the QR decomposition is applied to solve the hessian matrix; hess=2:the g-inverce is applied to the hessian matrix; hess=3:the hessian matrix is obtained from numerical methods. The variance estimates may be unreliable for the cases when hess>0.

References

Zhou, J., Zhang, J. and Lu, W. (2017+). Computationally Efficient Estimation for the Generalized Odds Rate Mixture Cure Model with Interval Censored Data.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
data(Hemophilia)
head(Hemophilia)
# Set Left/Right Interval End Points as NA
Hemophilia$L[Hemophilia$d1==1]<-Hemophilia$R[Hemophilia$d3==1]<-NA

# Fit PHMC Model (r=0)
fit<-GORMC(survfun=Surv(L,R)~Low+Medium+High,curefun=~Low+Medium+High,
data=Hemophilia,r=0)
summary(fit)

# Fit POMC Model (r=1)
# fit<-GORMC(survfun=Surv(L,R)~Low+Medium+High,curefun=~Low+Medium+High,
# data=Hemophilia,r=1)
# summary(fit)

# Predict Cure Rate and Survival Curve for a New Individual
# Specify coveriate vectors for new.z and new.x
pred1<-predict(fit,new.z=c(1,0,0,0),new.x=c(0,0,0))
pred2<-predict(fit,new.z=c(1,1,0,0),new.x=c(1,0,0))
pred3<-predict(fit,new.z=c(1,0,1,0),new.x=c(0,1,0))
pred4<-predict(fit,new.z=c(1,0,0,1),new.x=c(0,0,1))

# Obtain Cure Rates
pred1$CureRate
pred2$CureRate
pred3$CureRate
pred4$CureRate

# Plot the Survival Curves
plot(pred1,xlab="Time",ylab="Survival Probability",ylim=c(0,1))
lines(pred2$Survival,col=2)
lines(pred3$Survival,col=3)
lines(pred4$Survival,col=4)
legend(0,0.3,c("None","Low","Medium","High"),lty=1,col=1:4)

# Not run: Grid Search r
# rr<-seq(0,2,0.2)
# logl<-numeric()
# for(i in 1:length(rr)){
# fit<-GORMC(survfun=Surv(L,R)~Low+Medium+High,curefun=~Low+Medium+High,
# data=Hemophilia,r=rr[i])
# logl[i]<-fit$ParEst$loglik
# }
# plot(rr,logl,type="l",xlab="r",ylab="Log-likelihood")

Example output

Loading required package: survival
Loading required package: ICsurv
Loading required package: pracma
Loading required package: MASS
  d1 d2 d3  L  R Low Medium High
1  0  1  0  7 20   1      0    0
2  0  1  0  9 12   0      0    1
3  0  1  0  9 20   1      0    0
4  1  0  0  0 25   1      0    0
5  0  0  1 57  0   1      0    0
6  0  1  0 23 26   1      0    0
Call:
GORMC(survfun = Surv(L, R) ~ Low + Medium + High, curefun = ~Low + 
    Medium + High, data = Hemophilia, r = 0)

               Estimate   StdErr t.value   p.value    
INC: Intercept -1.95090  0.19817 -9.8447 < 2.2e-16 ***
INC: Low        2.19779  0.26490  8.2966 < 2.2e-16 ***
INC: Medium     4.38760  0.41804 10.4956 < 2.2e-16 ***
INC: High       5.11497  0.62184  8.2255 < 2.2e-16 ***
LAT: Low        0.56515  0.28102  2.0111   0.04432 *  
LAT: Medium     1.15620  0.27302  4.2349 2.286e-05 ***
LAT: High       1.59111  0.29423  5.4077 6.385e-08 ***
---
Signif. codes:  0***0.001**0.01*0.05.’ 0.1 ‘ ’ 1
[1] "Loglik= -514.49"
[1] 0.8755449
[1] 0.4385904
[1] 0.08041704
[1] 0.04054055

GORCure documentation built on May 2, 2019, 11:27 a.m.