Esta análise foi feita com base em dados que trazem a contagem de quantas pessoas que editaram arquivos com diferentes extensões em cada dia dos anos de 2016 e 2017 no GitHub, escolhendo duas linguagens de programação: java e javascript.
Os dados trazem as seguintes colunas: file_extension: Extensão do arquivo, por onde veremos qual foi a linguagem de programação utilizada, month_day: Dia do mês, the_month: Mês do ano, the_year: Ano, users: Quantidade de usuários.
Aos dados originais foram acrescentadas as colunas date(data), week_day(dia da semana), weekend(se é fim de semana) e month(que é a abreviação do mês correspondente).
github = read_csv("https://raw.githubusercontent.com/nazareno/fpcc2/master/datasets/github-users-committing-filetypes.csv")
github = github %>%
mutate(
date = as.Date(paste(the_year, the_month, month_day, sep='-'), format = "%Y-%m-%d"),
week_day = wday(date),
weekend = isWeekend(date),
month = as.character(month(ymd(010101)+months(the_month-1), label=TRUE, abbr=TRUE)))
Aqui a estatística adotada para medir popularidade foi a mediana, por esta não ser afetada por valores extremos como a média.
java <- github %>% filter(file_extension == 'java')
java %>%
group_by(weekend) %>%
ggplot(aes(x = weekend,
y = users)) +
geom_boxplot(width = .5, outlier.colour = "red", outlier.shape = 1, outlier.size = 2) +
ggtitle("Popularidade java") +
labs(x = "É final de semana?", y = "Quantidade de Usuários")
Com a mediana obtida no boxplot acima, vemos que a linguagem Java é mais popular nos dias de semana do que nos finais de semana. Podemos confirmar esse fato no gráfico que segue:
java_weekend = java %>%
filter(weekend) %>%
bootstrap(median(users),
R = 2000) %>%
CI.percentile(probs = c(.025, .975))
java_week = java %>%
filter(!weekend) %>%
bootstrap(median(users),
R = 2000) %>%
CI.percentile(probs = c(.025, .975))
df_java = data.frame(rbind(java_weekend, java_week))
df_java$medida = c("Final de semana", "Dia de semana")
df_java %>%
ggplot(aes(x = medida, ymin = X2.5., ymax = X97.5.)) +
geom_errorbar(width = .2) +
labs(x = "")
Assim como aconteceu com Java, vemos que Javscript também é mais popular aos fins de semana.
js <- github %>% filter(file_extension == 'js')
js %>%
group_by(weekend) %>%
ggplot(aes(x = weekend,
y = users)) +
geom_boxplot(width = .5, outlier.colour = "red", outlier.shape = 1, outlier.size = 2) +
ggtitle("Popularidade Javascript") +
labs(x = "É final de semana?", y = "Quantidade de Usuários")
Como os traços do gráfico abaixo não ocupam uma mesma faixa de valores, podemos afirmar que Javascript é mais popular durante a semana.
js_weekend = js %>%
filter(weekend) %>%
bootstrap(median(users),
R = 2000) %>%
CI.percentile(probs = c(.025, .975))
js_week = js %>%
filter(!weekend) %>%
bootstrap(median(users),
R = 2000) %>%
CI.percentile(probs = c(.025, .975))
df_js = data.frame(rbind(js_weekend, js_week))
df_js$medidajs = c("Final de semana", "Dia de semana")
df_js %>%
ggplot(aes(x = medidajs, ymin = X2.5., ymax = X97.5.)) +
geom_errorbar(width = .2) +
labs(x = "")
Sim, como vemos no gráfico abaixo, Javascript é mais popular do que Java nos finais de semana.
l1 = java %>%
filter(weekend) %>%
bootstrap(median(users))
median_java = l1 %>%
CI.percentile(probs = c(.025, .975))
l2 = js %>%
filter(weekend) %>%
bootstrap(median(users))
median_js = l2 %>%
CI.percentile(probs = c(.025, .975))
df.median = data.frame(rbind(median_java,
median_js))
df.median$medida = c("Java", "Javascript")
df.median %>%
ggplot(aes(x = medida, ymin = X2.5., ymax = X97.5.)) +
geom_errorbar(width = .2)