| pseudoPoisPHMM {phmm} | R Documentation |
Function for generating a pseudo Poisson data set which can be used to fit a PHMM using GLMM software. This follows the mixed-model extension Whitehead (1980), who described how to fit Cox (fixed effects) models with GLM software.
pseudoPoisPHMM(x)
x |
an object of class phmm. |
A data.frame with columns:
time |
the event time; |
N |
the number at risk at time time; |
m |
the number at risk (in the same cluster with same covariates) at time time; |
cluster |
the integer cluster indicator; |
N |
the number at risk at time time; |
fixed effects covariates |
denoted z1, z2, etc.; |
random effects covariates |
denoted w1, w2, etc.; |
linear.predictors |
the linear predictors from the phmm fit (excluding the cumulative hazard estimates. |
Whitehead, J. (1980). Fitting Cox's Regression Model to Survival Data using GLIM. Journal of the Royal Statistical Society. Series C, Applied statistics, 29(3). 268-.
## Not run:
N <- 100
B <- 100
n <- 50
nclust <- 5
clusters <- rep(1:nclust,each=n/nclust)
beta0 <- c(1,2)
set.seed(13)
#generate phmm data set
Z <-cbind(Z1=sample(0:1,n,replace=TRUE),
Z2=sample(0:1,n,replace=TRUE),
Z3=sample(0:1,n,replace=TRUE))
b <- cbind(rep(rnorm(nclust), each=n/nclust),
rep(rnorm(nclust), each=n/nclust))
Wb <- matrix(0,n,2)
for( j in 1:2) Wb[,j] <- Z[,j]*b[,j]
Wb <- apply(Wb,1,sum)
T <- -log(runif(n,0,1))*exp(-Z[,c('Z1','Z2')]%*%beta0-Wb)
C <- runif(n,0,1)
time <- ifelse(T<C,T,C)
event <- ifelse(T<=C,1,0)
mean(event)
phmmdata <- data.frame(Z)
phmmdata$cluster <- clusters
phmmdata$time <- time
phmmdata$event <- event
fit.phmm <- phmm(Surv(time, event)~Z1+Z2+cluster(cluster),
~-1+Z1+Z2, phmmdata, Gbs = 100, Gbsvar = 1000, VARSTART = 1,
NINIT = 10, MAXSTEP = 100, CONVERG=90)
# Same data can be fit with lmer,
# though the correlation structures are different.
poisphmmdata <- pseudoPoisPHMM(fit.phmm)
library(lme4)
fit.lmer <- lmer(m~-1+as.factor(time)+z1+z2+
(-1+w1+w2|cluster)+offset(log(N)),
poisphmmdata, family=poisson)
fixef(fit.lmer)[c("z1","z2")]
fit.phmm$coef
VarCorr(fit.lmer)$cluster
fit.phmm$Sigma
logLik(fit.lmer)
fit.phmm$loglik
traceHat(fit.phmm)
## End(Not run)