Monday, July 10, 2017

Not Surprised Rob Got This Wrong, but

et tu, Ken?

Because it is trivial to show that the hot streaks in my first program on this topic are real, and can be bet on successfully by anyone who knows they exist, and it only takes a couple more lines of code:


SHOTS = 100
MAKE_BET = True
MISS_BET = False

gene_stake = 100
kr_stake = 100
gene_bet = MAKE_BET

make = 0.0
print("Betting with hidden hot streak mechanism:")
for shot in range(1, SHOTS):
    hot = (random.random() < .5)
    gene_bet = MAKE_BET if hot else MISS_BET
    if hot:
        make = (random.random() < .66)
    else:
        make = (random.random() < .33)
    if gene_bet == make:
        gene_stake += .97
        kr_stake -= .97
    else:
        gene_stake -= 1.03
        kr_stake += 1.03

print("Gene's final holdings = " + str(gene_stake))
print("KR's final holdings = " + str(kr_stake))


KR, thinking the outcome is 50/50, are willing to "make book" and take bets on either side, so long as they get a house "vigorish" of 3 cents per bet. But Gene can "see" the hot hand taking place, and bets on the hot (and against the cold) hand.

And here is the outcome:
Betting with hidden hot streak mechanism:
Gene's final holdings = 114.03
KR's final holdings = 85.97
172-16-30-10:statistics gcallah$ ./hotstreak2.pyBetting with hidden hot streak mechanism:
Gene's final holdings = 128.03
KR's final holdings = 71.97
172-16-30-10:statistics gcallah$ ./hotstreak2.pyBetting with hidden hot streak mechanism:
Gene's final holdings = 126.03
KR's final holdings = 73.97
172-16-30-10:statistics gcallah$ ./hotstreak2.pyBetting with hidden hot streak mechanism:
Gene's final holdings = 130.03
KR's final holdings = 69.97
172-16-30-10:statistics gcallah$ ./hotstreak2.pyBetting with hidden hot streak mechanism:
Gene's final holdings = 134.03
KR's final holdings = 65.97
172-16-30-10:statistics gcallah$ ./hotstreak2.pyBetting with hidden hot streak mechanism:
Gene's final holdings = 118.03
KR's final holdings = 81.97
172-16-30-10:statistics gcallah$ ./hotstreak2.pyBetting with hidden hot streak mechanism:
Gene's final holdings = 128.03
KR's final holdings = 71.97
172-16-30-10:statistics gcallah$
KR lose every single time, by a lot!

What's especially weird here is that the "George" whom Rob accused me of maliciously deleting the mention of is an instance of just the sort of thing I programmed here: Weisberg's example has George use a random number generator to pick a number to come up on his rigged roulette wheel. For the person who doesn't know George can rig the wheel, the pattern of numbers that "hits" looks completely fair: there is absolutely no way to tell it from a truly random wheel. But George, having more knowledge of the causal process at play, can win as often as he wants to.

Now, I don't think Rob can really read, so its no surprise that he missed that his own example makes the point I am making. But Ken???

11 comments:

  1. Well, I accept that I initially misunderstood the quote from your initial post on this issue (though actually I accused no-one of anything - I just asked a clarifying question that unfortunately laid itself open to unintended interpretation, for which I apologized).

    But I think your other comments here are a a little unfair as all my comments have been about the ability of statistical analysis to identify the hot hands streaks just by looking at the outcomes. It seems trivially obvious (even to someone my limited intellect and reading ability) that if you have inside knowledge that something is more likely to happen than the odds you can get by betting on that outcome then you could make money by betting on it.

    ReplyDelete
  2. Gene
    Of course you clean up here, having inside information. But the hot hand is a debate about whether the string of observable results caries information allowing you to beat the average. Let's make your information visible.
    So imagine you print G when GENE_BET and H when not, so your string is a series of X,O,G,H. Now an observer can grok to bet on X following G, and on O following H. The question then is, does a series of X's every have the same effect as an H? Can I from XXX infer G and thus bet on X and be a winner? That is the question. And it's a question about observations in the results.

    (
    I agree with you that hot hand happens, but I doubt it is truly undetectable. )

    ReplyDelete
    Replies
    1. "But the hot hand is a debate about whether the string of observable results caries information allowing you to beat the average."

      Ken! I UNDERSTAND that's what TGV says it is about. I COMPLETELY get what their contention is!

      But I DISPUTE their claim. I say they CONFUTED 2 issues:
      1) Are hot hands detectable?
      2) Do hot hands exist?

      Their paper addressed 1, but per a CORRECT definition of a hot hand, I claim it did not address 2.

      So PLEASE stop explaining to me how TGV defined hot hands!! I get how they defined it.

      Delete
    2. "having inside information"

      And this is just wrong, when either you or rob say it: the important point is *more* information, not "inside" information. The card pro reading the mark's tells does not have "inside" information: these things are going on "inside" the tell! And the tells are 100% public. He can just read them, while the amateurs can't.

      Delete
    3. I would concede that point. If you have knowledge from any source that leads you to know something is more likely to happen than the odds you can get by betting on that outcome then you could make money from that knowledge.

      But to nitpick in return: When you say "and can be bet on successfully by anyone who knows they exist", actually you not only have to know that they exist but also when they exist. Anyone who has access to your source code would know that "hot-hand" states exist, but they would need access to the runtime state of the program to actually be able to successfully bet on outcomes,

      Delete
    4. That's obviously what I meant rob.

      Delete
    5. Gene,
      In the program, knowledge of the variable Is inside information.

      As has been noted, a streak of length one is not a hot hand. Cannot have dependency in that case. Reposition the hot flip outside the loop and see what happens. You will see Matt is right that you implicitly rely on length 1.

      Delete
    6. "In the program, knowledge of the variable Is inside information."

      Completely irrelevant, as my new posts shows.

      "As has been noted, a streak of length one is not a hot hand."

      You keep arguing over the definition. Have I ever mentioned THAT I AM DISPUTING YOUR DEFINITION?! Oh, right, I've mentioned about a dozen times now.

      "Reposition the hot flip outside the loop and see what happens."

      Ken, I have been programming for 30 years. I don't have to "see what happens." I put the flip inside the loop for a reason!

      "You will see Matt is right that you implicitly rely on length 1."

      Nope. No reliance on length 1 at all. The hot hand might got for a dozen shots.

      Delete
  3. I appreciate the argument. But starting your model with "assume all streaks are of length one" is worse than "assume a spherical cow". The latter is a crude approximation, but at least I could conceivably make a meatball.

    ReplyDelete
    Replies
    1. Luckily, I don't make any such assumption!

      Delete
  4. This could make for a very interesting experiment:

    Create an app or web site that lets expert users place real-time bets on whether or not a particular player will make their next shot. Allow the users to update their bets at any time to account for new information (game flow, changes in teammates, score differential...).

    I'll meta-wager that those expert users will beat the house, based on their ability to intuitively process information that can't be conveniently modeled as "outcomes".

    ReplyDelete

Euphemisms II

It's not just abortion where these euphemisms bug me either. I think it is sometimes OK to euthanize your pet, but... you did not "...