Giter VIP home page Giter VIP logo

realrate / causing Goto Github PK

View Code? Open in Web Editor NEW
52.0 52.0 8.0 4.65 MB

Causing: CAUsal INterpretation using Graphs

Home Page: https://github.com/realrate/Causing

License: MIT License

Python 98.58% Makefile 1.42%
automatic-differentiation causal-networks causality-analysis dag derivatives do-calculus effects-modeling gnn graph-theory graphs latent-variables mediation-analysis neural-networks python pytorch simultaneous-equation structural-analysis structural-equation-modeling

causing's People

Contributors

bbkchdhry avatar bbkrr avatar holger-bartel avatar holgerbartel avatar karlb avatar salistha-shakya avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

causing's Issues

Causing Test Cases

Check the numerical output of the simple example model and the wage example.

Cyclic Models

Check if the current Causing implementation 2.x can handle cyclic models.

These ideas are imported from:

Cyclic example model:

  1. Y1 <- Y2
  2. Y2 <- Y1

Effect of Y2 on Y1: As in the acyclic case, simply intervene on Y2 and compute Y1_new:
effect = Y1_new - Y1_old
So do not cyclicly converge.

  • Check if consistent with our closed formula (should be)

Rename Node-Effects and Edge-Effects

Because of an historical notation, see https://realrate.ai/download/publications/RealRate%20Kausalanalyse%20mit%20NN.pdf, we use names and variable names that are too complicated from our point of view today. See See Sections 3.3 Exogene finale Effekte, 3.4 Endogene finale Effekte, and 4.3 Partieller, totaler und finaler Graph. So we should rename the variables in the public Causing repository https://github.com/realrate/Causing like this:

Node effects

exj_indiv -> xnodeeffect
eyj_indiv -> ynodeeffect

exj_indivs -> xnodeeffects
eyj_indivs -> ynodeeffects

Edge effects

eyx_indiv -> xedgeeffect
eyy_indiv -> yedgeeffect

eyx_indivs -> xedgeeffects
eyy_indivs -> yedgeeffects

Also, please check, if we use those names in the RealRate-Private repository.

Create github action to upload releases to PyPI

We want to update our PyPI Causing release whenever we made meaningful changes to Causing. This should happen automatically whenever we create a release on github. PyPI secrets have already been saved in the Causing github repo.

Eliminate Identification Matrices

Instead of using the identification matrices idx and idy - we should use mx and my with None where there is no edge. Then we have all the information available without redundancies.
I wil create an issue for that.

The identification matrices have already been eliminated in the generation of the dot file #19 but without making use of None yet

Normalize bias for better interpretation

Because yvars have vastly different scales, the bias terms which are generated during the estimation also do. This makes it hard to decide if the biases are unusually high or not.

  • normalize bias by dividing by the yvars stddev (yielding a so called statistical t-value)
  • highlight high normalized biases in the output with t-values being larger than 2 in absolute value (and maybe hide less important/less unusual output)

Check and update documentation

To make Causing usable by people outside of RealRate, we provide documentation at

This documentation has been written a while ago and has only been updated sporadically. Read the documentation and look for the following problems (on the develop branch):

  • Is it understandable to new users (being able to use it is sufficient, no deep math understanding required)?
  • Is it up to date with the code base (general content should be ok, but check code samples and code references)?
  • Does the code yield the same results as shown in the documentation?

Estimation: compare SSE

The estimated SSE of the simple linear model must be lower than the model's SSE. Otherwise, no suggestions can be read from the NN's results.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.