Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parent node importance? #913

Open
ronikobrosly opened this issue Oct 12, 2017 · 4 comments
Open

Parent node importance? #913

ronikobrosly opened this issue Oct 12, 2017 · 4 comments

Comments

@ronikobrosly
Copy link

@ronikobrosly ronikobrosly commented Oct 12, 2017

Hello,
Let's say you have a causal Bayesian Network DAG with CPDs already estimated. You set the evidence of a "target" node named X. Let's say X has 4 parent nodes. Is there a method for finding which of the 4 parent nodes exerts the most influence on X? In other words, a method for finding which of the parent nodes is most important.

Thanks!

@ankurankan

This comment has been minimized.

Copy link
Member

@ankurankan ankurankan commented Oct 12, 2017

@ronikobrosly

This comment has been minimized.

Copy link
Author

@ronikobrosly ronikobrosly commented Oct 12, 2017

Thanks for the links and the super fast response Ankur! I was thinking something along these lines: https://www.rdocumentation.org/packages/bnlearn/versions/0.8/topics/arc.strength
or http://www.bnlearn.com/documentation/man/arc.strength.html

"Measure the strength of the probabilistic relationships expressed by the arcs (edges) of a Bayesian network..."

@ronikobrosly

This comment has been minimized.

Copy link
Author

@ronikobrosly ronikobrosly commented Oct 12, 2017

Actually, after digging a little deeper, it seems like this method is based on a bootstrapping approach which requires Bayesian Network structure learning: perturb the data and see how often an edge between two nodes is still there after perturbation (if it's hardly there after perturbation, it's a "weak" edge, but if it's still there many times after you perturb the data, it is "strong").

I think one could use this approach when you've already learned the structure and estimated the CPDs. You could randomly perturb one variable in the dataset many times, and see how it changes the relevant CPDs each time. If it changes wildly with each perturbation, maybe the edge you're looking at is weak.

@ankurankan

This comment has been minimized.

Copy link
Member

@ankurankan ankurankan commented Oct 18, 2017

I get it now. We don't already have anything like this implemented in pgmpy yet but I think it shouldn't be very hard to do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.