Вы можете уменьшить степень сплайна, но это не решит вашу проблему. Природа ваших данных вызывает отрицательные оценки:
library(splines)
years <- c(2000, 2005, 2010)
outcome_values <- c(1, 10, 90)
# quadratic B-basis spline
fit2 <- lm(outcome_values ~ bs(years, degree = 2))
plot(years, outcome_values, pch = 16)
lines(2000:2010, predict(fit2, data.frame(years = 2000:2010)), col = "blue")
То, что сплайн приводит к отрицательным предсказаниям, не означает, что с этим сплайном что-то не так. Вы должны использовать линейную интерполяцию.