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

Add method to elicit a Dirichlet prior #202

Closed
aloctavodia opened this issue Feb 2, 2023 · 5 comments · Fixed by #327
Closed

Add method to elicit a Dirichlet prior #202

aloctavodia opened this issue Feb 2, 2023 · 5 comments · Fixed by #327

Comments

@aloctavodia
Copy link
Contributor

There are a few methods as described for example here.

This method or this one may be good candidates

@nishant42491
Copy link
Contributor

hey there @aloctavodia can i work on this issue?

@aloctavodia
Copy link
Contributor Author

Hi @nishant42491, go ahead!

@nishant42491
Copy link
Contributor

@aloctavodia I looked at the research paper you gave as a reference (https://www.mdpi.com/1099-4300/19/10/564) and if I am not wrong it only considers the multinomial model and in section 2.1 it tries to elicit a beta prior for k = 2 i.e 2 variable p's for given upper and lower bounds and a value for virtual certainty. and this model is very similar to the actual Dirichlet prior elicitation too. I just wanted to check before going ahead with the implementation.

1> Is this the feature you want? I.e. domain experts specifying the lower and upper bounds for each variable for multinomial distribution parameters and a degree of virtual certainty (mentioned as 0.990-0.998) in the paper. and you get the actual probability value and hyperparameters for the Dirichlet prior.

2> should I implement the case for k=2 i.e. section 2.1 Beta elicitaion before I go ahead with the actual Dirichlet implementation as a proof of concept?

@aloctavodia
Copy link
Contributor Author

From what I remember they present a general method and then show a particular example with the Dirichlet-Multinomial.

Regarding your questions.

  1. Yes this is one of the methods we want. Prior elicitation has many facets, and different methods are better suited for different contexts. So it is likely that we may want more than one elicitation method for the Dirichlet so users can pick the one that better suits their needs or even try more than one.

  2. Starting for the simpler Beta case, seems like a reasonable approach.

@nishant42491
Copy link
Contributor

@aloctavodia I have tried to include a demo code.py in my PR #309. it's just as a proof of concept for the Beta prior. Is this what you are looking for in terms of implementation? I had a few doubts regarding the term iteration that the authors use in their paper. The authors stated that there will always be a value for tau between the tau-0 and tau-* values which will be a root for the gamma calculation. If this is the case is this root value of tau the answer you are looking for? why even include the epsilon value i.e. 0.005 if we can find the root tau which will guarantee the equality to gamma?

If my proof of concept is wrong or my understanding of the logic is completely off the mark let me know and I'll gladly make any changes that you'd like to see.

if my proof of concept is correct let me know where and how would you like to see this being implemented in the library and ill start with that and then move on to implementing the Dirichlet prior i.e with k > 2 after that if that is what you'd like.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants