Learn R Programming

FlexGAM (version 0.7.2)

deviance.flexgam: Deviance of FlexGAM model

Description

Calculating the (predictive) deviance of the model.

Usage

# S3 method for flexgam
deviance(object, newdata=NULL, use_penalty=FALSE, ...)

Arguments

object

Object of class flexgam.

newdata

Data to estimate the (predictive) deviance.

use_penalty

If the deviance should be penalized according to the smoothing penalties.

...

Currently not used

Value

Estimated deviance

Details

Calculates the model deviance of the object for the given data. To get the same value as for object$deviance you need to set use_penalty = TRUE. This is due to the fact that the deviance element of the object is the penalized deviance used for step halving.

References

Spiegel, Elmar, Thomas Kneib and Fabian Otto-Sobotka. Generalized additive models with flexible response functions. Statistics and Computing (2017). https://doi.org/10.1007/s11222-017-9799-6

See Also

flexgam, predict.flexgam

Examples

Run this code
# NOT RUN {
set.seed(1)
n <- 1000
x1 <- runif(n)
x2 <- runif(n)
x3 <- runif(n)
eta_orig <- -1 + 2*sin(6*x1) + exp(x2) + x3
pi_orig <- pgamma(eta_orig, shape=2, rate=sqrt(2))
y <- rbinom(n,size=1,prob=pi_orig)

Data <- data.frame(y,x1,x2,x3)
formula <- y ~ s(x1,k=20,bs="ps") + s(x2,k=20,bs="ps") + x3

# Fix smoothing parameters to save computational time.
control2 <- list("fix_smooth" = TRUE, "quietly" = TRUE, "sm_par_vec" = 
                     c("lambda" = 100, "s(x1)" = 2000, "s(x2)" = 9000))
set.seed(2)
model_2 <- flexgam(formula=formula, data=Data, type="FlexGAM2", 
                   family=binomial(link=logit), control = control2)
(deviance           <- deviance(model_2, newdata=Data))
# }

Run the code above in your browser using DataLab