I have data from multiple voting intention surveys. Some individuals appear once, some many times. The data cover a period of 10 years. I want to model individual-level voting intention in response to change in GDP growth. But I also need to account for when the data were collected. I know that this is possible using gaussian processes. But these are difficult to fit and, as the data set is very large (~250k rows), not practical. Is a spline a suitable alternative?
The model would look something like this (plus some controls):
brm(Vote ~ 1 + s(years) + gdp + (1 | id), family = bernoulli(link = "logit"))
Where vote is a dummy variable indicating whether one would support the incumbent party or not, years is a continuous variable measuring years passed since the first observation in the data, gdp is GDP growth when measured, and id is a unique respondent ID.