Constraining variable bound with a vector: is there any work-around?

Hi,

I trying to implement non-centered paramatrization to a model I’m working on. I have an issue with setting the lower bound for a vector variable (the issue being that the constraining variable is also a vector).

Original, centered model snippet looks like this:

parameters{
// Hyperparameter means
  real<lower=0> mu_d;
  real<lower=0> mu_A;
  vector<lower=0>[N_choices] mu_v[N_cond];

  // Hyperparameter sigmas
  real<lower=0> sigma_d; 
  real<lower=0> sigma_A;
  vector<lower=0>[N_choices] sigma_v[N_cond];

// Individual parameters
real<lower=0> d[N];
real<lower=0> A[N];
vector<lower=0>[N_choices] v[N, N_cond];
}

Current reparametrized version

parameters {
  // Hyperparameter means
  real<lower=0> mu_d;
  real<lower=0> mu_A;
  vector<lower=0>[N_choices] mu_v[N_cond];

  // Hyperparameter sigmas
  real<lower=0> sigma_d; 
  real<lower=0> sigma_A;
  vector<lower=0>[N_choices] sigma_v[N_cond];

//Individual parameters
real <lower= -mu_d/sigma_d> d_raw[N];
  real <lower= -mu_A/sigma_A> A_raw[N];
  **vector <lower= -mu_v/sigma_v> [N_choices] v_raw[N, N_cond];**
}
transformed parameters {
  real<lower=0> d[N];
  real<lower=0> A[N];
  vector<lower=0>[N_choices] v[N, N_cond];
...
}

Unfortunately, the lower bound constraint doesn’t work on ‘v_raw’. Does anyone know how to get around this issue?

Additionally, if this proves to be impossible: is it a reasonable practice to non-center some parameters and leave others centered?

Best
Wojciech

Hi,

For this case, see the discussion in Partial non-centered parametrizations in Stan