deviance.flexgam {FlexGAM}R Documentation

Deviance of FlexGAM model

Description

Calculating the (predictive) deviance of the model.

Usage

## S3 method for class '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

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.

Value

Estimated deviance

Note

To get numeric stability the fitted values are truncated (min_mu_k) to achieve numeric stability.

Author(s)

Elmar Spiegel

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

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))

[Package FlexGAM version 0.7.2 Index]