Is there any way to use Conditional Gaussian Score or Degenerate Gaussian Score?
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.
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.
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).
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
That is, the main innovation of FGES is caching.
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: @.***>
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?
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.
can you tell PC and FCI which is the best method for graph discovering
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.
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?
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.