set.seed(12345)
lastfm = read_csv(here::here("data/experimento-lastfm.csv"),
col_types = cols(.default = col_double(),
user = col_character()))
lastfm = lastfm %>%
sample_n(300) %>%
select(news, old, mediana_pop)
glimpse(lastfm)
## Observations: 300
## Variables: 3
## $ news <dbl> 28, 35, 13, 24, 14, 17, 13, 21, 34, 55, 10, 33, 10, 217, …
## $ old <dbl> 61, 194, 70, 96, 130, 67, 106, 123, 76, 78, 76, 116, 119,…
## $ mediana_pop <dbl> 6.105585, 5.376812, 5.713082, 4.564335, 5.782320, 5.53259…
Utilizaremos ICs para estimar duas métricas sobre os usuários do LastFM em geral durante um período de 6 meses. Em ambos os casos faremos isso a partir de uma amostra de 300 usuários. As duas métricas são:
Crie intervalos com 95% de confiança.
lastfm = lastfm %>%
mutate(prop_news = news / (news + old))
lastfm
theta_c = lastfm %>%
summarise(media = mean(prop_news)) %>%
pull(media)
theta_c
## [1] 0.2483568
repeticoes = 4000 # pelo menos 2000, mas mais não faz mal.
um_bootstrap <- function(x){
prop = x %>% pull(prop_news)
boot_x <- sample(prop, # amostre dos dados
size = NROW(prop), # tamanho igual ao recebido
replace = TRUE) # aqui é o bootstrap
return(mean(boot_x))
}
set.seed(1212)
# A REAMOSTRAGEM
reamostragens = tibble(i = 1:repeticoes) %>%
mutate(theta_c_s = map_dbl(i, ~ um_bootstrap(lastfm)))
reamostragens
reamostragens %>%
ggplot(aes(x = theta_c_s)) +
geom_histogram(binwidth = 0.01,
colour = "darkorange",
fill = "white")
reamostragens %>%
ggplot(aes(x = theta_c_s - theta_c)) +
geom_histogram(binwidth = 0.01,
colour = "darkblue",
fill = "white")
intervalo = reamostragens %>%
mutate(erro = theta_c_s - theta_c) %>%
summarise(erro_i = quantile(erro, .05),
erro_s = quantile(erro, .95))
intervalo
intervalo = intervalo %>%
mutate(valor_i = theta_c + erro_i,
valor_s = theta_c + erro_s)
intervalo
Estima-se que é plausível que a média da proporção de artistas novos escutados por pessoas no Lastfm esteja entre 0.237 e 0.259 (IC com 95% de confiança)