You're right Bayesian Networks don't hold any information about real causality, it just assumes one random variable directly influences another random variable , and the joint distribution of those variables tells us the second variable also directly influences the first one. They are just two **Mathematical** points of view, which gives the same result. However, in some situations (and we can force those situations to happen) we have something more than just the Joint Distribution, we have the [Do-Calculus][1] formulated by Judea Pearl that gives us information about how the variables (or the network) behavior under external intervention. The main concept can be captured when you try to answer: *P(X | do(Y=y))* = ? Where *do(Y=y)* is the action of externally forcing *Y* to be *y* ignoring that *Y* depends only on its parents. That gives us more information about the REAL CAUSAL structure of the Bayesian Network. When you have what is called sometimes by **Intervening Data**, which is data generated under external intervention , and if so the *do(Y=y)* statement ignored all *Y* possible parents in the network, then you can infere the real causal structure more accurately. In your example, in your case you could get data assuming, for example, that in a subset of the whole data, the variable *Education* was forced to the value lets say *educated* (because we took the action to educate those people), then if inside that part we still have "correlation" between the variables *Educated* and *Age* you know the arrow should likely be *Education* -> *Age* , because *Education* was forced not to have any parents, including *Age*. [1]: http://ftp.cs.ucla.edu/pub/stat_ser/r402.pdf