# model.matrix: Construct Design Matrix for Fit Model In npreg: Nonparametric Regression via Smoothing Splines

 model.matrix R Documentation

## Construct Design Matrix for Fit Model

### Description

`model.matrix` returns the design (or model) matrix used by the input `object` to produce the fitted values (for objects of class `ss` or `sm`) or the linear predictors (for objects of class `gsm`).

### Usage

```## S3 method for class 'ss'
model.matrix(object, ...)

## S3 method for class 'sm'
model.matrix(object, ...)

## S3 method for class 'gsm'
model.matrix(object, ...)
```

### Arguments

 `object` an object of class `ss`, `sm`, or `gsm` `...` additional arguments (currently ignored)

### Details

For `ss` objects, the `basis.poly` function is used to construct the design matrix.

For `sm` objects, the `predict.sm` function with option `design = TRUE` is used to construct the design matrix.

For `gsm` objects, the `predict.gsm` function with option `design = TRUE` is used to construct the design matrix.

### Value

The design matrix that is post-multiplied by the coefficients to produce the fitted values (or linear predictors).

### Author(s)

Nathaniel E. Helwig <helwig@umn.edu>

### References

Chambers, J. M. (1992) Data for models. Chapter 3 of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.

Helwig, N. E. (2020). Multiple and Generalized Nonparametric Regression. In P. Atkinson, S. Delamont, A. Cernat, J. W. Sakshaug, & R. A. Williams (Eds.), SAGE Research Methods Foundations. doi: 10.4135/9781526421036885885

`basis.poly` for the smoothing spline basis

`predict.sm` for predicting from smooth models

`predict.gsm` for predicting from generalized smooth models

### Examples

```# generate data
set.seed(1)
n <- 100
x <- seq(0, 1, length.out = n)
fx <- 2 + 3 * x + sin(2 * pi * x)
y <- fx + rnorm(n, sd = 0.5)

# smoothing spline
mod.ss <- ss(x, y, nknots = 10)
X.ss <- model.matrix(mod.ss)
mean((mod.ss\$y - X.ss %*% mod.ss\$fit\$coef)^2)

# smooth model
mod.sm <- sm(y ~ x, knots = 10)
X.sm <- model.matrix(mod.sm)
mean((mod.sm\$fitted.values - X.sm %*% mod.sm\$coefficients)^2)

# generalized smooth model (family = gaussian)
mod.gsm <- gsm(y ~ x, knots = 10)
X.gsm <- model.matrix(mod.gsm)
mean((mod.gsm\$linear.predictors - X.gsm %*% mod.gsm\$coefficients)^2)

```

npreg documentation built on July 21, 2022, 1:06 a.m.