bs package:splines R Documentation _B-_S_p_l_i_n_e _B_a_s_i_s _f_o_r _P_o_l_y_n_o_m_i_a_l _S_p_l_i_n_e_s _D_e_s_c_r_i_p_t_i_o_n: Generate the B-spline basis matrix for a polynomial spline. _U_s_a_g_e: bs(x, df = NULL, knots = NULL, degree = 3, intercept = FALSE, Boundary.knots = range(x)) _A_r_g_u_m_e_n_t_s: x: the predictor variable. Missing values are allowed. df: degrees of freedom; one can specify 'df' rather than 'knots'; 'bs()' then chooses 'df-degree-1' knots at suitable quantiles of 'x' (which will ignore missing values). knots: the _internal_ breakpoints that define the spline. The default is 'NULL', which results in a basis for ordinary polynomial regression. Typical values are the mean or median for one knot, quantiles for more knots. See also 'Boundary.knots'. degree: degree of the piecewise polynomial-default is 3 for cubic splines. intercept: if 'TRUE', an intercept is included in the basis; default is 'FALSE'. Boundary.knots: boundary points at which to anchor the B-spline basis (default the range of the data). If both 'knots' and 'Boundary.knots' are supplied, the basis parameters do not depend on 'x'. Data can extend beyond 'Boundary.knots'. _V_a_l_u_e: A matrix of dimension 'length(x) * df', where either 'df' was supplied or if 'knots' were supplied, 'df = length(knots) + 3 + intercept'. Attributes are returned that correspond to the arguments to 'bs', and explicitly give the 'knots', 'Boundary.knots' etc for use by 'predict.bs()'. 'bs()' is based on the function 'spline.des()'. It generates a basis matrix for representing the family of piecewise polynomials with the specified interior knots and degree, evaluated at the values of 'x'. A primary use is in modeling formulas to directly specify a piecewise polynomial term in a model. _R_e_f_e_r_e_n_c_e_s: Hastie, T. J. (1992) Generalized additive models. Chapter 7 of _Statistical Models in S_ eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole. _S_e_e _A_l_s_o: 'ns', 'poly', 'smooth.spline', 'predict.bs', 'SafePrediction' _E_x_a_m_p_l_e_s: require(stats); require(graphics) bs(women$height, df = 5) summary(fm1 <- lm(weight ~ bs(height, df = 5), data = women)) ## example of safe prediction plot(women, xlab = "Height (in)", ylab = "Weight (lb)") ht <- seq(57, 73, length.out = 200) lines(ht, predict(fm1, data.frame(height=ht))) ## Not run: ## Consistency: x <- c(1:3,5:6) stopifnot(identical(bs(x), bs(x, df = 3)), !is.null(kk <- attr(bs(x), "knots")),# not true till 1.5.1 length(kk) == 0) ## End(Not run)