I would like to know if it’s possible to run hierarchical Gaussian filter models (1,2) with brms.
The model is nicely described here in Julia, and I am having trouble translating it to R.
I managed to translate the data simulation part (#it’s something):
library(tidyverse)
simulate_data <- function(n=100, k, w, z_var=1, y_var=1) {
z_prev <- 0
x_prev <- 0
z <- rep(NA, n)
v <- rep(NA, n)
x <- rep(NA, n)
y <- rep(NA, n)
for(i in 1:n) {
z[i] <- rnorm(1, z_prev, sqrt(z_var))
v[i] <- exp(k * z[i] + w)
x[i] <- rnorm(1, x_prev, sqrt(v[i]))
y[i] <- rnorm(1, x[i], sqrt(y_var))
z_prev <- z[i]
x_prev <- x[i]
}
data.frame(index = 1:n, z=z, x=x, y=y)
}
simulate_data(100, k=1, w=0, z_var=1, y_var=1) |>
pivot_longer(2:4) |>
ggplot(aes(x = index, y = value, color = name)) +
geom_line()
Created on 2022-10-05 by the reprex package (v2.0.1)
Any pointer or advice is welcome!