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


R predict.smooth.spline 通過平滑樣條擬合進行預測


R語言 predict.smooth.spline 位於 stats 包(package)。

說明

預測新點處的平滑樣條擬合,如果需要則返回導數。預測擬合與原始數據呈線性關係。

用法

## S3 method for class 'smooth.spline'
predict(object, x, deriv = 0, ...)

參數

object

來自 smooth.spline 的擬合。

x

x 的新值。

deriv

整數;所需導數的階數。

...

傳入或傳出其他方法的進一步參數。

包含組件的列表

x

輸入 x

y

x 處的擬合值或導數。

例子

require(graphics)

attach(cars)
cars.spl <- smooth.spline(speed, dist, df = 6.4)


## "Proof" that the derivatives are okay, by comparing with approximation
diff.quot <- function(x, y) {
  ## Difference quotient (central differences where available)
  n <- length(x); i1 <- 1:2; i2 <- (n-1):n
  c(diff(y[i1]) / diff(x[i1]), (y[-i1] - y[-i2]) / (x[-i1] - x[-i2]),
    diff(y[i2]) / diff(x[i2]))
}

xx <- unique(sort(c(seq(0, 30, by = .2), kn <- unique(speed))))
i.kn <- match(kn, xx)   # indices of knots within xx
op <- par(mfrow = c(2,2))
plot(speed, dist, xlim = range(xx), main = "Smooth.spline & derivatives")
lines(pp <- predict(cars.spl, xx), col = "red")
points(kn, pp$y[i.kn], pch = 3, col = "dark red")
mtext("s(x)", col = "red")
for(d in 1:3){
  n <- length(pp$x)
  plot(pp$x, diff.quot(pp$x,pp$y), type = "l", xlab = "x", ylab = "",
       col = "blue", col.main = "red",
       main = paste0("s" ,paste(rep("'", d), collapse = ""), "(x)"))
  mtext("Difference quotient approx.(last)", col = "blue")
  lines(pp <- predict(cars.spl, xx, deriv = d), col = "red")

  points(kn, pp$y[i.kn], pch = 3, col = "dark red")
  abline(h = 0, lty = 3, col = "gray")
}
detach(); par(op)

也可以看看

smooth.spline

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Predict from Smoothing Spline Fit。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。