Importando as bibliotecas

library(tidyverse)
## -- Attaching packages ----------------------------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 2.2.1     v purrr   0.2.4
## v tibble  1.4.2     v dplyr   0.7.4
## v tidyr   0.8.0     v stringr 1.3.0
## v readr   1.1.1     v forcats 0.3.0
## -- Conflicts -------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(here)
## here() starts at C:/Users/PC/Desktop/lab2-cp4-emanuelIFPB-master/lab2-cp4-emanuelIFPB-master
library(lubridate)
## 
## Attaching package: 'lubridate'
## The following object is masked from 'package:here':
## 
##     here
## The following object is masked from 'package:base':
## 
##     date
library(knitr)
library(ggplot2)

theme_set(theme_bw())

Carregando os dados para análise

dados = read_csv(here::here("data/search_data.csv")) %>%
head(100000)
## Parsed with column specification:
## cols(
##   session_id = col_character(),
##   search_index = col_integer(),
##   session_start_timestamp = col_double(),
##   session_start_date = col_datetime(format = ""),
##   group = col_character(),
##   results = col_integer(),
##   num_clicks = col_integer(),
##   first_click = col_integer()
## )
head(dados)
## # A tibble: 6 x 8
##   session_id    search_index session_start_time~ session_start_date  group
##   <chr>                <int>               <dbl> <dttm>              <chr>
## 1 0000cbcb67c1~            1     20160303152045. 2016-03-03 15:20:45 b    
## 2 0001382e027b~            1     20160307084955. 2016-03-07 08:49:55 b    
## 3 0001e8bb9044~            1     20160305092415. 2016-03-05 09:24:15 b    
## 4 000216cf18ae~            1     20160308161946. 2016-03-08 16:19:46 a    
## 5 000216cf18ae~            2     20160308161953. 2016-03-08 16:19:53 a    
## 6 000216cf18ae~            3     20160308162032. 2016-03-08 16:20:32 a    
## # ... with 3 more variables: results <int>, num_clicks <int>,
## #   first_click <int>
names(dados)
## [1] "session_id"              "search_index"           
## [3] "session_start_timestamp" "session_start_date"     
## [5] "group"                   "results"                
## [7] "num_clicks"              "first_click"

Variáveis utilizadas na análise

{r} group : Um marcador (“a” ou “b”);

{r} results : Número de ocorrências retornadas para o usuário;

{r} num_clicks : Número de ocorrências clicadas pelo usuário;

{r} first_click : Posição da ocorrência que o usuário clicou primeiro.

{r} session_start_date: Data e hora do início da pesquisa.

01) Qual é a taxa de cliques geral diária? Como isso varia entre os grupos?

Primeiro vamos analisar os quartis da variável {r} num_clicks

with(dados, tapply(num_clicks, group, summary))
## $a
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  0.0000  0.3583  1.0000 36.0000 
## 
## $b
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  0.0000  0.1526  0.0000  3.0000

Podemos observar que em média o grupo A tem maior número de clicks que o grupo B. Porém, o número diferente de ocorrências (pesquisas no site de busca) do grupo A e B podem estar enviesando o resultado. Precisamos nos aprofundar na análise.

Na Figura 01 podemos observar a distribuição da quantidade de clicks para cada grupo

dados %>% 
    ggplot(aes(x = group, y = num_clicks)) + 
     geom_jitter(alpha = .4, size = 2)  + labs(y= "Numero de Clicks", x="Grupos", title="Figura 1 - Numero de clicks para os grupos A e B")

Podemos observar que existem mais ocorrências de buscas no grupo A em relação ao grupo B. Para finalizar nossa análise, vamos avaliar dia após dia o comportamento da variável {r} num_clicks

dados %>%
    group_by(round_date(session_start_date , unit="day"), group) %>%  
    summarise(somatorio = sum(num_clicks)) %>% 
    head()
## # A tibble: 6 x 3
## # Groups:   round_date(session_start_date, unit = "day") [3]
##   `round_date(session_start_date, unit = "day")` group somatorio
##   <dttm>                                         <chr>     <int>
## 1 2016-03-01 00:00:00                            a          1748
## 2 2016-03-01 00:00:00                            b           199
## 3 2016-03-02 00:00:00                            a          4198
## 4 2016-03-02 00:00:00                            b           540
## 5 2016-03-03 00:00:00                            a          4271
## 6 2016-03-03 00:00:00                            b           541

Como podemos observar, em nossa amostra de três dias (01, 02 e 03 de Março de 2016) sempre o número de clicks do grupo A superou do grupo B.

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

Primeiro vamos analisar os quartis da variável {r} first_click

with(dados, tapply(first_click, group, summary))
## $a
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    1.00    1.00    1.00    4.85    2.00 4103.00   48454 
## 
## $b
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   1.000   1.000   1.000   1.983   2.000  35.000   27278

Podemos observar que em pesquisas realizadas no grupo B os usuários clicam em resultados mais iniciais (Mean 1.983) em relação as pesquisas do grupo A (Mean 4.85)

Como isso muda no dia-a-dia?

ggplot(data=dados, aes(x=day(session_start_date), y=first_click, fill=group)) +   geom_bar(stat="identity", position=position_dodge()) +  labs(y= "Quantidade primeiros clicks", x="Dia", title="Figura 2 - Análise do primeiro click por dia e grupo  ") 

Podemos observar qua na maioria dos casos o usuário clica no primeiro link após a busca

03) Qual é a taxa de resultados zero no geral? Como isso varia entre os grupos?

Inicialmente vamos analisar independente de grupos: