Ahhh OK I think I am clear on the dilemma now. If you plan to use the person-level estimates in a secondary analysis (e.g., unsupervised clustering), then either assuming a single group or two (known/labelled) groups can negatively impact the unsupervised clustering.
Is that the general idea, or is there something else I could be missing?
If that is the case, then it may be best to not use any prior information (or at least, very minimal prior information). To do that, you could make the priors uniform/near uniform, or alternatively set the group-level means/SDs to specific, diffuse values as
opposed to estimating them from data. Then, you can ensure that the person-level estimate are minimally regularized/pooled for use in a secondary analysis.
The only real alternative would be to do it in a fully generative way, which would require simultaneously doing the clustering and person-level parameter estimation in a single model. e.g., something like assuming a mixture model as the group-level model, as
opposed to assuming each person-level parameter comes from a single normal distribution. But this is rather complex and would require a great deal of custom coding in Stan.
That said, I would recommend taking the first approach (making the priors uninformative/near uniform). This way, information from one person does not influence estimates from another person. To get an idea of how to modify the priors, you can do some simulations
in R. e.g., for the go bias, you can choose means/SDs, draw from a normal distribution, and plot things out:
hist(rnorm(100000, mu, sd))
For the bounded parameters, you would need to also account for the parameter transformations. e.g., for learning rate:
hist(pnorm(rnorm(100000, mu, sd)))
The `pnorm` function is the same as the `Phi_approx` function in the stan code (see the transformed parameters block). Note that you can get a uniform distribution on the learning by setting the mean to 0 and sd to 1.
So, overall, I think just setting mu_pr and sigma parameters to specific values that ensure the person-level parameters they represent are distributed near uniformly should give you the results that you are looking for. You can set these values by replacing
the mu_pr[1-6] and sigma[1-6] variables with specific values in the transformed parameters block (e.g., following from the example using the `pnorm` function above, below I changed the group-level ep parameterization to ensure that ep is distributed uniformly
across people by replacing the group-level mean and SD parameters with specific values of 0 and 1):
"
|
transformed parameters { |
|
|
vector<lower=0,
upper=1>[N]
xi; |
|
|
vector<lower=0,
upper=1>[N]
ep; |
|
|
vector[N]
b; |
|
|
vector[N]
pi; |
|
|
vector<lower=0>[N]
rhoRew; |
|
|
vector<lower=0>[N]
rhoPun; |
|
|
|
|
|
for (i in 1:N)
{ |
|
|
xi[i] = Phi_approx(mu_pr[1]
+ sigma[1]
* xi_pr[i]); |
|
|
ep[i] = Phi_approx(0 + 1 * ep_pr[i]); |
|
|
} |
|
|
b
= mu_pr[3]
+ sigma[3]
* b_pr;
// vectorization |
|
|
pi = mu_pr[4]
+ sigma[4]
* pi_pr; |
|
|
rhoRew = exp(mu_pr[5]
+ sigma[5]
* rhoRew_pr); |
|
|
rhoPun = exp(mu_pr[6]
+ sigma[6]
* rhoPun_pr); |
|
|
} |
"