# plot.ps2dsignal: Plotting function for 'ps2DSignal' In JOPS: Practical Smoothing with P-Splines

 plot.ps2dsignal R Documentation

## Plotting function for `ps2DSignal`

### Description

Plotting function for 2D P-spline signal regression coefficients (using `ps2DSignal` with `class ps2dsignal`). Although standard error surface bands can be comuputed they are intentially left out as they are not interpretable, and there is generally little data to steer such a high-dimensional parameterization.

### Usage

``````## S3 method for class 'ps2dsignal'
plot(x, ..., xlab = " ", ylab = " ", Resol = 200)
``````

### Arguments

 `x` the P-spline object, usually from `ps2DSignal`. `...` other parameters. `xlab` label for the x-axis, e.g. "my x" (quotes required). `ylab` label for the y-axis, e.g. "my y" (quotes required). `Resol` Resolution of bgrid (default `Resol = 200`).

### Value

 `Plot` a plot of the 2D P-spline signal coefficent surface.

### Author(s)

Paul Eilers and Brian Marx

### References

Marx, B.D. and Eilers, P.H.C. (2005). Multidimensional penalized signal regression, Technometrics, 47: 13-22.

Eilers, P.H.C. and Marx, B.D. (2021). Practical Smoothing, The Joys of P-splines. Cambridge University Press.

### Examples

``````library(fields)
library(JOPS)

# Get the data
x0 <- Sugar\$X
x0 <- x0 - apply(x0, 1, mean) # center Signal
y <- as.vector(Sugar\$y[, 3]) # Response is Ash

# Inputs for two-dimensional signal regression
nseg <- c(7, 37)
pord <- c(3, 3)
min_ <- c(230, 275)
max_ <- c(340, 560)
M1_index <- rev(c(340, 325, 305, 290, 255, 240, 230))
M2_index <- seq(from = 275, to = 560, by = .5)
p1 <- length(M1_index)
p2 <- length(M2_index)

# Fit optimal model based on LOOCV
opt_lam <- c(8858.6679, 428.1332) # Found via svcm
Pars_opt <- rbind(
c(min_[1], max_[1], nseg[1], 3, opt_lam[1], pord[1]),
c(min_[2], max_[2], nseg[2], 3, opt_lam[2], pord[2]))

fit <- ps2DSignal(y, x0, p1, p2, "unfolded", M1_index, M2_index,
Pars_opt, int = FALSE, ridge_adj = 1e-4 )

# Plotting coefficient image
plot(fit)
``````

JOPS documentation built on Sept. 8, 2023, 5:42 p.m.