У меня есть некоторые данные, которые я моделирую с использованием ограниченных кубических сплайнов. Я использую функцию преобразования rcs
в пакете rms
для генерации преобразованных переменных для линейной модели. Вот пример использования 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
, которые я им даю. Я могу избежать предупреждения, предоставив больше x
значений в new_data
и просто игнорируя те, которые мне не нужны, но меня беспокоит то, что на самом деле делает predict
.
Является ли это документированным в любом месте? – user102162