View source: R/binomial.regression.R
binreg | R Documentation |
Simple version of comp.risk function of timereg for just one time-point thus fitting the model
P(T \leq t, \epsilon=1 | X ) = expit( X^T beta)
binreg(
formula,
data,
cause = 1,
time = NULL,
beta = NULL,
offset = NULL,
weights = NULL,
cens.weights = NULL,
cens.model = ~+1,
se = TRUE,
kaplan.meier = TRUE,
cens.code = 0,
no.opt = FALSE,
method = "nr",
augmentation = NULL,
...
)
formula |
formula with outcome (see |
data |
data frame |
cause |
cause of interest (numeric variable) |
time |
time of interest |
beta |
starting values |
offset |
offsets for partial likelihood |
weights |
for score equations |
cens.weights |
censoring weights |
cens.model |
only stratified cox model without covariates |
se |
to compute se's based on IPCW |
kaplan.meier |
uses Kaplan-Meier for IPCW in contrast to exp(-Baseline) |
cens.code |
gives censoring code |
no.opt |
to not optimize |
method |
for optimization |
augmentation |
to augment binomial regression |
... |
Additional arguments to lower level funtions |
Based on binomial regresion IPCW response estimating equation:
X ( \Delta I(T \leq t, \epsilon=1 )/G_c(T_i-) - expit( X^T beta)) = 0
for IPCW adjusted responses.
logitIPCW instead considers
X I(min(T_i,t) < G_i)/G_c(min(T_i ,t)) ( I(T \leq t, \epsilon=1 ) - expit( X^T beta)) = 0
a standard logistic regression with weights that adjust for IPCW.
variance is based on
\sum w_i^2
also with IPCW adjustment, and naive.var is variance under known censoring model.
Censoring model may depend on strata.
Thomas Scheike
data(bmt)
# logistic regresion with IPCW binomial regression
out <- binreg(Event(time,cause)~tcell+platelet,bmt,time=50)
summary(out)
predict(out,data.frame(tcell=c(0,1),platelet=c(1,1)),se=TRUE)
outs <- binreg(Event(time,cause)~tcell+platelet,bmt,time=50,cens.model=~strata(tcell,platelet))
summary(outs)
## glm with IPCW weights
outl <- logitIPCW(Event(time,cause)~tcell+platelet,bmt,time=50)
summary(outl)
##########################################
### risk-ratio of different causes #######
##########################################
data(bmt)
bmt$id <- 1:nrow(bmt)
bmt$status <- bmt$cause
bmt$strata <- 1
bmtdob <- bmt
bmtdob$strata <-2
bmtdob <- dtransform(bmtdob,status=1,cause==2)
bmtdob <- dtransform(bmtdob,status=2,cause==1)
###
bmtdob <- rbind(bmt,bmtdob)
dtable(bmtdob,cause+status~strata)
cif1 <- cif(Event(time,cause)~+1,bmt,cause=1)
cif2 <- cif(Event(time,cause)~+1,bmt,cause=2)
bplot(cif1)
bplot(cif2,add=TRUE,col=2)
cifs1 <- binreg(Event(time,cause)~tcell+platelet+age,bmt,cause=1,time=50)
cifs2 <- binreg(Event(time,cause)~tcell+platelet+age,bmt,cause=2,time=50)
summary(cifs1)
summary(cifs2)
cifdob <- binreg(Event(time,status)~-1+factor(strata)+
tcell*factor(strata)+platelet*factor(strata)+age*factor(strata)
+cluster(id),bmtdob,cause=1,time=50,cens.model=~strata(strata)+cluster(id))
summary(cifdob)
riskratio <- function(p) {
Z <- rbind(c(1,0,1,1,0,0,0,0), c(0,1,1,1,0,1,1,0))
lp <- c(Z %*% p)
p <- lava::expit(lp)
return(p[1]/p[2])
}
lava::estimate(cifdob,f=riskratio)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.