HN user

mistersheik

32 karma
Posts0
Comments8
View on HN
No posts found.

If you were to stop all of those things, you could surely stop the rain as well.

By the way, this is not true in general. Suppose B…F are sampled from Boolean variables with bias 0.5. A Boolean circuit like A = (sum(B,C,D,E,F)>3) + (not B and not C and… not F). A is correlated with all of its causes B through F. However, stopping all of its causes, causes A to turn on.

If you were to stop all of those things, you could surely stop the rain as well.

But, you typically can't intervene everywhere. For example, you may not have any power over the gardener who normally turns the sprinkler on. The point of interventions (like turning a sprinkler on) is that you can reason about what would happen.

Causal models are more powerful than associational models because they support interventions. That means that you can answer questions about what would happen if you were to "do(x)". This is different than asking the question about what would happen if you were to observe "x".

Let's look at a concrete example. Suppose in the real world, the gardener leaves the sprinkler off, the ground is dry.

If you were to observe that the sprinkler is on, you would deduce that the ground is wet. If you were to observe the wet ground, you would "abduce" that the sprinkler is on.

However, the interventional question: what if I were to turn on the sprinkler requires a causal model. In this case, the direction is critical. Turning on the sprinkler, wets the ground. Wetting the ground, does not turn on the sprinkler!

Causal models also have better invariants: unobserved causal children (say WetGround) leave their parents (say Sprinkler and Rain) independent. This is not necessarily true in an associational model. If Rain is correlated with WetGround is correlated with Sprinkler, then even when WetGround is unobserved, Rain gives you information about Sprinkler. Since our model has no other elements (such as a common cause between Sprinkler and Rain), then this transmission of information is totally wrong.

I couldn't tell if you were arguing against the utility of causal models or whether the real world exhibits causal relationships. If it's the latter, then it is ultimately a leap of faith based on our intuitive understanding of the world. All scientific experiments rely on the notion of cause and effect and interventional reasoning (experiments).

Python 3.5.0 11 years ago

Hi, I implemented most of PEP448. We actually implemented

  [*range(i) for i in range(5)]
and
  {**d for d in ds}
but it was removed ultimately because people in dev-python found it confusing. If you're interested in seeing that construction in Python, I suggest waiting until 3.5 gains some traction and then making a suggestion in python-ideas.