ropensci / dynamite

Bayesian Inference of Complex Panel Data
https://docs.ropensci.org/dynamite/
GNU General Public License v3.0
27 stars 1 forks source link

lag(y) + lags() leads to extra covariate #37

Closed helske closed 2 years ago

helske commented 2 years ago

See

f <- obs(y ~ x, family = "gaussian") +
    obs(w ~ x + lag(y), family = "exponential")  +
    lags()
set.seed(0)
d <- data.frame(
    y = rnorm(5),
    w = rexp(5),
    x = rnorm(5),
    z = seq.int(5)
)
fit <- dynamite(f, d, time = "z", debug = list(no_compile = TRUE))
str(fit$stan$model_vars$w)
List of 28
 $ resp                 : chr "w"
 $ L_fixed              : int [1:4(1d)] 1 4 2 3
 $ L_varying            : int[0 (1d)] 
 $ J                    : int [1:4(1d)] 1 2 3 4
 $ J_fixed              : int [1:4(1d)] 1 4 2 3
  ..- attr(*, "dimnames")=List of 1
  .. ..$ : chr [1:4] "x" "lag(y, 1)" "y_lag1" "w_lag1"
 $ J_varying            : int[0 (1d)] 
 $ K                    : int 4
 $ K_fixed              : int 4
 $ K_varying            : int 0
 $ has_missing          : logi FALSE
 $ obs                  : chr ""
 $ has_fixed_intercept  : logi TRUE
 $ has_varying_intercept: logi FALSE
 $ has_random_intercept : logi FALSE
 $ has_fixed            : logi TRUE
 $ has_varying          : logi FALSE
 $ lb                   : num 0
 $ shrinkage            : logi FALSE
 $ noncentered          : logi FALSE
 $ has_offset           : logi FALSE
 $ has_trials           : logi FALSE
 $ alpha_prior_distr    : chr "normal(0.21, 2)"
 $ beta_prior_npars     : num 2
 $ beta_prior_pars      : num [1:4, 1:2] 0 0 0 0 4 4 4 4
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:4] "x" "lag(y, 1)" "y_lag1" "w_lag1"
  .. ..$ : NULL
 $ beta_prior_distr     : chr "normal"
 $ write_beta           : logi TRUE
 $ write_delta          : logi FALSE
 $ write_tau            : logi FALSE