O objeto principal da análise são as buscas e a navegação depois da busca. Criamos esses dados a partir dos dados originais da wikimedia em /data/search_data.csv.

Aqui, exploramos esses dados.

library(tidyverse)
## -- Attaching packages ------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 3.1.1       v purrr   0.3.2  
## v tibble  2.1.1       v dplyr   0.8.0.1
## v tidyr   0.8.3       v stringr 1.4.0  
## v readr   1.3.1       v forcats 0.4.0
## -- Conflicts ---------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(here)
## here() starts at C:/Users/asana/Workspace/l1p2-amslv
library(lubridate)
## 
## Attaching package: 'lubridate'
## The following object is masked from 'package:here':
## 
##     here
## The following object is masked from 'package:base':
## 
##     date
library(tidyr)
library(dplyr)
theme_set(theme_bw())
buscas = read_csv(here::here("data/search_data.csv"))
## Parsed with column specification:
## cols(
##   session_id = col_character(),
##   search_index = col_double(),
##   session_length = col_double(),
##   session_start_timestamp = col_double(),
##   session_start_date = col_datetime(format = ""),
##   group = col_character(),
##   results = col_double(),
##   num_clicks = col_double(),
##   first_click = col_double()
## )
search_date <- buscas %>%
    mutate(d_busca = format(session_start_date, "%Y-%m-%d"))
count_clicks_filter <- buscas %>%
    group_by(first_click) %>%
    summarise(count_clicks = n()) %>%
    arrange(desc(count_clicks))  %>%
    top_n(20)
## Selecting by count_clicks
zero_results_found <- search_date %>%
    group_by(d_busca) %>%
    mutate(d_zero = unique(d_busca)) %>%
    count(results == 0)

Qual é a nossa taxa de cliques geral diariamente? Como isso varia entre os grupos?

Ao analisar o gráfico abaixo é possível verificar que a quantidade de cliques diários oscila entre 10 e 20. Também é possível verificar que a maioria dos usuários é do grupo A, justificando assim a maior quantidade de cliques registrados por usuários deste grupo.

search_date %>%
    filter(num_clicks > 0) %>%
    ggplot(aes(x = num_clicks, y = d_busca)) +
    geom_jitter(aes(color = group)) +
    labs(x="Search date", y="Number of clicks")

Quais resultados as pessoas tendem a tentar primeiro? Como isso muda no dia-a-dia?

Para essa análise foi selecionado o top 20 com relação a quantidade de clicks até o usuário encontrar o resultado esperado. Ao analisar o gráfico é possível verificar que em 90% dos casos, o usuário encontrou o resultado antes dos 2.500 clicks.
No dia a dia, fica nítido que a maioria dos cliques por parte do usuário estão concentrados entre o primeiro e o quinto resultado.
count_clicks_filter %>%
    filter(first_click != "NA") %>%
    ggplot(aes(x = first_click, y = count_clicks)) +
    geom_point() +
        labs(y="Number of clicks", x="Result position")

search_date %>% 
    filter (first_click < 25) %>%
    ggplot(aes(y = first_click, x = format(session_start_date, "%Y-%m-%d"))) +
    geom_jitter() +
    labs(
        x = "Search date",
        y = "First click position") 

Qual é a nossa taxa de buscas com zero resultados no geral? Como isso varia entre os grupos?

Ao analisar o gráfico de buscas com zero resultados é possível visualizar que, em sua maioria, a quantidade de buscas zeradas oscila entre 3000 e 3600 por dia.
Ao visualizar esse mesmo dado, mas pela perspectiva dos grupos, fica nítido que o grupo A se deparou com uma quantidade maior de buscas zeradas.
    zero_results_found %>%
        filter(`results == 0`) %>%
            ggplot(aes(x = d_busca, y = n)) +
            labs(x = "Search Date", y = "Count of zero results") +
            coord_flip() +
            theme(legend.position = "none") +
            geom_jitter()

search_date %>% 
    filter(!is.na(results) & results == 0) %>% 
    ggplot(aes(x = group, fill=group)) + 
    geom_bar() +
    theme(legend.position = "none") +
    labs(
        y = "Zero results searchs",
        x = "Group") 

A duração da sessão é aproximadamente o tempo entre o primeiro e o último evento de uma sessão. Escolha uma variável do conjunto de dados e descreva sua relação com o tamanho da sessão. Visualize o relacionamento.

Neste caso, tentamos verificar se existe uma relação entre o tamanho da sessão e a quantidade de cliques efetuados pelo usuário. Ao visualizar o gráfico, é possível inferir que, independentemente do tempo da sessão, a quantidade de cliques, majoritariamente, oscila entre 0 2.
buscas %>%
    filter(session_length > 0) %>%
    filter(session_length < 1000) %>%
    top_n(100) %>%
    ggplot(aes(x = num_clicks, y = session_length)) +
    coord_flip() +
    geom_jitter()
## Selecting by first_click