{
  "id": 4649,
  "title": "Codes in research papers",
  "url": "/competitions/cause-effect-pairs/discussion/4649",
  "author_name": "",
  "post_date": "2013-05-21T17:37:34.187Z",
  "votes": 1,
  "comment_count": 6,
  "views": 1972,
  "content": "<p>It's pity that all codes provided in research papers below are written in Matlab:</p>\r\n<p><a href=\"http://webdav.tuebingen.mpg.de/causality/\">http://webdav.tuebingen.mpg.de/causality/</a>&nbsp;</p>\r\n<p></p>",
  "messages": [
    {
      "id": "24610",
      "postDate": "05/21/2013 17:37:34",
      "content": "<p>It's pity that all codes provided in research papers below are written in Matlab:</p>\r\n<p><a href=\"http://webdav.tuebingen.mpg.de/causality/\">http://webdav.tuebingen.mpg.de/causality/</a>&nbsp;</p>\r\n<p></p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "24612",
      "postDate": "05/21/2013 17:53:06",
      "content": "<p>Well that's the langage most researchers use. Why don't you code something that automatically translates matlab into Python? Python is so cool and so easy, don't tell me you can't do that! :-)&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "24615",
      "postDate": "05/21/2013 18:13:25",
      "content": "<p>That's the problem, I can't do that! but I am taker, what is it?</p>\r\n<p>Until now, the langage I master most is R.&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "24618",
      "postDate": "05/21/2013 18:31:28",
      "content": "<p>Just kidding ;-) Matlab is a user friendly langage, in a way the kind of langage you want when you don't code professionnaly. Below some links you may find helpfull. Most matlab functions will work on octave (free soft) either as it or with minor correction.\r\n Good luck!</p>\r\n<p></p>\r\n<p><a href=\"http://en.wikibooks.org/wiki/MATLAB_Programming/Differences_between_Octave_and_MATLAB\">http://en.wikibooks.org/wiki/MATLAB_Programming/Differences_between_Octave_and_MATLAB</a></p>\r\n<p><a href=\"http://www.gnu.org/software/octave/index.html\">http://www.gnu.org/software/octave/index.html</a></p>\r\n<p><a href=\"http://en.wikipedia.org/wiki/MATLAB\">http://en.wikipedia.org/wiki/MATLAB</a></p>\r\n<p><a href=\"http://en.wikipedia.org/wiki/GNU_Octave\">http://en.wikipedia.org/wiki/GNU_Octave</a></p>\r\n<p></p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "24619",
      "postDate": "05/21/2013 18:56:14",
      "content": "<p>Jokes aside, that Matlab-Python bridge indeed exists!&nbsp;https://github.com/arokem/python-matlab-bridge</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "24621",
      "postDate": "05/21/2013 19:13:09",
      "content": "<p>You might be better off using the principles of the methods and re-implementing something of your own. Most of the Matlab implementations are very slow and those that are fast are simple (just a few lines of code).</p>\r\n<p>The principles are useful: I used them to classify the examples visually and get a score of 0.7 for numerical variables. They include:</p>\r\n<p>- Look first at whether the variables are independent. If there is no dependency, the score should be near 0 no matter what. Otherwise:</p>\r\n<p>- if the data are not very noisy, (a)&nbsp;look first for an explanation in terms of a non-linear non invertible function in either causal direction. If there is an obvious one (like a sine of parabola), then this is a strong clue; (b) look for an invertible\r\n non-linear explanation. If there is one, see whether the function is independent or not of one of the marginal distributions. This may be reflected in large derivatives coinciding with distribution concentration (this is the IGCI idea, see the May 16 teleconference\r\n https://sites.google.com/a/chalearn.org/readinggroup/home)&nbsp;.</p>\r\n<p>- If the data are medium noisy, try to exploit the noise by looking whether in one direction the noise is independent of the input variable or not. This is the ANL (additive noise model) idea. It works to some extent event if the noise is not additive. Outliers\r\n are very useful to make the decision visually though they are not trivial to use with an automatic method that may discard them.</p>\r\n<p>- If the data are very noisy and look blobby, one possible strategy is to rely on entropy reduction, betting on the fact that the causal mechanism reduces entropy (not sure this is a viable strategy).</p>\r\n<p>- If there is much uncertainty about the direction, return a score close to 0.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "750506",
      "postDate": "02/19/2020 12:57:00",
      "content": "<p>Can I can use someone other code in my Research paper .</p>",
      "rawMarkdown": "Can I can use someone other code in my Research paper .",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 24612,
      "author_name": "jay670790",
      "author_url": "",
      "post_date": "05/21/2013 17:53:06",
      "content": "<p>Well that's the langage most researchers use. Why don't you code something that automatically translates matlab into Python? Python is so cool and so easy, don't tell me you can't do that! :-)&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 24615,
      "author_name": "herimanitra",
      "author_url": "",
      "post_date": "05/21/2013 18:13:25",
      "content": "<p>That's the problem, I can't do that! but I am taker, what is it?</p>\r\n<p>Until now, the langage I master most is R.&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 24618,
      "author_name": "jay670790",
      "author_url": "",
      "post_date": "05/21/2013 18:31:28",
      "content": "<p>Just kidding ;-) Matlab is a user friendly langage, in a way the kind of langage you want when you don't code professionnaly. Below some links you may find helpfull. Most matlab functions will work on octave (free soft) either as it or with minor correction.\r\n Good luck!</p>\r\n<p></p>\r\n<p><a href=\"http://en.wikibooks.org/wiki/MATLAB_Programming/Differences_between_Octave_and_MATLAB\">http://en.wikibooks.org/wiki/MATLAB_Programming/Differences_between_Octave_and_MATLAB</a></p>\r\n<p><a href=\"http://www.gnu.org/software/octave/index.html\">http://www.gnu.org/software/octave/index.html</a></p>\r\n<p><a href=\"http://en.wikipedia.org/wiki/MATLAB\">http://en.wikipedia.org/wiki/MATLAB</a></p>\r\n<p><a href=\"http://en.wikipedia.org/wiki/GNU_Octave\">http://en.wikipedia.org/wiki/GNU_Octave</a></p>\r\n<p></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 24619,
      "author_name": "",
      "author_url": "",
      "post_date": "05/21/2013 18:56:14",
      "content": "<p>Jokes aside, that Matlab-Python bridge indeed exists!&nbsp;https://github.com/arokem/python-matlab-bridge</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 24621,
      "author_name": "iguyon",
      "author_url": "",
      "post_date": "05/21/2013 19:13:09",
      "content": "<p>You might be better off using the principles of the methods and re-implementing something of your own. Most of the Matlab implementations are very slow and those that are fast are simple (just a few lines of code).</p>\r\n<p>The principles are useful: I used them to classify the examples visually and get a score of 0.7 for numerical variables. They include:</p>\r\n<p>- Look first at whether the variables are independent. If there is no dependency, the score should be near 0 no matter what. Otherwise:</p>\r\n<p>- if the data are not very noisy, (a)&nbsp;look first for an explanation in terms of a non-linear non invertible function in either causal direction. If there is an obvious one (like a sine of parabola), then this is a strong clue; (b) look for an invertible\r\n non-linear explanation. If there is one, see whether the function is independent or not of one of the marginal distributions. This may be reflected in large derivatives coinciding with distribution concentration (this is the IGCI idea, see the May 16 teleconference\r\n https://sites.google.com/a/chalearn.org/readinggroup/home)&nbsp;.</p>\r\n<p>- If the data are medium noisy, try to exploit the noise by looking whether in one direction the noise is independent of the input variable or not. This is the ANL (additive noise model) idea. It works to some extent event if the noise is not additive. Outliers\r\n are very useful to make the decision visually though they are not trivial to use with an automatic method that may discard them.</p>\r\n<p>- If the data are very noisy and look blobby, one possible strategy is to rely on entropy reduction, betting on the fact that the causal mechanism reduces entropy (not sure this is a viable strategy).</p>\r\n<p>- If there is much uncertainty about the direction, return a score close to 0.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 750506,
      "author_name": "ayushkapri",
      "author_url": "",
      "post_date": "02/19/2020 12:57:00",
      "content": "<p>Can I can use someone other code in my Research paper .</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "24610": "",
    "24612": "",
    "24615": "",
    "24618": "",
    "24619": "",
    "24621": "",
    "750506": "Can I can use someone other code in my Research paper ."
  },
  "source": "meta"
}