3
我有一些数据是使用受限三次样条建模的。我在rms
包中使用rcs
转换函数来生成线性模型的转换变量。这是一个使用5节的例子。使用受限三次样条的新数据的预测值
library('rms')
my_df <- data.frame(
y = -4 * -100:100 + -1.5 * (-100:100)**2 + 3 * (-100:100)**3 + rnorm(201, 0, 1e5),
x = -100:100
)
mod <- lm(y ~ rcs(x, 5), data = my_df)
我适合数据后,我想找到的预测y
值x
值的特定领域。这里就是我现在做的:
new_data <- data.frame(x = -3:3)
predict(mod, newdata = new_data)
然而,这将产生警告消息:
Warning message:
In rcspline.eval(x, nk = nknots, inclx = TRUE, pc = pc, fractied = fractied) :
5 knots requested with 7 unique values of x. knots set to 5 interior values.
这是什么意思,什么是怎么回事?我预计节结点应该已经在mod
中定义,所以我不明白为什么它似乎试图找到我给它的七个x
值的新结。我可以通过在new_data
中提供更多的x
值,并忽略那些我不需要的值来避免警告消息,但我关心的是predict
实际上在做什么。
这是记录在任何地方吗? – user102162