# Load necessary packages
library(tidyverse)
library(openintro)

# Load the Kobe Bryant shot data
data(kobe_basket)

# Get a glimpse of the data
glimpse(kobe_basket)
## Rows: 133
## Columns: 6
## $ vs          <fct> ORL, ORL, ORL, ORL, ORL, ORL, ORL, ORL, ORL, ORL, ORL, ORL…
## $ game        <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ quarter     <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3…
## $ time        <fct> 9:47, 9:07, 8:11, 7:41, 7:03, 6:01, 4:07, 0:52, 0:00, 6:35…
## $ description <fct> Kobe Bryant makes 4-foot two point shot, Kobe Bryant misse…
## $ shot        <chr> "H", "M", "M", "H", "H", "M", "M", "M", "M", "H", "H", "H"…

Exercise 1 Streak Length Definitions

Question:

What does a streak length of 1 mean, i.e. how many hits and misses are in a streak of 1? What about a streak length of 0?

Answer:

A streak length of 1 means that only one basket was made before a miss occurred. It indicates one hit followed by a miss. A streak length of 0 indicates a missed shot.

Exercise 2 Kobe’s Streaks Distribution

Question:

Describe the distribution of Kobe’s streak lengths from the 2009 NBA finals. What was his typical streak length? How long was his longest streak of baskets? Make sure to include the accompanying plot in your answer.

Answer:

Kobe’s typical streak length was zero baskets. His longest streak length was 4 baskets.

# Calculate Kobe's streaks
kobe_streak <- calc_streak(kobe_basket$shot)

# Visualize the distribution of Kobe's streak lengths
ggplot(data = kobe_streak, aes(x = length)) +
  geom_bar() +
  labs(title = "Distribution of Kobe's Streak Lengths", x = "Streak Length", y = "Count")

Exercise 3 Unfair Coin FLip

Question:

In your simulation of flipping the unfair coin 100 times, how many flips came up heads?

Answer:

The heads came up only 22 times in the unfair coin flip.

# Set a seed for reproducibility
set.seed(35797)

# Simulate flipping an unfair coin 100 times (20% heads, 80% tails)
coin_outcomes <- c("heads", "tails")
sim_unfair_coin <- sample(coin_outcomes, size = 100, replace = TRUE, prob = c(0.2, 0.8))

# View the results and count the number of heads and tails
table(sim_unfair_coin)
## sim_unfair_coin
## heads tails 
##    26    74

Exercise 4 Stimulating an Independent Shooter

Question:

What change needs to be made to the sample function so that it reflects a shooting percentage of 45%?

Answer:

The prob argument needs to be set to c(0.45, 0.55) to reflect a shooting percentage of 45% hits and 55% misses.

# Set a seed for reproducibility
set.seed(35797)

# Simulate 133 shots with a 45% shooting percentage
shot_outcomes <- c("H", "M")
sim_basket <- sample(shot_outcomes, size = 133, replace = TRUE, prob = c(0.45, 0.55))

# View the results and count the number of hits and misses
table(sim_basket)
## sim_basket
##  H  M 
## 63 70

More Practice

Comparing Kobe Bryant to the Independent Shooter

Exercise 5 Distribution of Streak Lengths for Independent Shooter

# Calculate the streak lengths for the simulated shooter
sim_streak <- calc_streak(sim_basket)

Exercise 6 Describe the Distribution of Streak Lengths

Question:

Describe the distribution of streak lengths. What is the typical streak length for this simulated independent shooter with a 45% shooting percentage? How long is the player’s longest streak of baskets in 133 shots? Make sure to include a plot in your answer.

Answer:

The typical streak length for the simulated independent shooter is zero baskets. The longest streak length for the simulated shooter is 5 baskets.

# Visualize the distribution of the simulated shooter's streak lengths
ggplot(data = sim_streak, aes(x = length)) +
  geom_bar() +
  labs(title = "Distribution of Simulated Shooter's Streak Lengths", x = "Streak Length", y = "Count")

Exercise 7 Expected Distribution of Streak Lengths for a Second Simulation

Question:

If you were to run the simulation of the independent shooter a second time, how would you expect its streak distribution to compare to the distribution from the question above? Exactly the same? Somewhat similar? Totally different? Explain your reasoning.

Answer:

The distribution would be somewhat similar but not exactly the same. Since the simulations are based on random sampling, there will be some variability between different runs. However, the overall pattern of the distribution should be similar given the same probabilities. This is due to the law of large numbers, which suggests that as the number of trials increases, the sample distribution will approximate the expected distribution.

Exercise 8 Comparison of Kobe Bryant’s Distribution to Simulated Shooter

Question:

How does Kobe Bryant’s distribution of streak lengths compare to the distribution of streak lengths for the simulated shooter? Using this comparison, do you have evidence that the hot hand model fits Kobe’s shooting patterns? Explain.

Answer:

Kobe Bryant’s distribution of streak lengths is somewhat similar to the distribution of streak lengths for the simulated shooter. This similarity suggests that Kobe’s shooting streaks may not be significantly different from what we would expect if his shots were independent. Therefore, based on this comparison, there is no strong evidence to support the hot hand model for Kobe’s shooting patterns.

LS0tCnRpdGxlOiAiSG90IEhhbmRzIExhYiIKYXV0aG9yOiAiWWFzaC5LIgpkYXRlOiAiMDYvMDYvMjAyNCIKb3V0cHV0OiBvcGVuaW50cm86OmxhYl9yZXBvcnQKLS0tCgpgYGB7ciBsb2FkLXBhY2thZ2VzLCBtZXNzYWdlPUZBTFNFfQojIExvYWQgbmVjZXNzYXJ5IHBhY2thZ2VzCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KG9wZW5pbnRybykKCiMgTG9hZCB0aGUgS29iZSBCcnlhbnQgc2hvdCBkYXRhCmRhdGEoa29iZV9iYXNrZXQpCgojIEdldCBhIGdsaW1wc2Ugb2YgdGhlIGRhdGEKZ2xpbXBzZShrb2JlX2Jhc2tldCkKYGBgCgojIyMgRXhlcmNpc2UgMSBTdHJlYWsgTGVuZ3RoIERlZmluaXRpb25zCgojIyMjIFF1ZXN0aW9uOiAKV2hhdCBkb2VzIGEgc3RyZWFrIGxlbmd0aCBvZiAxIG1lYW4sIGkuZS4gaG93IG1hbnkgaGl0cyBhbmQgbWlzc2VzIGFyZSBpbiBhIHN0cmVhayBvZiAxPyBXaGF0IGFib3V0IGEgc3RyZWFrIGxlbmd0aCBvZiAwPwoKIyMjIyBBbnN3ZXI6CkEgc3RyZWFrIGxlbmd0aCBvZiAxIG1lYW5zIHRoYXQgb25seSBvbmUgYmFza2V0IHdhcyBtYWRlIGJlZm9yZSBhIG1pc3Mgb2NjdXJyZWQuIEl0IGluZGljYXRlcyBvbmUgaGl0IGZvbGxvd2VkIGJ5IGEgbWlzcy4KQSBzdHJlYWsgbGVuZ3RoIG9mIDAgaW5kaWNhdGVzIGEgbWlzc2VkIHNob3QuCgojIyMgRXhlcmNpc2UgMiBLb2JlJ3MgU3RyZWFrcyBEaXN0cmlidXRpb24KCiMjIyMgUXVlc3Rpb246IApEZXNjcmliZSB0aGUgZGlzdHJpYnV0aW9uIG9mIEtvYmXigJlzIHN0cmVhayBsZW5ndGhzIGZyb20gdGhlIDIwMDkgTkJBIGZpbmFscy4gV2hhdCB3YXMgaGlzIHR5cGljYWwgc3RyZWFrIGxlbmd0aD8gSG93IGxvbmcgd2FzIGhpcyBsb25nZXN0IHN0cmVhayBvZiBiYXNrZXRzPyBNYWtlIHN1cmUgdG8gaW5jbHVkZSB0aGUgYWNjb21wYW55aW5nIHBsb3QgaW4geW91ciBhbnN3ZXIuCgojIyMjIEFuc3dlcjoKS29iZSdzIHR5cGljYWwgc3RyZWFrIGxlbmd0aCB3YXMgemVybyBiYXNrZXRzLgpIaXMgbG9uZ2VzdCBzdHJlYWsgbGVuZ3RoIHdhcyA0IGJhc2tldHMuCgpgYGB7ciB0cmVuZC1naXJsc30KIyBDYWxjdWxhdGUgS29iZSdzIHN0cmVha3MKa29iZV9zdHJlYWsgPC0gY2FsY19zdHJlYWsoa29iZV9iYXNrZXQkc2hvdCkKCiMgVmlzdWFsaXplIHRoZSBkaXN0cmlidXRpb24gb2YgS29iZSdzIHN0cmVhayBsZW5ndGhzCmdncGxvdChkYXRhID0ga29iZV9zdHJlYWssIGFlcyh4ID0gbGVuZ3RoKSkgKwogIGdlb21fYmFyKCkgKwogIGxhYnModGl0bGUgPSAiRGlzdHJpYnV0aW9uIG9mIEtvYmUncyBTdHJlYWsgTGVuZ3RocyIsIHggPSAiU3RyZWFrIExlbmd0aCIsIHkgPSAiQ291bnQiKQoKYGBgCgoKIyMjIEV4ZXJjaXNlIDMgVW5mYWlyIENvaW4gRkxpcCAKCiMjIyMgUXVlc3Rpb246IApJbiB5b3VyIHNpbXVsYXRpb24gb2YgZmxpcHBpbmcgdGhlIHVuZmFpciBjb2luIDEwMCB0aW1lcywgaG93IG1hbnkgZmxpcHMgY2FtZSB1cCBoZWFkcz8KCiMjIyMgQW5zd2VyOiAKVGhlIGhlYWRzIGNhbWUgdXAgb25seSAyMiB0aW1lcyBpbiB0aGUgdW5mYWlyIGNvaW4gZmxpcC4KCmBgYHtyIHBsb3QtcHJvcC1ib3lzLWFyYnV0aG5vdH0KIyBTZXQgYSBzZWVkIGZvciByZXByb2R1Y2liaWxpdHkKc2V0LnNlZWQoMzU3OTcpCgojIFNpbXVsYXRlIGZsaXBwaW5nIGFuIHVuZmFpciBjb2luIDEwMCB0aW1lcyAoMjAlIGhlYWRzLCA4MCUgdGFpbHMpCmNvaW5fb3V0Y29tZXMgPC0gYygiaGVhZHMiLCAidGFpbHMiKQpzaW1fdW5mYWlyX2NvaW4gPC0gc2FtcGxlKGNvaW5fb3V0Y29tZXMsIHNpemUgPSAxMDAsIHJlcGxhY2UgPSBUUlVFLCBwcm9iID0gYygwLjIsIDAuOCkpCgojIFZpZXcgdGhlIHJlc3VsdHMgYW5kIGNvdW50IHRoZSBudW1iZXIgb2YgaGVhZHMgYW5kIHRhaWxzCnRhYmxlKHNpbV91bmZhaXJfY29pbikKCmBgYAoKCiMjIyBFeGVyY2lzZSA0IFN0aW11bGF0aW5nIGFuIEluZGVwZW5kZW50IFNob290ZXIgCgojIyMjIFF1ZXN0aW9uOiAKV2hhdCBjaGFuZ2UgbmVlZHMgdG8gYmUgbWFkZSB0byB0aGUgc2FtcGxlIGZ1bmN0aW9uIHNvIHRoYXQgaXQgcmVmbGVjdHMgYSBzaG9vdGluZyBwZXJjZW50YWdlIG9mIDQ1JT8KCiMjIyMgQW5zd2VyOiAKVGhlIHByb2IgYXJndW1lbnQgbmVlZHMgdG8gYmUgc2V0IHRvIGMoMC40NSwgMC41NSkgdG8gcmVmbGVjdCBhIHNob290aW5nIHBlcmNlbnRhZ2Ugb2YgNDUlIGhpdHMgYW5kIDU1JSBtaXNzZXMuCgpgYGB7ciBkaW0tcHJlc2VudH0KIyBTZXQgYSBzZWVkIGZvciByZXByb2R1Y2liaWxpdHkKc2V0LnNlZWQoMzU3OTcpCgojIFNpbXVsYXRlIDEzMyBzaG90cyB3aXRoIGEgNDUlIHNob290aW5nIHBlcmNlbnRhZ2UKc2hvdF9vdXRjb21lcyA8LSBjKCJIIiwgIk0iKQpzaW1fYmFza2V0IDwtIHNhbXBsZShzaG90X291dGNvbWVzLCBzaXplID0gMTMzLCByZXBsYWNlID0gVFJVRSwgcHJvYiA9IGMoMC40NSwgMC41NSkpCgojIFZpZXcgdGhlIHJlc3VsdHMgYW5kIGNvdW50IHRoZSBudW1iZXIgb2YgaGl0cyBhbmQgbWlzc2VzCnRhYmxlKHNpbV9iYXNrZXQpCgpgYGAKCgojIyBNb3JlIFByYWN0aWNlICAKCiMjIyBDb21wYXJpbmcgS29iZSBCcnlhbnQgdG8gdGhlIEluZGVwZW5kZW50IFNob290ZXIKCiMjIyBFeGVyY2lzZSA1IERpc3RyaWJ1dGlvbiBvZiBTdHJlYWsgTGVuZ3RocyBmb3IgSW5kZXBlbmRlbnQgU2hvb3RlciAKCgpgYGB7ciBjb3VudC1jb21wYXJlfQojIENhbGN1bGF0ZSB0aGUgc3RyZWFrIGxlbmd0aHMgZm9yIHRoZSBzaW11bGF0ZWQgc2hvb3RlcgpzaW1fc3RyZWFrIDwtIGNhbGNfc3RyZWFrKHNpbV9iYXNrZXQpCmBgYAoKCiMjIyBFeGVyY2lzZSA2IERlc2NyaWJlIHRoZSBEaXN0cmlidXRpb24gb2YgU3RyZWFrIExlbmd0aHMKCiMjIyMgUXVlc3Rpb246IApEZXNjcmliZSB0aGUgZGlzdHJpYnV0aW9uIG9mIHN0cmVhayBsZW5ndGhzLiBXaGF0IGlzIHRoZSB0eXBpY2FsIHN0cmVhayBsZW5ndGggZm9yIHRoaXMgc2ltdWxhdGVkIGluZGVwZW5kZW50IHNob290ZXIgd2l0aCBhIDQ1JSBzaG9vdGluZyBwZXJjZW50YWdlPyBIb3cgbG9uZyBpcyB0aGUgcGxheWVy4oCZcyBsb25nZXN0IHN0cmVhayBvZiBiYXNrZXRzIGluIDEzMyBzaG90cz8gTWFrZSBzdXJlIHRvIGluY2x1ZGUgYSBwbG90IGluIHlvdXIgYW5zd2VyLgoKIyMjIyBBbnN3ZXI6ClRoZSB0eXBpY2FsIHN0cmVhayBsZW5ndGggZm9yIHRoZSBzaW11bGF0ZWQgaW5kZXBlbmRlbnQgc2hvb3RlciBpcyB6ZXJvIGJhc2tldHMuClRoZSBsb25nZXN0IHN0cmVhayBsZW5ndGggZm9yIHRoZSBzaW11bGF0ZWQgc2hvb3RlciBpcyA1IGJhc2tldHMuCgpgYGB7ciBwbG90LXByb3AtYm95cy1wcmVzZW50fQojIFZpc3VhbGl6ZSB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSBzaW11bGF0ZWQgc2hvb3RlcidzIHN0cmVhayBsZW5ndGhzCmdncGxvdChkYXRhID0gc2ltX3N0cmVhaywgYWVzKHggPSBsZW5ndGgpKSArCiAgZ2VvbV9iYXIoKSArCiAgbGFicyh0aXRsZSA9ICJEaXN0cmlidXRpb24gb2YgU2ltdWxhdGVkIFNob290ZXIncyBTdHJlYWsgTGVuZ3RocyIsIHggPSAiU3RyZWFrIExlbmd0aCIsIHkgPSAiQ291bnQiKQoKYGBgCgoKIyMjIEV4ZXJjaXNlIDcgRXhwZWN0ZWQgRGlzdHJpYnV0aW9uIG9mIFN0cmVhayBMZW5ndGhzIGZvciBhIFNlY29uZCBTaW11bGF0aW9uCgojIyMjIFF1ZXN0aW9uOiAKSWYgeW91IHdlcmUgdG8gcnVuIHRoZSBzaW11bGF0aW9uIG9mIHRoZSBpbmRlcGVuZGVudCBzaG9vdGVyIGEgc2Vjb25kIHRpbWUsIGhvdyB3b3VsZCB5b3UgZXhwZWN0IGl0cyBzdHJlYWsgZGlzdHJpYnV0aW9uIHRvIGNvbXBhcmUgdG8gdGhlIGRpc3RyaWJ1dGlvbiBmcm9tIHRoZSBxdWVzdGlvbiBhYm92ZT8gRXhhY3RseSB0aGUgc2FtZT8gU29tZXdoYXQgc2ltaWxhcj8gVG90YWxseSBkaWZmZXJlbnQ/IEV4cGxhaW4geW91ciByZWFzb25pbmcuCgojIyMjIEFuc3dlcjoKVGhlIGRpc3RyaWJ1dGlvbiB3b3VsZCBiZSBzb21ld2hhdCBzaW1pbGFyIGJ1dCBub3QgZXhhY3RseSB0aGUgc2FtZS4gU2luY2UgdGhlIHNpbXVsYXRpb25zIGFyZSBiYXNlZCBvbiByYW5kb20gc2FtcGxpbmcsIHRoZXJlIHdpbGwgYmUgc29tZSB2YXJpYWJpbGl0eSBiZXR3ZWVuIGRpZmZlcmVudCBydW5zLiBIb3dldmVyLCB0aGUgb3ZlcmFsbCBwYXR0ZXJuIG9mIHRoZSBkaXN0cmlidXRpb24gc2hvdWxkIGJlIHNpbWlsYXIgZ2l2ZW4gdGhlIHNhbWUgcHJvYmFiaWxpdGllcy4gVGhpcyBpcyBkdWUgdG8gdGhlIGxhdyBvZiBsYXJnZSBudW1iZXJzLCB3aGljaCBzdWdnZXN0cyB0aGF0IGFzIHRoZSBudW1iZXIgb2YgdHJpYWxzIGluY3JlYXNlcywgdGhlIHNhbXBsZSBkaXN0cmlidXRpb24gd2lsbCBhcHByb3hpbWF0ZSB0aGUgZXhwZWN0ZWQgZGlzdHJpYnV0aW9uLgoKCiMjIyBFeGVyY2lzZSA4IENvbXBhcmlzb24gb2YgS29iZSBCcnlhbnTigJlzIERpc3RyaWJ1dGlvbiB0byBTaW11bGF0ZWQgU2hvb3RlcgoKIyMjIyBRdWVzdGlvbjogCkhvdyBkb2VzIEtvYmUgQnJ5YW504oCZcyBkaXN0cmlidXRpb24gb2Ygc3RyZWFrIGxlbmd0aHMgY29tcGFyZSB0byB0aGUgZGlzdHJpYnV0aW9uIG9mIHN0cmVhayBsZW5ndGhzIGZvciB0aGUgc2ltdWxhdGVkIHNob290ZXI/IFVzaW5nIHRoaXMgY29tcGFyaXNvbiwgZG8geW91IGhhdmUgZXZpZGVuY2UgdGhhdCB0aGUgaG90IGhhbmQgbW9kZWwgZml0cyBLb2Jl4oCZcyBzaG9vdGluZyBwYXR0ZXJucz8gRXhwbGFpbi4KCiMjIyMgQW5zd2VyOgpLb2JlIEJyeWFudCdzIGRpc3RyaWJ1dGlvbiBvZiBzdHJlYWsgbGVuZ3RocyBpcyBzb21ld2hhdCBzaW1pbGFyIHRvIHRoZSBkaXN0cmlidXRpb24gb2Ygc3RyZWFrIGxlbmd0aHMgZm9yIHRoZSBzaW11bGF0ZWQgc2hvb3Rlci4gVGhpcyBzaW1pbGFyaXR5IHN1Z2dlc3RzIHRoYXQgS29iZSdzIHNob290aW5nIHN0cmVha3MgbWF5IG5vdCBiZSBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBmcm9tIHdoYXQgd2Ugd291bGQgZXhwZWN0IGlmIGhpcyBzaG90cyB3ZXJlIGluZGVwZW5kZW50LiBUaGVyZWZvcmUsIGJhc2VkIG9uIHRoaXMgY29tcGFyaXNvbiwgdGhlcmUgaXMgbm8gc3Ryb25nIGV2aWRlbmNlIHRvIHN1cHBvcnQgdGhlIGhvdCBoYW5kIG1vZGVsIGZvciBLb2JlJ3Mgc2hvb3RpbmcgcGF0dGVybnMuCgoKCg==