library(tidyverse)
## ── Attaching packages ──────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 3.2.1 ✔ purrr 0.3.3
## ✔ tibble 2.1.3 ✔ dplyr 0.8.3
## ✔ tidyr 1.0.0 ✔ stringr 1.4.0
## ✔ readr 1.3.1 ✔ forcats 0.4.0
## ── Conflicts ─────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
library(geosphere)
library(dplyr)
options(scipen = 999)
grouped_result <- read_csv("/local/juninho/aggregate_output/output/result.csv", col_types = list(
date = col_date(format = ""),
week_day = col_double(),
route = col_character(),
start_hour = col_double(),
end_hour = col_double(),
quantity_trips = col_double(),
duration_median = col_double(),
dist_median = col_double()
)
)
grouped_result <- grouped_result %>% filter(week_day == 3 | week_day == 4 | week_day == 5)
Análise para os dias de terça-feira até quinta-feira.
grouped_result %>%
ggplot(aes(x = dist_median, y = duration_median, alpha = .001)) %>%
+ geom_point() + theme_classic()
grouped_result %>%
group_by(route) %>%
summarise(median_dist = median(dist_median)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -median_dist), y = median_dist)) + labs(x = "route") + geom_col() + theme_classic()
## Selecting by median_dist
grouped_result %>%
group_by(route) %>%
summarise(median_dist = median(dist_median)) %>%
top_n(-20) %>%
ggplot(aes(x = reorder(route, median_dist), y = median_dist)) + labs(x = "route") + geom_col() + theme_classic()
## Selecting by median_dist
grouped_result %>%
group_by(route) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -quantity), y = quantity)) + labs(x = "route", y = "trip quantity") + geom_bar(stat = "identity") + theme_classic()
## Selecting by quantity
4.1) Verificando a popularidade mês a mês, temos:
maio:
grouped_result %>%
filter(lubridate::month(lubridate::date(lubridate::ymd(date))) == 5) %>%
group_by(route) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -quantity), y = quantity)) + labs(x = "route", y = "trip quantity") + geom_bar(stat = "identity") + theme_classic()
## Selecting by quantity
junho:
grouped_result %>%
filter(lubridate::month(lubridate::date(lubridate::ymd(date))) == 6) %>%
group_by(route) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -quantity), y = quantity)) + labs(x = "route", y = "trip quantity") + geom_bar(stat = "identity") + theme_classic()
## Selecting by quantity
Como destaque temos as rotas 602, 603, 507 e 550. A rota 602 apresenta uma queda na quantidade de viagens de cerca de 48%, a rota 603 cerca de 52%, a rota 507 cerca de 47% e a 550 cerca de 50%, de maio para junho.
Destaque: rota 602, 603, 507, 550
julho:
grouped_result %>%
filter(lubridate::month(lubridate::date(lubridate::ymd(date))) == 7) %>%
group_by(route) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -quantity), y = quantity)) + labs(x = "route", y = "trip quantity") + geom_bar(stat = "identity") + theme_classic()
## Selecting by quantity
grouped_result %>%
group_by(route) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(-20) %>%
ggplot(aes(x = reorder(route, quantity), y = quantity)) +
labs(x = "route", y = "trip quantity") +
geom_bar(stat = "identity") +
theme_classic()
## Selecting by quantity
Como destaque temos a rota 732, onde nos dias de segunda e sexta apresenta 56% menos viagens do que nos dias de terça a quinta para os mesmos meses. Taxa bastante significativa. A rota 911 também se destaca, pois a mesma apresenta um aumento no número de viagens de 61% nos dias de terça a quinta em comparação com os dias de segunda e sexta.
Destaque: 732, 911
5.1) Mês a mês temos:
maio:
grouped_result %>%
filter(lubridate::month(lubridate::date(lubridate::ymd(date))) == 5) %>%
group_by(route) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(-20) %>%
ggplot(aes(x = reorder(route, quantity), y = quantity)) + labs(x = "route", y = "trip quantity") + geom_bar(stat = "identity") + theme_classic()
## Selecting by quantity
junho:
grouped_result %>%
filter(lubridate::month(lubridate::date(lubridate::ymd(date))) == 6) %>%
group_by(route) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(-20) %>%
ggplot(aes(x = reorder(route, quantity), y = quantity)) + labs(x = "route", y = "trip quantity") + geom_bar(stat = "identity") + theme_classic()
## Selecting by quantity
julho:
grouped_result %>%
filter(lubridate::month(lubridate::date(lubridate::ymd(date))) == 7) %>%
group_by(route) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(-20) %>%
ggplot(aes(x = reorder(route, quantity), y = quantity)) + labs(x = "route", y = "trip quantity") + geom_bar(stat = "identity") + theme_classic()
## Selecting by quantity
grouped_result %>%
group_by(route) %>%
summarise(duration = median(duration_median)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -duration), y = duration)) +
labs(x = "route", y = "trip duration (in minutes)") +
geom_bar(stat = "identity") +
theme_classic()
## Selecting by duration
grouped_result %>%
group_by(route) %>%
summarise(duration = median(duration_median)) %>%
top_n(-20) %>%
ggplot(aes(x = reorder(route, duration), y = duration)) +
labs(x = "route", y = "trip duration (in minutes)") +
geom_bar(stat = "identity") +
theme_classic()
## Selecting by duration
Destaque para a rota 322 em compração com segunda e sexta. De terças a quintas a rota apresenta um tempo mediano de 8 minutos enquanto que de segundas e sextas o tempo é de 10 minutos. Uma diferença de 2 minutos, na mediana, para cada viagem, é um tempo significativo.
grouped_result %>%
group_by(route) %>%
filter(start_hour >= 6 & start_hour <= 8) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -quantity), y = quantity)) +
labs(x = "route", y = "trips quantity") +
geom_col() +
theme_classic()
## Selecting by quantity
Comparando com os resultados obtidos na análise de seguna e sexta, temos 3 rotas se destacando. São elas a 022, 204 e a 307. A rota 022 apresenta uma aumento de 43% no número de viagens da segunda e sexta em compração com terça a quinta. Para as rotas 204 e 307 o aumento é de 49% e 41%, respectivamente.
Destaque: 022, 204, 307.
grouped_result %>%
group_by(route) %>%
filter(start_hour >= 11 & start_hour <= 13) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -quantity), y = quantity)) +
labs(x = "route", y = "trips quantity") +
geom_col() +
theme_classic()
## Selecting by quantity
Comparando também com os resultados obtidos na análise de seguna e sexta, temos agora 2 rotas se destacando. São elas a 502 e a 703. A rota 502 apresenta uma aumento de 51% no número de viagens da segunda e sexta em compração com terça a quinta. Para a 703 o aumento é de 61%.
Destaque: 502, 703.
grouped_result %>%
group_by(route) %>%
filter(start_hour >= 17 & start_hour <= 19) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -quantity), y = quantity)) +
labs(x = "route", y = "trips quantity") +
geom_col() +
theme_classic()
## Selecting by quantity
Na comparação feita 2 rotas se destacaram. São elas a 050, a 545 e a 307. A rota 050 apresenta uma aumento de 66% no número de viagens da segunda e sexta em compração com terça a quinta. Para as rota 307 e 545 o aumento foi de 37% e 52%.
Destaque: 050, 545, 307.
grouped_result %>%
filter(route == "307") %>%
group_by(start_hour) %>%
summarise(quantity = sum(quantity_trips)) %>%
ggplot(aes(x = start_hour, y = quantity)) + geom_col() + theme_bw()
grouped_result %>%
filter(route == "204") %>%
group_by(start_hour) %>%
summarise(quantity = sum(quantity_trips)) %>%
ggplot(aes(x = start_hour, y = quantity)) + geom_col() + theme_bw()
grouped_result %>%
filter(route == "506") %>%
group_by(start_hour) %>%
summarise(quantity = sum(quantity_trips)) %>%
ggplot(aes(x = start_hour, y = quantity)) + geom_col() + theme_classic()
grouped_result %>%
filter(route == "550") %>%
group_by(start_hour) %>%
summarise(quantity = sum(quantity_trips)) %>%
ggplot(aes(x = start_hour, y = quantity)) + geom_col() + theme_classic()