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)

?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"
table(sim_unfair_coin)
## 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=