Learn R Programming

pblm (version 0.1-12)

pb: Specify a Penalised B-Spline Fit in a pblm Formula

Description

Both pb and pbs are adaptations of function pb and ps from the gamlss package, respectively, to specify penalized B-spline.

Usage

pb(x, df = NULL, lambda = NULL, control = pb.control(...), ...)
pb.control(inter = 20, degree = 3, order = 2, quantiles = FALSE, ...) 
pbs(x, df = 3, lambda = NULL, ps.intervals = 20, degree = 3, order = 3)

Value

The function returns the vector x, which includes several attached attributes. While x is directly used in building the model matrix, its attributes are crucial for the backfitting procedure implemented by additive.fit()

Arguments

x

the univariate predictor.

df

the desidered equivalent number of degrees of freedom (trace of the smoother matrix minus two for the constant and linear fit.

lambda

the smoothing parameter.

control

setting the control parameters

ps.intervals

the number of break points in the x-axis.

inter

the number of break points (knots) in the x-axis.

degree

the degree of the piecewise polynomials.

order

the required difference in the vector of coefficients.

quantiles

if TRUE the quantile values of x are used to determine the knots.

...

for extra arguments.

Author

Marco Enea, based on the original versions of the corresponding functions contained in the gamlss package by Mikis Stasinopoulos and Bob Rigby.

Details

Basically, pb is a reduced-functionality version of the original one specified in gamlss with no performance iteration methods (i.e. by method specification) implemented. The only method implemented minimizes the GAIC by internal optim calls.

Examples

Run this code
#NOT RUN 
#Example 1. The Dale's model 
data(ulcer)
m1 <- pblm(fo1=cbind(pain,medication)~1, fo12=~I(operation=="vh"), RC.fo=~Col,
           data=ulcer, weights=freq,  contrasts=list(Col="contr.SAS"))
summary(m1)

# Example 2. An artificial data set: 
set.seed(1234)
da <- expand.grid("Y1"=1:3,"Y2"=1:3,"fat1"=0:9,"fat2"=0:1)
da$x1 <- seq(-5,5,l=180)
da$x2 <- rnorm(180)

da$Freq <- sample(5:30,180,replace=TRUE)

m1 <- pblm(fo1=cbind(Y1,Y2) ~ pbs(x1) + fat2, 
           fo2=~pb(x1) + x2, 
           fo12=~pb(x1) + x2, data=da, weights=Freq)

plot(m1)

Run the code above in your browser using DataLab