У меня есть прогноз с проблемой линейной регрессии. В этой задаче имеют значение дни недели. На данный момент использую:
lm.mod <- lm(y ~ x + monday + tuesday + thursday + friday + saturday + sunday, data=train)
Где y и x - непрерывные переменные, а дни недели - фиктивные переменные (они могут быть либо 0, либо 1). Таким образом, недельная зависимость задается различными интерцепторами (коэффициентами перед манекенами). Однако я хотел бы рассчитать другой коэффициент для x для каждого дня недели.
Я могу выполнить эту операцию, когда использую GAM (библиотека: mgcv) внутри сплайн-функции, где «день» - это категориальная переменная, содержащая название дня недели.
gam.mod <- mgcv::gam(y ~ s(x, bs='cs', by=day) + monday + tuesday + thursday + friday + saturday + sunday, data = train, method="REML", select=TRUE)
Я показываю несколько строк последовательности фреймов данных
Date | y | x | day | Monday | Tuesday | Wednesday |
---------------------------------------------------------------------------------
2013-01-01 | 0.87604858 | 0.07339450 | Tuesday | 0 | 1 | 0 |
2013-01-02 | 0.90190414 | 0.16513761 | Wednesday | 0 | 0 | 1 |
С помощью mgcv я получаю разные сплайны для каждого дня недели (каждое значение факторной переменной «день»), с линейной моделью я хотел бы получить много коэффициентов для x как числа значений факторных переменных. Является ли это возможным? Любой обходной путь?