# 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==