pspline | R Documentation |
Univariate P-spline smoothing with the smoothing parameter selected by leave-one-subject-out cross validation.
pspline(data, argvals.new = NULL, knots = 35, p = 3, m = 2, lambda = NULL, search.length = 100, lower = -20, upper = 20)
data |
a data frame with three arguments:
(1) |
argvals.new |
a vector of observations times for prediction; if NULL, then the same as |
knots |
a vector of interior knots or the number of knots for B-spline basis functions to be used; defaults to 35. |
p |
the degrees of B-splines; defaults to 3. |
m |
the order of differencing penalty; defaults to 2. |
lambda |
the value of the smoothing parameter; defaults to NULL. |
search.length |
the number of equidistant (log scale) smoothing parameters to search; defaults to 100. |
lower, upper |
bounds for log smoothing parameter; defaults are -20 and 20. |
The function is an implementation of the P-spline smoothing in Eilers and Marx (1996). P-splines uses B-splines as basis functions and employs a differencing penalty on the coefficients. Leave-one-subject-out cross validation is used for selecting the smoothing parameter and a fast algorithm is implemented.
fitted.values |
Fitted mean values |
B |
B-spline design matrix |
theta |
Estimated coefficients |
s |
Eigenvalues |
knots |
Knots |
p |
The degrees of B-splines |
m |
The order of differencing penalty |
lambda |
The value of the smoothing parameter |
argvals.new |
A vector of observations times |
mu.new |
Fitted mean values at |
Luo Xiao <lxiao5@ncsu.edu>
Paul Eilers and Brian Marx, Flexible smoothing with B-splines and penalties, Statist. Sci., 11, 89-121, 1996.
Luo Xiao, Cai Li, William Checkley and Ciprian Crainiceanu, Fast covariance estimation for sparse functional data, Stat. Comput., doi: 10.1007/s11222-017-9744-8.
gam
in mgcv
.
## Not run: ## cd4 data require(refund) data(cd4) n <- nrow(cd4) T <- ncol(cd4) id <- rep(1:n,each=T) t <- rep(-18:42,times=n) y <- as.vector(t(cd4)) sel <- which(is.na(y)) ## organize data data <- data.frame(y=log(y[-sel]), argvals = t[-sel], subj = id[-sel]) data <- data[data$y>4.5,] ## smooth fit <- pspline(data) ## plot plot(data$argvals,fit$mu.new,type="p") ## prediction pred <- predict(fit,quantile(data$argvals,c(0.2,0.6))) pred ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.