Я строю модель линейной регрессии, в которой одной из входных переменных является количество продаж. Вместо того, чтобы использовать количество продаж в день в качестве линейного ввода, я хочу использовать некоторую форму преобразования сплайна cubi c (потому что оно имеет тенденцию к спаду после заданного значения, а отношение до этого не является линейным). У меня есть следующий вопрос:
Я считаю, что могу создать кубические c сплайны для этой переменной, например, в моем наборе обучающих данных (а затем построить линейную модель, используя их), например:
transformed_x = dmatrix("bs(data, knots=(2000, 3000, 4000), degree=3, include_intercept=False)", {"data": df['Sales_Volume']},return_type='dataframe')
Но для прогнозирования одной новой точки данных, скажем, для 5000 продаж, как я могу использовать те же сплайны, чтобы сделать прогноз для моей подогнанной модели?
Если я попробую чтобы просто создать другую преобразованную версию transformed_x для одной точки данных 5000 продаж, я получаю сообщение об ошибке:
ValueError: некоторые значения узлов ([2000 3000 4000]) падают ниже нижней границы (5000)
Это работает, если у меня есть большой новый набор данных для прогнозирования, охватывающий диапазон всех этих узлов, но теперь я не уверен, могу ли я быть уверен, что выполнение того же преобразования на новом набор данных даст правильные результаты?