bd2kccd / causal-cmd

16 stars 8 forks source link

"Cutoffs must be in nondecreasing order" exception #54

Closed imichalop closed 1 year ago

imichalop commented 4 years ago

Hi there,

I run the following command:

java -jar ~/bin/causal-cmd-1.1.3/causal-cmd-1.1.3-jar-with-dependencies.jar --algorithm fges --data-type mixed --dataset <datafile> --delimiter tab --score cg-bic-score --out <outputdir> --maxDegree -1 --json-graph --skip-latest --numCategories 3 --missing-marker '?'

and I get the following error message:

Exception in thread "main" java.lang.NullPointerException: Cutoffs must be in nondecreasing order.
        at edu.cmu.tetrad.data.Discretizer.discretize(Discretizer.java:333)
        at edu.cmu.tetrad.search.ConditionalGaussianLikelihood.useErsatzVariables(ConditionalGaussianLikelihood.java:176)
        at edu.cmu.tetrad.search.ConditionalGaussianLikelihood.<init>(ConditionalGaussianLikelihood.java:138)
        at edu.cmu.tetrad.search.ConditionalGaussianScore.<init>(ConditionalGaussianScore.java:60)
        at edu.cmu.tetrad.algcomparison.score.ConditionalGaussianBicScore.getScore(ConditionalGaussianBicScore.java:32)
        at edu.cmu.tetrad.algcomparison.algorithm.oracle.pattern.Fges.search(Fges.java:74)
        at edu.pitt.dbmi.causal.cmd.tetrad.TetradRunner.lambda$runSearch$3(TetradRunner.java:150)
        at java.lang.Iterable.forEach(Iterable.java:75)
        at edu.pitt.dbmi.causal.cmd.tetrad.TetradRunner.runSearch(TetradRunner.java:149)
        at edu.pitt.dbmi.causal.cmd.tetrad.TetradRunner.runAlgorithm(TetradRunner.java:96)
        at edu.pitt.dbmi.causal.cmd.CausalCmdApplication.runTetrad(CausalCmdApplication.java:133)
        at edu.pitt.dbmi.causal.cmd.CausalCmdApplication.main(CausalCmdApplication.java:105)

I found that line 334 in https://github.com/benoslab/tetradLite/blob/master/src/edu/cmu/tetrad/data/Discretizer.java mentions this exception. What do I do wrong? How do I ensure that this "cutoffs" array is in nondecreasing order?

The funny thing is that if I use half of my parameters (first 24 columns, our of 37 in total), the program works fine.

Thank you in advance.

Ioannis

kvb2univpitt commented 3 years ago

@jdramsey May able to answer the cutoff question.

jdramsey commented 3 years ago

Is it possible you have some discrete variables where some of the categories are "unattested"? That is, say you have a discrete variable with categories 1/2/3 but 1 never occurs?

Maybe it would be OK to remove that check; let me think. What search method are you using?

On Sat, Oct 3, 2020 at 11:28 AM Kevin Bui notifications@github.com wrote:

@jdramsey https://github.com/jdramsey May able to answer the cutoff question.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/bd2kccd/causal-cmd/issues/54#issuecomment-703120778, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACLFSR4JJLBASAF7XTMDDG3SI47IXANCNFSM4M5LH7HA .

-- Joseph D. Ramsey Special Faculty and Director of Research Computing Department of Philosophy 135 Baker Hall Carnegie Mellon University Pittsburgh, PA 15213

jsph.ramsey@gmail.com Office: (412) 268-8063 http://www.andrew.cmu.edu/user/jdramsey

jdramsey commented 1 year ago

This is a stale issue, removing. Guessing there are missing values somewhere.

This used to be an issue for data without missing values, but that issue was fixed in Tetrad.