有没有办法将二次样条(而不是三次样条)调整为某些数据?
我有这些数据,但我似乎没有在 R 中找到合适的函数来执行此操作。
最佳答案
稍微扩展上面的评论,您可以使用 B 样条基础(在函数 splines::bs()
中实现),设置 degree=2
而不是默认的 degree=3
:
library(splines)
## Some example data
set.seed(1)
x <- 1:10
y <- rnorm(10)
## Fit a couple of quadratic splines with different degrees of freedom
f1 <- lm(y ~ bs(x, degree = 2)) # Defaults to 2 - 1 = 1 degree of freedom
f9 <- lm(y ~ bs(x, degree = 2, df=9))
## Plot the splines
x0 <- seq(1, 10, by = 0.1)
plot(x, y, pch = 16)
lines(x0, predict(f1, data.frame(x = x0)), col = "blue")
lines(x0, predict(f9, data.frame(x = x0)), col = "red")
关于r - 二次样条,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12925533/