causal-learn icon indicating copy to clipboard operation
causal-learn copied to clipboard

Is there any way to use Conditional Gaussian Score or Degenerate Gaussian Score?

Open EsqYu opened this issue 9 months ago • 11 comments

Hi. I was wondering if you could tell me the way to use Conditional Gaussian score and Degenerate Gaussian score on causal-learn. I'd like to try GES on mixed dataset and I thought CG score and DG score are the most appropriate functions when dealing with mixed data.

EsqYu avatar Mar 17 '25 12:03 EsqYu

For CG and DG, they are currently not in causal-learn yet, but you may use py-tetrad, which is a python wrapper for the classical Tetrad library. The documentation of these two scores can be found here.

kunwuz avatar Mar 17 '25 16:03 kunwuz

Thank you. I already tried py-tetrad, but I believe it doesn't have pure GES(I know there is FGES implementation in py-tetrad).

EsqYu avatar Mar 18 '25 01:03 EsqYu

Actually, FGES is an implementation of GES, sorry to intrude. It has the same performance characteristics as GES in pcalg:

https://arxiv.org/abs/1709.04240

jdramsey avatar Mar 18 '25 13:03 jdramsey

That is, the main innovation of FGES is caching.

jdramsey avatar Mar 18 '25 13:03 jdramsey

Oh, sorry for my disjointed emails; I have disjointed thoughts.

You may also want to consider using BOSS or GRaSP; these have enhanced performance characteristics over FGES and are also scoring algorithms:

Andrews, B., Ramsey, J., Sanchez Romero, R., Camchong, J., & Kummerfeld, E. (2023). Fast scalable and accurate discovery of dags using the best order score search and grow shrink trees. Advances in neural information processing systems, 36, 63945-63956.

On Mon, Mar 17, 2025 at 9:24 PM EsqYu @.***> wrote:

Thank you. I already tried py-tetrad, but I believe it doesn't have pure GES(I know there is FGES implementation in py-tetrad).

— Reply to this email directly, view it on GitHub https://github.com/py-why/causal-learn/issues/231#issuecomment-2731348558, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACLFSR5L36CF6SCPP3WBZSL2U5YWLAVCNFSM6AAAAABZFKGIZSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMZRGM2DQNJVHA . You are receiving this because you are subscribed to this thread.Message ID: @.***> [image: EsqYu]EsqYu left a comment (py-why/causal-learn#231) https://github.com/py-why/causal-learn/issues/231#issuecomment-2731348558

Thank you. I already tried py-tetrad, but I believe it doesn't have pure GES(I know there is FGES implementation in py-tetrad).

— Reply to this email directly, view it on GitHub https://github.com/py-why/causal-learn/issues/231#issuecomment-2731348558, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACLFSR5L36CF6SCPP3WBZSL2U5YWLAVCNFSM6AAAAABZFKGIZSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMZRGM2DQNJVHA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

jdramsey avatar Mar 18 '25 13:03 jdramsey

Thank you. Then, is it correct that there aren't any differences like preference for data types or accuracy between GES and FGES but their efficiency and scalability?

EsqYu avatar Mar 19 '25 05:03 EsqYu

That's my understanding. Feel free to do a comparison, though. Perhaps bear in mind that the "sweet spot" for GES is the large sparse regime--see this paper for instance:

Nandy, P., Hauser, A., & Maathuis, M. H. (2018). High-dimensional consistency in score-based and hybrid structure learning. The Annals of Statistics, 46(6A), 3151-3183.

jdramsey avatar Mar 19 '25 20:03 jdramsey

can you tell PC and FCI which is the best method for graph discovering

abhijeet22singh avatar Mar 20 '25 09:03 abhijeet22singh

From my perspective, if you believe there are some variables that are not measured but are important to the problem of interest, FCI can provide more information on where they might be and what their influences are. If you are happy assuming that there exists no latent variables, PC is a good choice.

kunwuz avatar Mar 21 '25 18:03 kunwuz

Thank you. Now that I understand there are few differences between FGES and original GES, I wonder if there is any advantage in using original GES. Is it entirely replaced by FGES?

EsqYu avatar Mar 24 '25 01:03 EsqYu

In the sense that it implements the Chickering theory in this article, yes:

Chickering, D. M. (2002). Optimal structure identification with greedy search. Journal of machine learning research, 3(Nov), 507-554.

It's simply another implementation of GES in this article, using all the same theory but with some optimizations.

Let me think about it briefly. I'd heard secondhand that someone had found a small error in implementation; let me ping that person to find out what it was.

jdramsey avatar Mar 24 '25 11:03 jdramsey