bcfrailph {bcfrailph}R Documentation

Semi-parametric bivariate correlated frailty model.

Description

Fit a semiparametric Bivariate correlated frailty model with Proportional Hazard structure.

Usage

bcfrailph(
  formula,
  data,
  initfrailp = NULL,
  frailty = c("gamma", "lognormal"),
  weights = NULL,
  control = bcfrailph.control(),
  ...
)

Arguments

formula

A formula object, with the response on the left of a ~ operator, and the terms on the right. The response must be a survival object as returned by the Surv function.

data

A dataframe contain survival time, censor, covariate etc with data in columns.

initfrailp

Initial estimates for the frailty parameters. If not specified, initial frailty variance will be obtained from coxph with univariate frailty model and for correlation c(0.5) will be used.

frailty

A type of frailty distribution to be used in fit. Either gamma or lognormal. The default is gamma.

weights

vector of case weights for gamma model. the default is NULL.

control

Arguments to control bcfrailph fit. The default is bcfrailph.control.

...

further arguments

Value

An object of that contains the following components.

Note

Parameters of Bivariate correlated gamma frailty model was estimated using a modified EM approach given in Kifle et al (2022). Parameters of Bivariate correlated lognormal frailty model is based on the penalized partial likelihood approach by Rippatti and Palmgren (2000).

References

Kifle YG, Chen DG, Haileyesus MT (2022). Multivariate Frailty Models using Survey Weights with Applications to Twins Infant Mortality in Ethiopia. Statistics and Its Interface,106(4), 1\-10.

Rippatti, S. and Palmgren, J (2000). Estimation of multivariate frailty models using penalized partial likelihood. Biometrics, 56: 1016-1022.

See Also

bcfrailph.control,simbcfrailph

Examples

set.seed(4)
simdata<-simbcfrailph(psize=300, cenr= c(0.3),beta=c(2),frailty=c("gamma"),
frailpar=c(0.5,0.5),bhaz=c("weibull"),
bhazpar=list(shape =c(5), scale = c(0.1)),
covartype= c("B"),covarpar=list(fargs=c(1),sargs=c(0.5)))
dataa<-simdata$data

fitbcfrgam=bcfrailph(Surv(time,censor)~ X1+frailty(PID) ,data=dataa,frailty="gamma")
fitbcfrgam


# for lognormal

set.seed(18)
simdata<-simbcfrailph(psize=100, cenr= c(0.2),beta=c(1,-0.7,0.5),
frailty=c("lognormal"),frailpar=c(0.5,-0.25),bhaz=c("exponential"),
bhazpar=list(scale = c(0.1)),covartype= c("N","N","B"),
covarpar=list(fargs=c(0,0,1),sargs=c(1,1,0.5)),comncovar=2)
dataa<-simdata$data

#fit
fitbcfrlogn=bcfrailph(Surv(time,censor)~ X1+X2+X3+frailty(PID) ,data=dataa,frailty="lognormal")
fitbcfrlogn

## one can set the initial parameter for the frailty parameters
fitbcfrailph=bcfrailph(Surv(time,censor)~ X1+frailty(PID),data=dataa,initfrailp = c(0.1,0.5),
frailty="lognormal")
fitbcfrailph

# Not run

#if covariates are not included
fitmoe=try(bcfrailph(Surv(time,censor)~0+frailty(PID),data=dataa,
frailty="lognormal"),silent = TRUE)

fitmoe=try(bcfrailph(Surv(time,censor)~1+frailty(PID),data=dataa),silent = TRUE)

# if control is not specified correctly.
# if one needs to change only max.iter to be 100,

fitmoe=try(bcfrailph(Surv(time,censor)~ X1+frailty(PID),data=dataa,
control=c(max.iter=100)),silent = TRUE)

#the correct way is
fitmoe=bcfrailph(Surv(time,censor)~ X1+frailty(PID),data=dataa,
control=bcfrailph.control(max.iter=100))
fitmoe

#if initial frailty parameters are in the boundary of parameter space
fitmoe=try(bcfrailph(Surv(time,censor)~ X1+frailty(PID),data=dataa,
initfrailp=c(0.2,1)),silent = TRUE)

fitmoe=try(bcfrailph(Surv(time,censor)~ X1+frailty(PID),data=dataa,
initfrailp=c(0,0.1)),silent = TRUE)

#if a frailty distribution other than gamma and lognormal are specified

fitmoe=try(bcfrailph(Surv(time,censor)~ X1,data=dataa,,frailty="exp"),silent = TRUE)

# End Not run



[Package bcfrailph version 0.1.1 Index]