cmu-phil / tetrad

Repository for the Tetrad Project, www.phil.cmu.edu/tetrad.
GNU General Public License v2.0
402 stars 110 forks source link

Some things we need to do #1174

Closed cg09 closed 5 years ago

cg09 commented 5 years ago
  1. We need a working version of Lingam, maybe with direct ICA.
  2. We need the algorithm comparison tool to work. Madelyn tells me it is not working. Essential for testing algorithms.
jdramsey commented 5 years ago

@Clark Glymour . cg09@andrew.cmu.edu It's not clear to me we need working version of LiNGAM, except to say we've done it and for demonstration purposes maybe. FAS + pairwise does as well or better on the linear, acyclic, non-Gaussian case. Even if we got it to work accurately, it doesn't scale. FAS + pairwise works great and scales beautifully.

On Mon, Jul 1, 2019 at 10:15 PM cg09 notifications@github.com wrote:

  1. We need a working version of Lingam, maybe with direct ICA.
  2. We need the algorithm comparison tool to work. Madelyn tells me it is not working. Essential for testing algorithms.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/cmu-phil/tetrad/issues/1174?email_source=notifications&email_token=ACLFSRYN67IUWENBYYLIGYLP5K23ZA5CNFSM4H4XLD72YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODY73CHY#issuecomment-507490591, or mute the thread https://github.com/notifications/unsubscribe-auth/ACLFSR2TD4557BCOEMUZNL3P5K23ZANCNFSM4H4XLD7Q .

-- 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 5 years ago

@cg09 This works well for me if I don't shuffle the order of the variables. Still very slow though.

As for the shuffle, I don't see right off what the problem is but I'll ponder it.

jdramsey commented 5 years ago

@cg09 @yuanzhou @kvb2univpitt @mglymour

I found the bug. Now it works with shuffled variables.

I'll make a pull request later with the fix. See if Madelyn can break it.

Now you will have a very slow and mostly useless (except for very small problems) linear non-gaussian method.

jdramsey commented 5 years ago

@Clark Glymour . cg09@andrew.cmu.edu No, I don't have it working. I did some more shufflings of the variables and it's still messing up. I'll keep working another half an hour or so, but then I need to get back to my other project. Sorry about that.

On Tue, Jul 2, 2019 at 11:02 AM Joseph Ramsey jdramsey@andrew.cmu.edu wrote:

@Clark Glymour . cg09@andrew.cmu.edu It's not clear to me we need working version of LiNGAM, except to say we've done it and for demonstration purposes maybe. FAS + pairwise does as well or better on the linear, acyclic, non-Gaussian case. Even if we got it to work accurately, it doesn't scale. FAS + pairwise works great and scales beautifully.

On Mon, Jul 1, 2019 at 10:15 PM cg09 notifications@github.com wrote:

  1. We need a working version of Lingam, maybe with direct ICA.
  2. We need the algorithm comparison tool to work. Madelyn tells me it is not working. Essential for testing algorithms.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/cmu-phil/tetrad/issues/1174?email_source=notifications&email_token=ACLFSRYN67IUWENBYYLIGYLP5K23ZA5CNFSM4H4XLD72YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODY73CHY#issuecomment-507490591, or mute the thread https://github.com/notifications/unsubscribe-auth/ACLFSR2TD4557BCOEMUZNL3P5K23ZANCNFSM4H4XLD7Q .

-- 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

-- 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

cg09 commented 5 years ago

Without a working ICA and lingam we cannot test any of the many algorithms that use one or both. That is current research at CMU. So, yes we need it. Others will want it.

Clark

On Tue, Jul 2, 2019 at 12:52 PM Joseph Ramsey notifications@github.com wrote:

@Clark Glymour . cg09@andrew.cmu.edu No, I don't have it working. I did some more shufflings of the variables and it's still messing up. I'll keep working another half an hour or so, but then I need to get back to my other project. Sorry about that.

On Tue, Jul 2, 2019 at 11:02 AM Joseph Ramsey jdramsey@andrew.cmu.edu wrote:

@Clark Glymour . cg09@andrew.cmu.edu It's not clear to me we need working version of LiNGAM, except to say we've done it and for demonstration purposes maybe. FAS + pairwise does as well or better on the linear, acyclic, non-Gaussian case. Even if we got it to work accurately, it doesn't scale. FAS + pairwise works great and scales beautifully.

On Mon, Jul 1, 2019 at 10:15 PM cg09 notifications@github.com wrote:

  1. We need a working version of Lingam, maybe with direct ICA.
  2. We need the algorithm comparison tool to work. Madelyn tells me it is not working. Essential for testing algorithms.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub < https://github.com/cmu-phil/tetrad/issues/1174?email_source=notifications&email_token=ACLFSRYN67IUWENBYYLIGYLP5K23ZA5CNFSM4H4XLD72YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODY73CHY#issuecomment-507490591 , or mute the thread < https://github.com/notifications/unsubscribe-auth/ACLFSR2TD4557BCOEMUZNL3P5K23ZANCNFSM4H4XLD7Q

.

-- 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

-- 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

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/cmu-phil/tetrad/issues/1174?email_source=notifications&email_token=AD4Y3OMEJA34C3WVHUWLKQDP5OBTFA5CNFSM4H4XLD72YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZB4WUY#issuecomment-507759443, or mute the thread https://github.com/notifications/unsubscribe-auth/AD4Y3OOPXBR7EXEUG6SE6ULP5OBTFANCNFSM4H4XLD7Q .

cg09 commented 5 years ago

By "This" do you mean the algorithms comparison tool?

On Tue, Jul 2, 2019 at 11:34 AM Joseph Ramsey notifications@github.com wrote:

@cg09 https://github.com/cg09 This works well for me if I don't shuffle the order of the variables. Still very slow though.

As for the shuffle, I don't see right off what the problem is but I'll ponder it.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/cmu-phil/tetrad/issues/1174?email_source=notifications&email_token=AD4Y3OO6TZMBYSLS6TAJTALP5NYOTA5CNFSM4H4XLD72YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZBVOQI#issuecomment-507729729, or mute the thread https://github.com/notifications/unsubscribe-auth/AD4Y3OPW3DEYZCFJR6Y4OVTP5NYOTANCNFSM4H4XLD7Q .

jdramsey commented 5 years ago

@cg09 I meant lingam. Back when I wrote that I thought it was working but then realized there was an order effect. Except for possibly ica the algorithm seems to be perfectly implemented. I even simplified it. So I don't know. All I know is I've done due diligence and it still doesn't work. I'll look at it again later. In general though there are better (though less well known) options that attempt to solve the same problem, so my motivation is low. Maybe the thing is to compare those options to the received implenations.

The algorithm comparison tool has been working perfectly for some time. There was a brief interlude when it was singing a different song, but it's back to the usual symphony now in the development branch.

cg09 commented 5 years ago

Madelyn is supposed to be working on a version of direct lingam. She needs some help from Kun, but he is not teaching in the fall and so will be in and out at times I can't predict.

Clark

On Wed, Aug 7, 2019 at 1:44 PM Joseph Ramsey notifications@github.com wrote:

@cg09 https://github.com/cg09 I meant lingam. Back when I wrote that I thought it was working but then realized there was an order effect. Except for possibly ica the algorithm seems to be perfectly implemented. I even simplified it. So I don't know. All I know is I've done due diligence and it still doesn't work. I'll look at it again later. In general though there are better (though less well known) options that attempt to solve the same problem, so my motivation is low. Maybe the thing is to compare those options to the received implenations.

The algorithm comparison tool has been working perfectly for some time. There was a brief interlude when it was singing a different song, but it's back to the usual symphony now in the development branch.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/cmu-phil/tetrad/issues/1174?email_source=notifications&email_token=AD4Y3OPASXFXXUSEJPHXOODQDMCXLA5CNFSM4H4XLD72YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3ZFZUY#issuecomment-519199955, or mute the thread https://github.com/notifications/unsubscribe-auth/AD4Y3ONVYGHR7LCYTFQMHJDQDMCXLANCNFSM4H4XLD7Q .

jdramsey commented 5 years ago

Not only is the algorithm comparison tool working, but Kevin is making a wrapper for it that will run at the command line and from R and Python, which will be a huge advance in the state of the art.

Working on the original LiNGAM, making some progress, though it's not as good as FASK and is extraordinarily slow (because of the permutations). If direct lingam is faster, that will be a boon.

jdramsey commented 5 years ago

@cg09 Alright, I think I have LiNGAM working. I can send you a working jar with it in. This is with the original ICA implementation, fixed up a little and with better parameter choices. If you still want direct lingam @mglymour that can be done in addition; I believe the current ICA will support that. But we should make that a new, separate issue so as not to confuse things.

Otherwise, this issue can be closed, I think.