Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implement SDT models #108

Open
GidonFrischkorn opened this issue Feb 19, 2024 · 3 comments · May be fixed by #113
Open

implement SDT models #108

GidonFrischkorn opened this issue Feb 19, 2024 · 3 comments · May be fixed by #113
Assignees
Labels
enhancement - new model Request for new model PR - minor Pull-request should update minor version
Milestone

Comments

@GidonFrischkorn
Copy link
Collaborator

Because of the Master thesis I am supervising, I had a look into options for implementing SDT models and found out that brms already supports basically all link functions that are relevant for this: mostly probit for SDT with normal noise and cloglog for SDT with Gumbel noise. Additional options would be cauchit or logit for SDT models with Cauchy or Logistic noise. But I don't think these are really relevant. These links are implement for both bernoulli or binomial distributions for single threshold SDT models, as well as for the cumulative distribution needed for the multiple threshold/confidence SDT models.

I was thinking about implementing two SDT models for 1) the single threshold case and 2) the multiple threshold case and in addition to the response variable let the users specify which noise distribution they want to assume (i.e. "normal" or "gumbel"). For the multiple threshold models, there would be an additional option for unequal variance models, providing the option to predict a "discrimination" parameter.

Would you mind, if I take a shot at these implementations? Or do you want to do this? Just because originally, we discussed that you would take the lead in this.

Apart from that I think these models should support all of the brms functionality, given that the distributions and link functions are natively supported by brms.

@GidonFrischkorn GidonFrischkorn added the PR - minor Pull-request should update minor version label Feb 19, 2024
@GidonFrischkorn GidonFrischkorn added this to the 1.0.0 milestone Feb 19, 2024
@venpopov
Copy link
Owner

Sure, go ahead. Less work for me 😄 but also less fun for me 😢 I can focus on trying to get the full sdm working

@GidonFrischkorn GidonFrischkorn self-assigned this Feb 20, 2024
@GidonFrischkorn
Copy link
Collaborator Author

The simple SDT models without confidence ratings are mostly implemented. When I had a look into the confidence rating SDT models I noticed that it is more complicated to have the thresholds vary according to a function. This is mainly because there are several thresholds (specifically one less that rating points on the rating scale). This issue is discussed here: https://discourse.mc-stan.org/t/estimating-two-sets-of-thresholds-in-an-ordinal-model/20380

So, we have to make a decision, how to deal with the need to have thresholds vary over a set of predictor variables and how to include that in the bmmformula. If we want to accommodate these predictions in the bmmformula then we need to transform the predictions into a grouping variable telling brms to estimate separate sets of thresholds for certain conditions. Something like: resp | thres(gr = thres_predictor) ~ dprime*isold

As of now, I am not sure how we would deal with random effects in this case. Intuitively, the random effects of the thresholds should then also be grouped according to the same predictors. What do you think?

Maybe, we can have a chat about that when you are back at the office. For now, I will finalize the simple SDT models and make a commit for them by tomorrow.

@venpopov
Copy link
Owner

Yes, let's chat next week when I'm back

@GidonFrischkorn GidonFrischkorn linked a pull request Feb 21, 2024 that will close this issue
@venpopov venpopov added the enhancement - new model Request for new model label Feb 21, 2024
@venpopov venpopov removed this from the 1.0.0 milestone May 22, 2024
@GidonFrischkorn GidonFrischkorn added this to the 1.1.0 milestone Jun 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement - new model Request for new model PR - minor Pull-request should update minor version
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants