Pseudo Value Regression for the Extra Length-of-Stay
Pseudo Value Regression for the Extra Length-of-Stay
closPseudo(data, state.names, tra, cens.name, s = 0, formula, na.action, aw = FALSE, ratio = FALSE, ncores = 1, trick_ties = FALSE)
data |
data.frame of the form data.frame(id,from,to,time) or (id,from,to,entry,exit)
|
state.names |
A vector of characters giving the states names. |
tra |
A quadratic matrix of logical values describing the possible transitions within the multistate model. |
cens.name |
A character giving the code for censored
observations in the column 'to' of |
s |
Starting value for computing the transition probabilities. |
formula |
A formula with the covariates at the right of a
|
na.action |
A function which indicates what should happen when the data contain 'NA's. The default is set by the 'na.action' setting of 'options', and is 'na.fail' if that is unset. The 'factory-fresh' default is 'na.omit'. |
aw |
Logical. Whether to compute the expected change of LOS using
alternative weighting. Default is |
ratio |
Logical. Compute the ratio of the expected length-of-stay
given instermediate event status instead of a difference. Default
value is |
ncores |
Number of cores used if doing parallel computation using the parallel package |
trick_ties |
If |
The function calculates the pseudo-observations for the extra length-of-stay for each individual. These pseudo-observations can then be used to fit a direct regression model using generalized estimating equation (e.g., package geepack).
Computation of the pseudo-observations can be parallelised using the
mclapply
function of the parallel package. See argument
ncores
.
Recent versions of R have changed the data.frame
function,
where the default for the stringsAsFactors
argument from TRUE
to FALSE
. etm
currently
depends on the states being factors, so that the user should use
data.frame(..., stringsAsFactors=TRUE)
.
An object of class closPseudo
with the following components:
pseudoData |
a data.frame containing |
theta |
Estimates of excess LoS in the whole sample |
aw |
like in the function call |
call |
Function call |
Arthur Allignol arthur.allignol@gmail.com
Andersen, P.K, Klein, J.P, Rosthoj, S. (2003). Generalised linear models for correlated pseudo-observations, with applications to multi-state models. Biometrika, 90(1):15–27.
if(require("kmi", quietly = TRUE)) { ## data in kmi package data(icu.pneu) my.icu.pneu <- icu.pneu my.icu.pneu <- my.icu.pneu[order(my.icu.pneu$id, my.icu.pneu$start), ] masque <- diff(my.icu.pneu$id) my.icu.pneu$from <- 0 my.icu.pneu$from[c(1, masque) == 0] <- 1 my.icu.pneu$to2 <- my.icu.pneu$event my.icu.pneu$to2[my.icu.pneu$status == 0] <- "cens" my.icu.pneu$to2[c(masque, 1) == 0] <- 1 my.icu.pneu$to <- ifelse(my.icu.pneu$to2 %in% c(2, 3), 2, my.icu.pneu$to2) my.icu.pneu <- my.icu.pneu[, c("id", "start", "stop", "from", "to", "to2", "age", "sex")] names(my.icu.pneu)[c(2, 3)] <- c("entry", "exit") ## computation of the pseudo-observations ## Not run: ps.icu.pneu <- closPseudo(my.icu.pneu, c("0", "1", "2"), tra_ill(), "cens", formula = ~ sex + age) ## regression model using geepack require(geepack) fit <- geeglm(ps.e.phi ~ sex + age, id = id, data = ps.icu.pneu$pseudoData, family = gaussian) summary(fit) ## End(Not run) } else { print("This example requires the kmi package") }
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.