Mqrcm (version 1.0)

plf: Basis of a Piecewise Linear Function

Description

Generates \(b_1(p), b_2(p), \ldots\) such that, for 0 < p < 1, $$\theta_1*b_1(p) + \theta_2*b_2(p) + \ldots$$ is a piecewise linear function with slopes \((\theta_1, \theta_2, \ldots)\).

Usage

plf(p, knots)

Arguments

p

a numeric vector of values between 0 and 1.

knots

a set of internal knots between 0 and 1. It can be NULL for no internal knots.

Value

A matrix with one row for each element of p, and length(knots) + 1 columns. The knots are returned as attr(, "knots"). Any linear combination of the basis matrix is a piecewise linear function where each coefficient represents the slope in the corresponding sub-interval (see ‘Examples’).

Details

This function permits computing a piecewise linear function on the unit interval. A different slope holds between each pair of knots, and the function is continuous at the knots.

See Also

slp, for shifted Legendre polynomials.

Examples

Run this code
# NOT RUN {
  p <- seq(0,1, 0.1)

  a1 <- plf(p, knots = NULL) # returns p

  a2 <- plf(p, knots = c(0.2,0.7))
  plot(p, 3 + 1*a2[,1] - 1*a2[,2] + 2*a2[,3], type = "l") 
    # intercept = 3; slopes = (1,-1,2)
# }

Run the code above in your browser using DataCamp Workspace