# weights: Extract Smooth Model Weights In npreg: Nonparametric Regression via Smoothing Splines

 weights R Documentation

## Extract Smooth Model Weights

### Description

Extracts prior weights from a fit smoothing spline (fit by `ss`), smooth model (fit by `sm`), or generalized smooth model (fit by `gsm`).

### Usage

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

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

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

### Arguments

 `object` an object of class "gsm" output by the `gsm` function, "sm" output by the `sm` function, or "ss" output by the `ss` function `...` other arugments (currently ignored)

### Details

Returns the "prior weights", which are user-specified via the `w` argument (of the `ss` function) or the `weights` argument (of the `sm` and `gsm` functions). If no prior weights were supplied, returns the (default) unit weights, i.e., `rep(1, nobs)`.

### Value

Prior weights extracted from `object`

### Author(s)

Nathaniel E. Helwig <helwig@umn.edu>

### References

Chambers, J. M. and Hastie, T. J. (1992) Statistical Models in S. 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

`ss`, `sm`, `gsm`

### Examples

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

# smoothing spline
mod.ss <- ss(x, y, w, nknots = 10)
w.ss <- weights(mod.ss)

# smooth model
mod.sm <- sm(y ~ x, weights = w, knots = 10)
w.sm <- weights(mod.sm)

# generalized smooth model (family = gaussian)
mod.gsm <- gsm(y ~ x, weights = w, knots = 10)
w.gsm <- weights(mod.gsm)

# note: weights are internally rescaled such as
w0 <- w / mean(w)
max(abs(w0 - w.ss))
max(abs(w0 - w.sm))
max(abs(w0 - w.gsm))

```

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