abess-team / abess

Fast Best-Subset Selection Library
https://abess.readthedocs.io/
Other
470 stars 41 forks source link

Possible to include calcualtion of Bayes Factor according to Dunstan et al (2022)? #499

Open MattWenham opened 1 year ago

MattWenham commented 1 year ago

Dunstan et al in Easy computation of the Bayes factor to fully quantify Occam’s razor in least-squares fitting and to guide actions present "an easy way of calculating [the Bayes Factor] so that it can be routinely used with all least-squares fitting to complement and augment other figures of merit".

Would it be possible to include these calculations as an alternative ic_type?

Mamba413 commented 1 year ago

Does the Bayes factor is equivalent to the Bayesian information criterion? If so, I think it is very direct to implement it.

MattWenham commented 1 year ago

No. From the publication:

…despite its name, the BIC is not Bayesian, and nor are the various related criteria. This is because they do not take into account the prior probabilities of the models. The Bayes factor does.

The basic calculation for the Bayes factor appears to be:

$${\text{MLI}} = \left( {2\pi } \right)^{n/2} L{max} \frac{{\sqrt {{\text{det }}{\mathbf{Cov}}{p} } }}{{\mathop \prod \nolimits{i = 1}^{n} {\Delta }p{i} }}$$

…with more explanation in the publication.

Mamba413 commented 1 year ago

I’m sorry for the delayed response. I have been very busy with my doctoral thesis recently.

Today, I carefully read the article on https://www.nature.com/articles/s41598-021-04694-7 and my conclusion is that we will not consider implementing Bayes factor for the time being. The main reason is that it requires the user to input $n$ parameters $\Delta p_i (i=1, \ldots, n)$ where $n$ is the number of variables. And $\Delta p_i (i=1, \ldots, n)$ are indispensable for computing the Bayes factor: image

As the authors say about the ranges, $\Delta p_i (i=1, \ldots, n)$, have to be decided upon and input by the user. In the context of high-dimensional data analysis, it is not practical or elegant to implement this feature. Therefore, we will not focus on implementing it at this time. We appreciate your suggestion and are always happy to learn from your comments. If you have any further questions or concerns, please feel free to contact us.