當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。