download.file(“http://www.openintro.org/stat/data/kobe.RData”, destfile = “kobe.RData”)
load("kobe.RData") # Kobe's shooting stats in few games
head(kobe)
## vs game quarter time description
## 1 ORL 1 1 9:47 Kobe Bryant makes 4-foot two point shot
## 2 ORL 1 1 9:07 Kobe Bryant misses jumper
## 3 ORL 1 1 8:11 Kobe Bryant misses 7-foot jumper
## 4 ORL 1 1 7:41 Kobe Bryant makes 16-foot jumper (Derek Fisher assists)
## 5 ORL 1 1 7:03 Kobe Bryant makes driving layup
## 6 ORL 1 1 6:01 Kobe Bryant misses jumper
## basket
## 1 H
## 2 M
## 3 M
## 4 H
## 5 H
## 6 M
tail(kobe)
## vs game quarter time description basket
## 128 ORL 3 4 3:57 Bryant Jump Shot: Made (28 PTS) H
## 129 ORL 3 4 3:33 Bryant Layup Shot: Missed M
## 130 ORL 3 4 2:02 Bryant 3pt Shot: Missed M
## 131 ORL 3 4 00:23.9 Bryant 3pt Shot: Missed M
## 132 ORL 3 4 00:06.9 Bryant 3pt Shot: Missed M
## 133 ORL 3 4 00:00.5 Bryant Layup Shot: Made (31 PTS) H
dim(kobe)
## [1] 133 6
kobe$basket[1:9] ## what is another way to get the same data??? kobe[1:9,6]
A streak length of 1 means one hit followed by a miss In a streak of 1, there are 6 misses and 3 hits A streak length of 0 means that a miss will first occur after a miss that ended the preceding streak.
kobe_streak <- calc_streak(kobe$basket)
## Lets see how this looks...
kobe_streak
## [1] 1 0 2 0 0 0 3 2 0 3 0 1 3 0 0 0 0 0 1 1 0 4 1 0 1 0 1 0 1 2 0 1 2 1 0 0 1 0
## [39] 0 0 1 1 0 1 0 2 0 0 0 3 0 1 0 1 2 1 0 1 0 0 1 3 3 1 1 0 0 0 0 0 1 1 0 0 0 1
barplot(table(kobe_streak))
table(kobe$basket)/133
##
## H M
## 0.4360902 0.5639098
Distribution is right skewed.
The typical streak length is 0.
Longest streak is 4.
#define the outcomes
outcomes <- c("heads", "tails")
sample(outcomes, size = 1, replace = TRUE)
## [1] "tails"
sim_fair_coin <- sample(outcomes, size = 100, replace = TRUE)
sim_fair_coin
## [1] "tails" "heads" "tails" "tails" "heads" "heads" "tails" "tails" "heads"
## [10] "tails" "tails" "tails" "heads" "tails" "tails" "heads" "tails" "heads"
## [19] "heads" "heads" "tails" "heads" "heads" "tails" "tails" "tails" "tails"
## [28] "tails" "tails" "heads" "tails" "heads" "tails" "tails" "heads" "tails"
## [37] "tails" "tails" "heads" "tails" "heads" "tails" "heads" "tails" "tails"
## [46] "tails" "heads" "tails" "tails" "tails" "tails" "heads" "tails" "heads"
## [55] "tails" "heads" "heads" "tails" "tails" "tails" "tails" "heads" "tails"
## [64] "heads" "heads" "tails" "heads" "tails" "tails" "heads" "heads" "tails"
## [73] "tails" "tails" "heads" "tails" "tails" "tails" "heads" "heads" "tails"
## [82] "tails" "tails" "tails" "tails" "tails" "heads" "tails" "tails" "heads"
## [91] "heads" "tails" "heads" "tails" "tails" "tails" "heads" "heads" "heads"
## [100] "heads"
#The vector outcomes can be thought of as a hat with two slips of paper in it: one slip says heads # and the other says tails . The function sample draws one slip from the hat and tells us if it was # a head or a tail.
sim_fair_coin <- sample(outcomes, size = 100, replace = TRUE)
sim_fair_coin
## [1] "heads" "tails" "tails" "tails" "tails" "heads" "heads" "heads" "tails"
## [10] "tails" "heads" "tails" "tails" "tails" "heads" "tails" "heads" "heads"
## [19] "tails" "heads" "tails" "tails" "heads" "tails" "heads" "heads" "tails"
## [28] "tails" "heads" "tails" "heads" "heads" "heads" "tails" "heads" "tails"
## [37] "heads" "tails" "heads" "heads" "tails" "tails" "heads" "tails" "tails"
## [46] "tails" "tails" "heads" "tails" "tails" "tails" "heads" "tails" "heads"
## [55] "heads" "tails" "tails" "tails" "tails" "tails" "heads" "tails" "heads"
## [64] "tails" "tails" "heads" "heads" "heads" "heads" "tails" "tails" "heads"
## [73] "tails" "tails" "heads" "heads" "heads" "tails" "tails" "tails" "heads"
## [82] "tails" "heads" "heads" "tails" "tails" "tails" "heads" "heads" "heads"
## [91] "tails" "tails" "heads" "tails" "tails" "tails" "tails" "heads" "heads"
## [100] "heads"
#set.seed(5)
sim_fair_coin <- sample(outcomes, size = 1000, replace = TRUE)
sim_fair_coin
## [1] "heads" "tails" "tails" "tails" "tails" "heads" "heads" "heads" "tails"
## [10] "tails" "heads" "tails" "tails" "tails" "heads" "tails" "heads" "heads"
## [19] "tails" "heads" "tails" "tails" "heads" "tails" "heads" "heads" "tails"
## [28] "tails" "heads" "tails" "heads" "heads" "heads" "tails" "heads" "tails"
## [37] "heads" "tails" "heads" "heads" "tails" "tails" "heads" "tails" "tails"
## [46] "tails" "tails" "heads" "tails" "tails" "tails" "heads" "tails" "heads"
## [55] "heads" "tails" "tails" "tails" "tails" "tails" "heads" "tails" "heads"
## [64] "tails" "tails" "heads" "heads" "heads" "heads" "tails" "tails" "heads"
## [73] "tails" "tails" "heads" "heads" "heads" "tails" "tails" "tails" "heads"
## [82] "tails" "heads" "heads" "tails" "tails" "tails" "heads" "heads" "heads"
## [91] "tails" "tails" "heads" "tails" "tails" "tails" "tails" "heads" "heads"
## [100] "heads"
table(sim_fair_coin)
## sim_fair_coin
## heads tails
## 45 55
table(sim_fair_coin)/1000
## sim_fair_coin
## heads tails
## 0.045 0.055
sim_unfair_coin <- sample(outcomes, size = 10000, replace = TRUE, prob = c(0.2, 0.8))
table(sim_unfair_coin)/1000
## sim_unfair_coin
## heads tails
## 2.028 7.972
table(sim_unfair_coin)
## sim_unfair_coin
## heads tails
## 2028 7972
outcomes <- c("H", "M")
sim_basket <- sample(outcomes, size = 1, replace = TRUE, prob = c(.5, 0.5))
outcomes <- c("H", "M")
sim_basket <- sample(outcomes, size = 133, replace = TRUE, prob = c(.436, 0.564))
sim_basket
## [1] "H" "M" "H" "M" "H" "H" "M" "M" "H" "H" "M" "M" "H" "M" "M" "H" "H" "H"
## [19] "H" "H" "H" "M" "M" "M" "M" "H" "M" "M" "M" "M" "H" "M" "M" "M" "H" "M"
## [37] "H" "M" "H" "H" "M" "M" "M" "M" "H" "M" "M" "H" "H" "M" "M" "M" "H" "H"
## [55] "H" "M" "M" "H" "M" "M" "H" "H" "M" "M" "M" "H" "M" "M" "M" "H" "H" "H"
## [73] "H" "H" "H" "H" "H" "H" "H" "H" "H" "H" "H" "M" "M" "H" "H" "H" "H" "H"
## [91] "M" "M" "H" "M" "H" "H" "H" "H" "M" "H" "M" "M" "M" "M" "H" "M" "M" "M"
## [109] "H" "M" "M" "M" "M" "M" "M" "M" "M" "H" "M" "H" "M" "M" "M" "M" "H" "H"
## [127] "M" "M" "H" "M" "H" "M" "M"
kobe$basket
## [1] "H" "M" "M" "H" "H" "M" "M" "M" "M" "H" "H" "H" "M" "H" "H" "M" "M" "H"
## [19] "H" "H" "M" "M" "H" "M" "H" "H" "H" "M" "M" "M" "M" "M" "M" "H" "M" "H"
## [37] "M" "M" "H" "H" "H" "H" "M" "H" "M" "M" "H" "M" "M" "H" "M" "M" "H" "M"
## [55] "H" "H" "M" "M" "H" "M" "H" "H" "M" "H" "M" "M" "M" "H" "M" "M" "M" "M"
## [73] "H" "M" "H" "M" "M" "H" "M" "M" "H" "H" "M" "M" "M" "M" "H" "H" "H" "M"
## [91] "M" "H" "M" "M" "H" "M" "H" "H" "M" "H" "M" "M" "H" "M" "M" "M" "H" "M"
## [109] "H" "H" "H" "M" "H" "H" "H" "M" "H" "M" "H" "M" "M" "M" "M" "M" "M" "H"
## [127] "M" "H" "M" "M" "M" "M" "H"
sim_basket
## [1] "H" "M" "H" "M" "H" "H" "M" "M" "H" "H" "M" "M" "H" "M" "M" "H" "H" "H"
## [19] "H" "H" "H" "M" "M" "M" "M" "H" "M" "M" "M" "M" "H" "M" "M" "M" "H" "M"
## [37] "H" "M" "H" "H" "M" "M" "M" "M" "H" "M" "M" "H" "H" "M" "M" "M" "H" "H"
## [55] "H" "M" "M" "H" "M" "M" "H" "H" "M" "M" "M" "H" "M" "M" "M" "H" "H" "H"
## [73] "H" "H" "H" "H" "H" "H" "H" "H" "H" "H" "H" "M" "M" "H" "H" "H" "H" "H"
## [91] "M" "M" "H" "M" "H" "H" "H" "H" "M" "H" "M" "M" "M" "M" "H" "M" "M" "M"
## [109] "H" "M" "M" "M" "M" "M" "M" "M" "M" "H" "M" "H" "M" "M" "M" "M" "H" "H"
## [127] "M" "M" "H" "M" "H" "M" "M"
calc_streak(sim_basket)
## [1] 1 1 2 0 2 0 1 0 6 0 0 0 1 0 0 0 1 0 0 1 1 2 0 0 0
## [26] 1 0 2 0 0 3 0 1 0 2 0 0 1 0 0 14 0 5 0 1 4 1 0 0 0
## [51] 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 2 0 1 1 0 0
barplot(table(calc_streak(sim_basket)))
#############################################################################
##.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?
The distribution is right skewed.
The typical streak length is 0.
The longest streak of baskets is length 6.
It would be similar.
Kobe’s streaks are shorter in length. Conclusion is that shots are independent and hot hand model doesn’t fit.