Learn R Programming

SOP (version 1.0-1)

ad: Adaptive smooth terms in a SOP model formula

Description

Auxiliary function used to define adaptive smooth terms in a sop model formula. The function does not do any fitting but is used as part of a sop() model formula.

Usage

ad(..., nseg = 10, pord = 2, degree = 3, nseg.sp = 5, degree.sp = 3)

Value

The function is interpreted in the formula of a sop model and creates the right framework for fitting the adaptive smoother. List containing the following objects:

vars

name of the covariates involved in the adaptive smooth term.

nseg

the number of segments for the B-spline basis.

pord

the penalty order.

degree

the order of the polynomial for the B-Spline basis for this term.

nseg.sp

the number of segments for the B-spline basis used to `smooth' the smoothing parameters.

degree.sp

the order of the polynomial for the B-spline basis used for smoothing of the smoothing parameters.

dim

The dimension of the smoother - i.e. the number of covariates that it is a function of.

label

labels terms.

Arguments

...

the x-variable (continuous) to be used for adaptive smoothing. Currently, only one dimensional adaptive smoothers are allowed.

nseg

the number of segments for the B-spline basis used to represent the smooth term. The default value is 10.

pord

penalty order. The defauly value is 2 (second order penalty).

degree

the order of the polynomial for the B-spline basis for this term. The default value is 3 (cubic B-splines).

nseg.sp

the number of segments for the B-spline basis used to `smooth' the smoothing parameters. The default value is 5.

degree.sp

the order of the polynomial for the B-spline basis used for smoothing of the smoothing parameters. The default value is 3 (cubic B-splines).

Details

The function ad() can be use to fit an adaptive smooth function of x. An `adaptive' smooth function is one in which the smoothing parameter is allowed to vary over the range of the explanatory variable x. Details can be found in Rodriguez-Alvarez at. al (2019).

References

Rodriguez-Alvarez, M.X., Durban, M., Lee, D. J. and Eilers, P. (2019). On the estimation of variance parameters in non-standard generalised linear mixed models: application to penalised smoothing. Statistics and Computing, 29 (3), 483--500.

See Also

f, rae, sop

Examples

Run this code
library(SOP)
# Simulate the data
set.seed(123)
n <- 1000
x <- runif(n, 0.0001, 1)
doppler.function <- function(x) sin(4 / (x + 0.1)) + 1.5
mu <- doppler.function(x)
sigma <- 0.2
y <- mu + sigma*rnorm(n)
dat <- data.frame(x = x, y = y)

# Fit the models
# With addaptive smoothing
m0 <- sop(formula = y ~ ad(x, nseg = 197, nseg.sp = 17), data = dat, 
         control =  list(trace = FALSE, epsilon = 1e-03))

# Without addaptive smoothing
m1 <- sop(formula = y ~ f(x, nseg = 197), data = dat, 
         control =  list(trace = FALSE, epsilon = 1e-03))         

# Plot results
plot(y ~ x, data = dat)
ox <- order(dat$x)
lines(fitted(m0)[ox] ~ dat$x[ox], col = 2, lwd = 2)
lines(fitted(m1)[ox] ~ dat$x[ox], col = 4, lwd = 2)
legend("topright", c("Theoretical", "Adaptive", "Non Adaptive"), 
    col = c(1,2,4), lty = 1, lwd = 2, bty = "n")	

Run the code above in your browser using DataLab