当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R ns 生成自然三次样条的基础矩阵


R语言 ns 位于 splines 包(package)。

说明

生成自然三次样条的 B-spline 基础矩阵。

用法

ns(x, df = NULL, knots = NULL, intercept = FALSE,
   Boundary.knots = range(x))

参数

x

预测变量。允许缺失值。

df

自由度。可以提供 df 而不是结; ns() 然后在 x 的适当选择的分位数处选择 df - 1 - intercept 结(这将忽略缺失值)。默认值 df = NULL 将内部结的数量设置为 length(knots)

knots

定义样条线的断点。默认无结;与自然边界条件一起,这为 x 的线性回归奠定了基础。典型值是一个结的平均值或中位数,更多结的分位数。另请参阅Boundary.knots

intercept

如果 TRUE ,则基础中包含截距;默认为 FALSE

Boundary.knots

施加自然边界条件并锚定B-spline基础的边界点(默认数据范围)。如果同时提供knotsBoundary.knots,则基本参数不依赖于x。数据可以超出Boundary.knots

细节

ns 基于函数 splineDesign 。它生成一个基础矩阵,用于表示具有指定的内部结序列和自然边界条件的 piecewise-cubic 样条曲线族。这些强制约束函数在边界结之外是线性的,边界结可以提供或默认为数据的极值。

主要用途是在建模公式中直接指定模型中的自然样条项:请参阅示例。

维度为 length(x) * df 的矩阵,其中提供了 df ,或者如果提供了 knots ,则提供了 df = length(knots) + 1 + intercept 。返回与 ns 的参数相对应的属性,并显式给出 knotsBoundary.knots 等以供 predict.ns() 使用。

例子

require(stats); require(graphics)
ns(women$height, df = 5)
summary(fm1 <- lm(weight ~ ns(height, df = 5), data = women))

## To see what knots were selected
attr(terms(fm1), "predvars")

## example of safe prediction
plot(women, xlab = "Height (in)", ylab = "Weight (lb)")
ht <- seq(57, 73, length.out = 200) ; nD <- data.frame(height = ht)
lines(ht, p1 <- predict(fm1, nD))
stopifnot(all.equal(p1, predict(update(fm1, . ~
                            splines::ns(height, df=5)), nD)))
          # not true in R < 3.5.0

参考

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

也可以看看

bs , predict.ns , SafePrediction

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Generate a Basis Matrix for Natural Cubic Splines。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。