【发布时间】:2023-03-19 11:05:02
【问题描述】:
我试图在训练集上拟合数据,然后将其应用到完整集以查看结果。但问题是我必须使用data.frame 来存储x 和y,因为我打算使用引导程序。我正在做一些这样的测试:
library(splines)
# generating the data
x_ = c(0.2, 0.9, 1.4, 1.7)
y_ = c(2.5, 4.3, 5.2, 2.5)
n = 50 - length(x_)
set.seed(0)
x = seq(0,3, length.out=n) + runif(n,0,0.1)
y = x*sin(3*x) + runif(n)
x = sort(c(x, x_))
y = c(y, y_)
df <- data.frame(x=sort(x), y=y)
# fitting the model
df1 <- df[c(2,4,6,8,16,20,25,30,35,40,45,50),]
ft <- lm(df1$y ~ bs(df1$x, knots=knots, degree=3))
pr <- predict(ft, df$x)
length(pr)
问题是predict 不喜欢df$x,它只适用于data.frame(df$x)(为什么?)。此外,它拒绝预测超过 12 个值,这对我来说非常奇怪。
【问题讨论】:
标签: r dataframe prediction bspline