Есть ли простой способ в mgcv
оценить такую модель, как $$ y = \ alpha + \ beta xI (z = 1) + f (x) I (z = 2) $$ , где f некоторая неизвестная функция, x - это непрерывная ковариата и коэффициент za.
Я знаю, что могу указать различные гладкие термины для уровня z с помощью модели mgcv::gam(y ~ s(x , by = z))
, но могу ли я указать параметр c модели (т.е. указать степени свободы) для некоторого уровня коэффициента z?
Может быть, я пропустил некоторые детали в документации, какие-либо предложения?
Вот минимальный пример модели выше
N = 500
z = factor(sample(1:2, size = N, replace = T))
x = runif(N)
y = rep(0,N)
y[z == 1] = 1 + 10*x[z==1] + rnorm(sum(z==1) , 0, 0.5)
y[z == 2] = 1 + exp(sin(12*x[z==2]+3)) + rnorm(sum(z==2) , 0, 0.5)
## this model estimate f(x) for both z==1 and z==2
mod = mgcv::gam(y~s(x, by =z))