NKnots: AIC and BIC selection of number of spline knots

Description Usage Arguments Value Author(s) Examples

Description

Calculates AIC and BIC for the selection of knots in a spline over values (potentially including polynomials) up to a user-defined maximum.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
NKnots(
  form,
  var,
  data,
  degree = 3,
  min.knots = 1,
  max.knots = 10,
  includePoly = FALSE,
  plot = FALSE,
  criterion = c("AIC", "BIC", "CV"),
  cvk = 10,
  cviter = 10
)

Arguments

form

A formula detailing the model for which smoothing is to be evaluated.

var

A character string identifying the variable for which smoothing is to be evaluated.

data

Data frame providing values of all variables in form.

degree

Degree of polynomial in B-spline basis functions.

min.knots

Minimum number of internal B-spline knots to be evaluated.

max.knots

Maximum number of internal B-spline knots to be evaluated.

includePoly

Include linear and polynomial models up to, and including degree-th order polynomials.

plot

Logical indicating whether a plot should be returned.

criterion

Statistical criterion to minimize in order to find the best number of knots - AIC, BIC or Cross-validation.

cvk

Number of groups for cross-validation

cviter

Number of iterations of cross-validation to average over. 10 is the default but in real-world applications, this should be somewhere around 200.

Value

A plot, if plot=TRUE, otherwise a data frame with the degrees of freedom and corresponding fit measure.

Author(s)

Dave Armstrong

Examples

1
2
data(Prestige, package="carData")
NKnots(prestige ~ education + type, var="income", data=na.omit(Prestige), plot=FALSE)

DAMisc documentation built on Jan. 12, 2022, 1:07 a.m.