Learn R Programming

discSurv (version 1.4.2)

devResidShort: Deviance Residuals

Description

Computes the root of the deviance residuals for evaluation of performance in discrete survival analysis.

Usage

devResidShort(dataSet, hazards)

Arguments

dataSet

Original data in long format. Must be of class "data.frame". The correct format can be specified with data preparation, see e. g. dataLong.

hazards

Estimated hazard rates of the data in long format. Discrete hazard rates are probabilities and therefore restricted to the interval [0, 1]

Value

  • Output: List with objects:

    • DevResid: Square root of deviance residuals as numeric vector.

  • Input: A list of given argument input values (saved for reference)

References

Gerhard Tutz and Matthias Schmid, (2016), Modeling discrete time-to-event data, Springer series in statistics, Doi: 10.1007/978-3-319-28158-2

Gerhard Tutz, (2012), Regression for Categorical Data, Cambridge University Press

See Also

adjDevResidShort, predErrDiscShort

Examples

Run this code
# NOT RUN {
library(survival)

# Transform data to long format
heart[, "stop"] <- ceiling(heart[, "stop"])
set.seed(0)
Indizes <- sample(unique(heart$id), 25)
randSample <- heart[unlist(sapply(1:length(Indizes), 
function(x) which(heart$id==Indizes[x]))),]
heartLong <- dataLongTimeDep(dataSet=randSample, 
timeColumn="stop", censColumn="event", idColumn="id", timeAsFactor=FALSE)

# Fit a generalized, additive model and predict hazard rates on data in long format
library(mgcv)
gamFit <- gam(y ~ timeInt + surgery + transplant + s(age), data=heartLong, family="binomial")
hazPreds <- predict(gamFit, type="response")

# Calculate the deviance residuals
devResiduals <- devResidShort (dataSet=heartLong, hazards=hazPreds)$Output$DevResid

# Compare with estimated normal distribution
plot(density(devResiduals), 
main="Empirical density vs estimated normal distribution", 
las=1, ylim=c(0, 0.5))
tempFunc <- function (x) dnorm(x, mean=mean(devResiduals), sd=sd(devResiduals))
curve(tempFunc, xlim=c(-10, 10), add=TRUE, col="red")
# The empirical density seems like a mixture distribution, 
# but is not too far off in with values greater than 3 and less than 1
# }

Run the code above in your browser using DataLab