library(tidyverse)
library(openintro)
library(ggformula)
library(mosaic)
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"…
kobe_streak <- calc_streak(kobe_basket$shot)
Exercise 1
The streak length of 1 means that he got one hit and 0 misses while
the streak length of 0 means he got one miss and 0 hits.
gf_bar(~length,data=kobe_streak)

## No documentation for 'kobe_streak' in specified packages and libraries:
## you could try '??kobe_streak'
Exercise 2
His typical streak length was typically 0. His longest streak was
4.
favstats(kobe_streak$length)
## min Q1 median Q3 max mean sd n missing
## 0 0 0 1 4 0.7631579 0.9915432 76 0
gf_boxplot(~length,data=kobe_streak)

gf_bar(~length,data=kobe_streak)

Exercise 3
When flipping the unfair coin 100 times, 21 would be heads while 79
would be tails.
coin_outcomes <- c("heads", "tails")
sample(coin_outcomes, size = 1, replace = TRUE)
## [1] "tails"
set.seed(7777)
sim_unfair_coin <- sample(coin_outcomes, size = 100, replace = TRUE,
prob = c(0.2, 0.8))
sim_unfair_coin
## [1] "tails" "tails" "tails" "heads" "tails" "heads" "heads" "tails" "tails"
## [10] "tails" "heads" "tails" "heads" "tails" "tails" "tails" "tails" "tails"
## [19] "heads" "tails" "heads" "tails" "heads" "tails" "tails" "tails" "tails"
## [28] "heads" "tails" "heads" "tails" "tails" "tails" "tails" "heads" "tails"
## [37] "tails" "tails" "tails" "tails" "tails" "tails" "tails" "tails" "heads"
## [46] "tails" "tails" "tails" "tails" "tails" "tails" "tails" "tails" "tails"
## [55] "tails" "tails" "heads" "tails" "heads" "tails" "tails" "tails" "tails"
## [64] "tails" "tails" "heads" "tails" "tails" "tails" "tails" "tails" "tails"
## [73] "tails" "tails" "tails" "heads" "heads" "tails" "tails" "tails" "tails"
## [82] "tails" "tails" "tails" "heads" "heads" "tails" "tails" "tails" "tails"
## [91] "tails" "heads" "tails" "tails" "tails" "tails" "heads" "tails" "tails"
## [100] "tails"
## sim_unfair_coin
## heads tails
## 21 79
Exercise 4
The probability of this changes from 50 hits 50 misses to 45 hits and
55 misses.
set.seed(56)
shot_outcomes <- c("H", "M")
sim_basket <- sample(shot_outcomes, size = 133, replace = TRUE)
sim_basket <- sample(shot_outcomes, size = 133, replace = TRUE,
prob = c(0.45, 0.55))
Exercise 5
We stored the calc_streak from the sim_baskets in the name of
sim_streak.
sim_streak <- calc_streak(sim_basket)
Exercise 6
When referring to the chart made, it is skewed to the left. The most
streaks ended up being either 0 or 1. The highest streak was a total of
10 baskets made and also the maximum of 6 when running favstats. The 10
definitely an outlier compared to the data in this and when looking at
the chart.
set.seed(13)
sim_streak <- calc_streak(sim_basket)
favstats(sim_streak$length)
## min Q1 median Q3 max mean sd n missing
## 0 0 0 1 10 0.7866667 1.50039 75 0
gf_bar(~length, data = sim_streak)

Exercise 7
If running this a second time the streak would be similar but will
have different result since running a random sample. The probability has
been set to .45 and .55 making these things similar, but the randomized
aspect of it differs. It would be extremely unlikely that this would be
the same when running again.
Exercise 8
When comparing Kobe’s streak to the independent, the independent
highest streak was 10 compared to Kobe’s which was only 4. Both graph
distributions are skewed to the left but the independent has an extreme
outlier of 10. Kobe stayed more consistent with a streak ranging from
0-4. The charts are skewed very similarly, but the outlier when doing
the random sample can be considered highly unlikely in a real life
scenario. Other than that the hothand could fit somewhat similarly.
The code we used compared Kobe’s streak vs the independent streak
side by side to help fully visualize how these charts are similar and
how they differ.
set.seed(11)
both <- bind_rows(
kobe_streak %>% mutate(source = "kobe_streak"),
sim_streak %>% mutate(source = "sim_streak"))
gf_histogram(~ length, data = both, fill = ~source, position = "dodge",
bins = 20, alpha = 0.7)

favstats(kobe_streak$length)
## min Q1 median Q3 max mean sd n missing
## 0 0 0 1 4 0.7631579 0.9915432 76 0
favstats(sim_streak$length)
## min Q1 median Q3 max mean sd n missing
## 0 0 0 1 10 0.7866667 1.50039 75 0
LS0tCnRpdGxlOiAiSG90aGFuZCBMYWIiCmF1dGhvcjogIkthZGllIGFuZCBNYWtlbm5hIgpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiCm91dHB1dDogb3BlbmludHJvOjpsYWJfcmVwb3J0Ci0tLQoKYGBge3IgbG9hZC1wYWNrYWdlcywgbWVzc2FnZT1GQUxTRX0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkob3BlbmludHJvKQpsaWJyYXJ5KGdnZm9ybXVsYSkKbGlicmFyeShtb3NhaWMpCgpnbGltcHNlKGtvYmVfYmFza2V0KQoKa29iZV9zdHJlYWsgPC0gY2FsY19zdHJlYWsoa29iZV9iYXNrZXQkc2hvdCkKYGBgCgojIyMgRXhlcmNpc2UgMQoKVGhlIHN0cmVhayBsZW5ndGggb2YgMSBtZWFucyB0aGF0IGhlIGdvdCBvbmUgaGl0IGFuZCAwIG1pc3NlcyB3aGlsZSB0aGUgc3RyZWFrIGxlbmd0aCBvZiAwIG1lYW5zIGhlIGdvdCBvbmUgbWlzcyBhbmQgMCBoaXRzLiAKCmBgYHtyIGNvZGUtY2h1bmstbGFiZWwxfQpnZl9iYXIofmxlbmd0aCxkYXRhPWtvYmVfc3RyZWFrKQo/a29iZV9zdHJlYWsKYGBgCgojIyMgRXhlcmNpc2UgMgpIaXMgdHlwaWNhbCBzdHJlYWsgbGVuZ3RoIHdhcyB0eXBpY2FsbHkgMC4gSGlzIGxvbmdlc3Qgc3RyZWFrIHdhcyA0LgoKYGBge3IgY29kZS1jaHVuay1sYWJlbDJ9CmZhdnN0YXRzKGtvYmVfc3RyZWFrJGxlbmd0aCkKZ2ZfYm94cGxvdCh+bGVuZ3RoLGRhdGE9a29iZV9zdHJlYWspCmdmX2Jhcih+bGVuZ3RoLGRhdGE9a29iZV9zdHJlYWspCgpgYGAKCiMjIyBFeGVyY2lzZSAzCldoZW4gZmxpcHBpbmcgdGhlIHVuZmFpciBjb2luIDEwMCB0aW1lcywgMjEgd291bGQgYmUgaGVhZHMgd2hpbGUgNzkgd291bGQgYmUgdGFpbHMuCgpgYGB7ciBjb2RlLWNodW5rLWxhYmVsM30KY29pbl9vdXRjb21lcyA8LSBjKCJoZWFkcyIsICJ0YWlscyIpCnNhbXBsZShjb2luX291dGNvbWVzLCBzaXplID0gMSwgcmVwbGFjZSA9IFRSVUUpCgpzZXQuc2VlZCg3Nzc3KQoKc2ltX3VuZmFpcl9jb2luIDwtIHNhbXBsZShjb2luX291dGNvbWVzLCBzaXplID0gMTAwLCByZXBsYWNlID0gVFJVRSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYiA9IGMoMC4yLCAwLjgpKQoKc2ltX3VuZmFpcl9jb2luCnRhYmxlKHNpbV91bmZhaXJfY29pbikKCmBgYAoKIyMjIEV4ZXJjaXNlIDQKVGhlIHByb2JhYmlsaXR5IG9mIHRoaXMgY2hhbmdlcyBmcm9tIDUwIGhpdHMgNTAgbWlzc2VzIHRvIDQ1IGhpdHMgYW5kIDU1IG1pc3Nlcy4gCgpgYGB7ciBjb2RlLWNodW5rLWxhYmVsNH0Kc2V0LnNlZWQoNTYpCnNob3Rfb3V0Y29tZXMgPC0gYygiSCIsICJNIikKc2ltX2Jhc2tldCA8LSBzYW1wbGUoc2hvdF9vdXRjb21lcywgc2l6ZSA9IDEzMywgcmVwbGFjZSA9IFRSVUUpCgpzaW1fYmFza2V0IDwtIHNhbXBsZShzaG90X291dGNvbWVzLCBzaXplID0gMTMzLCByZXBsYWNlID0gVFJVRSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYiA9IGMoMC40NSwgMC41NSkpCgoKYGBgCgojIyMgRXhlcmNpc2UgNQoKV2Ugc3RvcmVkIHRoZSBjYWxjX3N0cmVhayBmcm9tIHRoZSBzaW1fYmFza2V0cyBpbiB0aGUgbmFtZSBvZiBzaW1fc3RyZWFrLiAKCmBgYHtyIGNvZGUtY2h1bmstbGFiZWw1fQpzaW1fc3RyZWFrIDwtIGNhbGNfc3RyZWFrKHNpbV9iYXNrZXQpCgpgYGAKCiMjIyBFeGVyY2lzZSA2CldoZW4gcmVmZXJyaW5nIHRvIHRoZSBjaGFydCBtYWRlLCBpdCBpcyBza2V3ZWQgdG8gdGhlIGxlZnQuIFRoZSBtb3N0IHN0cmVha3MgZW5kZWQgdXAgYmVpbmcgZWl0aGVyIDAgb3IgMS4gVGhlIGhpZ2hlc3Qgc3RyZWFrIHdhcyBhIHRvdGFsIG9mIDEwIGJhc2tldHMgbWFkZSBhbmQgYWxzbyB0aGUgbWF4aW11bSBvZiA2IHdoZW4gcnVubmluZyBmYXZzdGF0cy4gVGhlIDEwIGRlZmluaXRlbHkgYW4gb3V0bGllciBjb21wYXJlZCB0byB0aGUgZGF0YSBpbiB0aGlzIGFuZCB3aGVuIGxvb2tpbmcgYXQgdGhlIGNoYXJ0LiAKCmBgYHtyIGNvZGUtY2h1bmstbGFiZWw2fQpzZXQuc2VlZCgxMykKc2ltX3N0cmVhayA8LSBjYWxjX3N0cmVhayhzaW1fYmFza2V0KQpmYXZzdGF0cyhzaW1fc3RyZWFrJGxlbmd0aCkKZ2ZfYmFyKH5sZW5ndGgsIGRhdGEgPSBzaW1fc3RyZWFrKQoKYGBgCgojIyMgRXhlcmNpc2UgNwpJZiBydW5uaW5nIHRoaXMgYSBzZWNvbmQgdGltZSB0aGUgc3RyZWFrIHdvdWxkIGJlIHNpbWlsYXIgYnV0IHdpbGwgaGF2ZSBkaWZmZXJlbnQgcmVzdWx0IHNpbmNlIHJ1bm5pbmcgYSByYW5kb20gc2FtcGxlLiBUaGUgcHJvYmFiaWxpdHkgaGFzIGJlZW4gc2V0IHRvIC40NSBhbmQgLjU1IG1ha2luZyB0aGVzZSB0aGluZ3Mgc2ltaWxhciwgYnV0IHRoZSByYW5kb21pemVkIGFzcGVjdCBvZiBpdCBkaWZmZXJzLiBJdCB3b3VsZCBiZSBleHRyZW1lbHkgdW5saWtlbHkgdGhhdCB0aGlzIHdvdWxkIGJlIHRoZSBzYW1lIHdoZW4gcnVubmluZyBhZ2Fpbi4gCgpgYGB7ciBjb2RlLWNodW5rLWxhYmVsN30KCgpgYGAKCiMjIyBFeGVyY2lzZSA4CldoZW4gY29tcGFyaW5nIEtvYmUncyBzdHJlYWsgdG8gdGhlIGluZGVwZW5kZW50LCB0aGUgaW5kZXBlbmRlbnQgaGlnaGVzdCBzdHJlYWsgd2FzIDEwIGNvbXBhcmVkIHRvIEtvYmUncyB3aGljaCB3YXMgb25seSA0LiBCb3RoIGdyYXBoIGRpc3RyaWJ1dGlvbnMgYXJlIHNrZXdlZCB0byB0aGUgbGVmdCBidXQgdGhlIGluZGVwZW5kZW50IGhhcyBhbiBleHRyZW1lIG91dGxpZXIgb2YgMTAuIEtvYmUgc3RheWVkIG1vcmUgY29uc2lzdGVudCB3aXRoIGEgc3RyZWFrIHJhbmdpbmcgZnJvbSAwLTQuIFRoZSBjaGFydHMgYXJlIHNrZXdlZCB2ZXJ5IHNpbWlsYXJseSwgYnV0IHRoZSBvdXRsaWVyIHdoZW4gZG9pbmcgdGhlIHJhbmRvbSBzYW1wbGUgY2FuIGJlIGNvbnNpZGVyZWQgaGlnaGx5IHVubGlrZWx5IGluIGEgcmVhbCBsaWZlIHNjZW5hcmlvLiBPdGhlciB0aGFuIHRoYXQgdGhlIGhvdGhhbmQgY291bGQgZml0IHNvbWV3aGF0IHNpbWlsYXJseS4gCgoKVGhlIGNvZGUgd2UgdXNlZCBjb21wYXJlZCBLb2JlJ3Mgc3RyZWFrIHZzIHRoZSBpbmRlcGVuZGVudCBzdHJlYWsgc2lkZSBieSBzaWRlIHRvIGhlbHAgZnVsbHkgdmlzdWFsaXplIGhvdyB0aGVzZSBjaGFydHMgYXJlIHNpbWlsYXIgYW5kIGhvdyB0aGV5IGRpZmZlci4gCgpgYGB7ciBjb2RlLWNodW5rLWxhYmVsOH0KCnNldC5zZWVkKDExKQpib3RoIDwtIGJpbmRfcm93cygKICBrb2JlX3N0cmVhayAlPiUgbXV0YXRlKHNvdXJjZSA9ICJrb2JlX3N0cmVhayIpLAogIHNpbV9zdHJlYWsgJT4lIG11dGF0ZShzb3VyY2UgPSAic2ltX3N0cmVhayIpKQpnZl9oaXN0b2dyYW0ofiBsZW5ndGgsIGRhdGEgPSBib3RoLCBmaWxsID0gfnNvdXJjZSwgcG9zaXRpb24gPSAiZG9kZ2UiLCAKICAgICAgICAgICAgIGJpbnMgPSAyMCwgYWxwaGEgPSAwLjcpCgpmYXZzdGF0cyhrb2JlX3N0cmVhayRsZW5ndGgpCgpmYXZzdGF0cyhzaW1fc3RyZWFrJGxlbmd0aCkKCmBgYAo=